Class: Super::Filter::SchemaTypes::OperatorList
- Inherits:
-
Object
- Object
- Super::Filter::SchemaTypes::OperatorList
- Includes:
- Enumerable
- Defined in:
- lib/super/filter/schema_types.rb
Instance Method Summary collapse
- #each ⇒ Object
-
#initialize(*new_operators) ⇒ OperatorList
constructor
A new instance of OperatorList.
- #push(*new_operators) ⇒ Object (also: #add)
- #transcribe(operator_identifier = nil) {|transcript| ... } ⇒ Object
Constructor Details
#initialize(*new_operators) ⇒ OperatorList
Returns a new instance of OperatorList.
11 12 13 14 15 16 17 |
# File 'lib/super/filter/schema_types.rb', line 11 def initialize(*new_operators) @operators = {} @operator_transcript = {} @fallback_transcript = nil push(*new_operators) end |
Instance Method Details
#each ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/super/filter/schema_types.rb', line 33 def each return enum_for(:each) if !block_given? @operators.each do |identifier, operator| yield( OperatorWithFieldTranscript.new( operator, @operator_transcript[identifier] || @fallback_transcript ) ) end end |
#push(*new_operators) ⇒ Object Also known as: add
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/super/filter/schema_types.rb', line 19 def push(*new_operators) new_operators.flatten.map(&:dup).each do |new_operator| new_identifier = new_operator.identifier.to_s raise Error::AlreadyRegistered if @operators.key?(new_identifier) @operators[new_identifier] = new_operator end nil end |
#transcribe(operator_identifier = nil) {|transcript| ... } ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/super/filter/schema_types.rb', line 46 def transcribe(operator_identifier = nil) transcript = Form::FieldTranscript.new yield transcript if operator_identifier.nil? @fallback_transcript = transcript else @operator_transcript[operator_identifier.to_s] = transcript end self end |