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