Method: FormKeeper::Rule::Criteria::Field#initialize
- Defined in:
- lib/formkeeper.rb
#initialize(criteria) ⇒ Field
Returns a new instance of Field.
516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 |
# File 'lib/formkeeper.rb', line 516 def initialize(criteria) if criteria.has_key?(:default) default = criteria.delete :default @default = default.empty? ? nil : default else @default = nil end if criteria.has_key?(:filters) filters = criteria.delete :filters case filters when Array @filters = filters.collect(&:to_sym) when String @filters = [filters.to_sym] when Symbol @filters = [filters] else raise ArgumentError.new 'invalid :filters' end else @filters = [] end if criteria.has_key?(:present) if not @default.nil? raise ArgumentError.new "don't set both :default and :present at once" end present = criteria.delete :present @present = !!present else @present = false end @constraints = criteria end |