Sha256: 81d7b83152d48e8e6db9ff8981dcf27aca181a072369a6057ef8084bb5b7bf5e

Contents?: true

Size: 763 Bytes

Versions: 24

Compression:

Stored size: 763 Bytes

Contents

# frozen_string_literal: true

module Unparser
  # DSL to help defining emitters
  module DSL

  private

    def define_remaining_children(names)
      range = names.length..-1
      define_method(:remaining_children) do
        children[range]
      end
      private :remaining_children
    end

    def define_child(name, index)
      define_method(name) do
        children.at(index)
      end
      private name
    end

    def define_group(name, range)
      define_method(name) do
        children[range]
      end
      private(name)
      memoize(name)
    end

    def children(*names)
      define_remaining_children(names)

      names.each_with_index do |name, index|
        define_child(name, index)
      end
    end

  end # DSL
end # Unparser

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
unparser-0.6.15 lib/unparser/dsl.rb
unparser-0.6.14 lib/unparser/dsl.rb
unparser-0.6.13 lib/unparser/dsl.rb
unparser-0.6.12 lib/unparser/dsl.rb
unparser-0.6.10 lib/unparser/dsl.rb
unparser-0.6.9 lib/unparser/dsl.rb
unparser-0.6.8 lib/unparser/dsl.rb
devcycle-ruby-server-sdk-2.0.0 vendor/bundle/ruby/3.0.0/gems/unparser-0.6.7/lib/unparser/dsl.rb
unparser-0.6.7 lib/unparser/dsl.rb
unparser-0.6.6 lib/unparser/dsl.rb
unparser-0.6.5 lib/unparser/dsl.rb
unparser-0.6.4 lib/unparser/dsl.rb
unparser-0.6.3 lib/unparser/dsl.rb
unparser-0.6.2 lib/unparser/dsl.rb
unparser-0.6.1 lib/unparser/dsl.rb
unparser-0.6.0 lib/unparser/dsl.rb
unparser-0.5.7 lib/unparser/dsl.rb
unparser-0.5.6 lib/unparser/dsl.rb
unparser-0.5.5 lib/unparser/dsl.rb
unparser-0.5.4 lib/unparser/dsl.rb