Sha256: becd6c3d5cd31254c9c9411265fc4b54250b6a77c48829bfb0d0a8187bcb671d

Contents?: true

Size: 533 Bytes

Versions: 4

Compression:

Stored size: 533 Bytes

Contents

class FluQ::DSL::Options < ::BasicObject

  # Constructor
  # @yield options assigment
  def initialize(&block)
    @opts = {}
    instance_eval(&block) if block
  end

  # @return [Hash] options hash
  def to_hash
    @opts
  end

  protected

    def method_missing(name, *args, &block)
      value = args[0]
      if value && block
        @opts[name.to_sym] = value
        @opts[:"#{name}_options"] = ::FluQ::DSL::Options.new(&block).to_hash
      else
        @opts[name.to_sym] = value || block || true
      end
    end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fluq-0.8.1 lib/fluq/dsl/options.rb
fluq-0.8.0 lib/fluq/dsl/options.rb
fluq-0.7.5 lib/fluq/dsl/options.rb
fluq-0.7.3 lib/fluq/dsl/options.rb