Sha256: be572843431bf29eaf5739d3fe02c630ed21549a68c12f476934c0019ff06b4b
Contents?: true
Size: 579 Bytes
Versions: 1
Compression:
Stored size: 579 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 end def self.transformer @transformer ||= Transformer.new end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jimmy-0.5.0 | lib/jimmy/transform_keys.rb |