Sha256: 8af90702ef0a0d4c3e31adfd0cb2e9820bad82756cce52f088fd1136b9689b9d
Contents?: true
Size: 784 Bytes
Versions: 4
Compression:
Stored size: 784 Bytes
Contents
module Jimmy module TransformKeys def camel_upper(str) camel_lower(str).sub(/\A(.)/) { $1.upcase } end def camel_lower(str) str.gsub(/[-_\s]+(.)/) { $1.upcase } end class Transformer include TransformKeys def cache(method) (@cache ||= {})[method] ||= {} end def transform(sym, method) if method cache(method)[sym] ||= __send__(method, sym.to_s).to_sym else sym end end def transform_ref(str, method) if method str.sub(/#(.+)/) { '#' << $1.split('/').map { |part| __send__ method, part }.join('/') } else str end end end def self.transformer @transformer ||= Transformer.new end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
jimmy-0.5.4 | lib/jimmy/transform_keys.rb |
jimmy-0.5.3 | lib/jimmy/transform_keys.rb |
jimmy-0.5.2 | lib/jimmy/transform_keys.rb |
jimmy-0.5.1 | lib/jimmy/transform_keys.rb |