Skip to content

Instantly share code, notes, and snippets.

class Iterator < Enumerator
def initialize obj, meth, *args
super() do |y|
loop do
y << obj
obj = obj.send(meth, *args)
end
end
end
end
//Accept zoneStr such as '-0400', '-04:00', '0400', '+0400'
//Return such as 4, -4, -4.75, -4.5
function tranformTimeZone(zoneStr) {
var signSymbol, hours, minutes, zone;
if (/^\+|-/.test(zoneStr)) {
signSymbol = zoneStr[0];
zoneStr = zoneStr.slice(1);
} else {
signSymbol = '+';
@cantin
cantin / pair.rb
Last active September 3, 2019 13:51
GuangZhou RailsGirs Pair
tutors = ["***", "***", "***"]
girls = ["***", "***", "***"]
number = "To be defined"
tutors = tutors.shuffle(random: Random.new(number))
girls = girls.shuffle(random: Random.new(number))
result = Hash.new { |hash, key| hash[key] = [] }
tutors.cycle(3).each_with_index do |tutor, i|
result[tutor] << (girls[i] || "未配对")
@cantin
cantin / ast_call_finder.js
Created August 4, 2022 02:16
I18n-tasks JS AST parser call finder function
let fs = require('fs')
let parser = require("@babel/parser")
let traverse = require("@babel/traverse")
function collectCalls(filepath) {
let results = []
let code = fs.readFileSync(filepath).toString()
let ast = parser.parse(code, {
// parse in strict mode and allow module declarations