class Troupe::Contract::Property

Constants

DEFAULTS
VALID_OPTIONS

Attributes

default[RW]
on_violation[RW]
presence[RW]

Public Class Methods

new(opts={}) click to toggle source
# File lib/troupe/contract/property.rb, line 12
def initialize(opts={})
  validate_options(opts)
  opts = DEFAULTS.merge(opts)
  @default      = opts[:default]
  @on_violation = opts[:on_violation]
  @presence     = opts[:presence]
end

Public Instance Methods

merge!(hash) click to toggle source
# File lib/troupe/contract/property.rb, line 20
def merge!(hash)
  hash.each do |k, v|
    send("#{k}=", v)
  end
end

Private Instance Methods

validate_options(opts) click to toggle source
# File lib/troupe/contract/property.rb, line 28
def validate_options(opts)
  opts.each do |k, v|
    next unless values = VALID_OPTIONS[k]
    raise "Invalid value '#{v}' for option #{k}" unless values.include?(v)
  end
end