module Geminus::DSL

Public Instance Methods

generate_js() click to toggle source
# File lib/geminus/dsl.rb, line 20
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
prop(key, val = nil, &blk) click to toggle source
# File lib/geminus/dsl.rb, line 3
    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