Sha256: b9d3f566a131d620446a51152a53412a0456ae57db17de8b6a10eac1781f5791
Contents?: true
Size: 594 Bytes
Versions: 1
Compression:
Stored size: 594 Bytes
Contents
module Geminus module DSL def prop(key, val = nil, &blk) key = key.to_s if blk fail ArgumentError, "Pass either value or block" if val val = Container.new(&blk) end @geminus[key] = val instance_eval <<-RUBY, __FILE__, __LINE__ def #{key} @geminus[#{key.inspect}] end RUBY end def generate_js pairs = [] @geminus.each do |k, v| v = v.is_a?(Container) ? v.generate_js : JSON.dump(v) pairs << "#{JSON.dump k}:#{v}" end "{#{pairs.join ','}}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
geminus-0.1.0 | lib/geminus/dsl.rb |