Sha256: 4fcb0325bbb861f8268e46453768b6c91f1bcb969a5f95676a3abb73ea3a2498

Contents?: true

Size: 570 Bytes

Versions: 3

Compression:

Stored size: 570 Bytes

Contents

module Relax
  class Instance # :nodoc:
    def initialize(*args)
      @values = args.inject({}) do |values, arg|
        arg.is_a?(Hash) ? values.merge(arg) : values
      end
    end

    def values(context)
      context.parameters.inject({}) do |values, parameter|
        name = parameter.name

        if value = @values[parameter.name] || parameter.value
          values[parameter.name] = value
        elsif parameter.required?
          raise ArgumentError.new("Missing value for '#{parameter.name}'.")
        end

        values
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
tylerhunt-relax-0.1.1 lib/relax/instance.rb
relax-0.1.1 lib/relax/instance.rb
relax-0.1.0 lib/relax/instance.rb