Class: Noiseless::MappingDefinition
- Inherits:
-
Object
- Object
- Noiseless::MappingDefinition
- Defined in:
- lib/noiseless/mapping.rb
Overview
DSL for building mapping definitions
Instance Method Summary collapse
- #boolean(name) ⇒ Object
- #date(name) ⇒ Object
- #double(name) ⇒ Object
- #field(name, type, **options) ⇒ Object
- #float(name) ⇒ Object
- #geo_point(name) ⇒ Object
-
#initialize ⇒ MappingDefinition
constructor
A new instance of MappingDefinition.
- #integer(name) ⇒ Object
- #keyword(name) ⇒ Object
- #long(name) ⇒ Object
- #nested(name) ⇒ Object
- #object(name) ⇒ Object
- #text(name) ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize ⇒ MappingDefinition
Returns a new instance of MappingDefinition.
109 110 111 |
# File 'lib/noiseless/mapping.rb', line 109 def initialize @properties = {} end |
Instance Method Details
#boolean(name) ⇒ Object
141 142 143 |
# File 'lib/noiseless/mapping.rb', line 141 def boolean(name, **) field(name, :boolean, **) end |
#date(name) ⇒ Object
145 146 147 |
# File 'lib/noiseless/mapping.rb', line 145 def date(name, **) field(name, :date, **) end |
#double(name) ⇒ Object
137 138 139 |
# File 'lib/noiseless/mapping.rb', line 137 def double(name, **) field(name, :double, **) end |
#field(name, type, **options) ⇒ Object
113 114 115 |
# File 'lib/noiseless/mapping.rb', line 113 def field(name, type, **) @properties[name.to_s] = { type: type.to_s }.merge() end |
#float(name) ⇒ Object
133 134 135 |
# File 'lib/noiseless/mapping.rb', line 133 def float(name, **) field(name, :float, **) end |
#geo_point(name) ⇒ Object
149 150 151 |
# File 'lib/noiseless/mapping.rb', line 149 def geo_point(name, **) field(name, :geo_point, **) end |
#integer(name) ⇒ Object
125 126 127 |
# File 'lib/noiseless/mapping.rb', line 125 def integer(name, **) field(name, :integer, **) end |
#keyword(name) ⇒ Object
117 118 119 |
# File 'lib/noiseless/mapping.rb', line 117 def keyword(name, **) field(name, :keyword, **) end |
#long(name) ⇒ Object
129 130 131 |
# File 'lib/noiseless/mapping.rb', line 129 def long(name, **) field(name, :long, **) end |
#nested(name) ⇒ Object
163 164 165 166 167 168 169 170 171 |
# File 'lib/noiseless/mapping.rb', line 163 def nested(name, **, &) if block_given? nested_mapping = MappingDefinition.new nested_mapping.instance_eval(&) field(name, :nested, properties: nested_mapping.to_hash, **) else field(name, :nested, **) end end |
#object(name) ⇒ Object
153 154 155 156 157 158 159 160 161 |
# File 'lib/noiseless/mapping.rb', line 153 def object(name, **, &) if block_given? nested_mapping = MappingDefinition.new nested_mapping.instance_eval(&) field(name, :object, properties: nested_mapping.to_hash, **) else field(name, :object, **) end end |
#text(name) ⇒ Object
121 122 123 |
# File 'lib/noiseless/mapping.rb', line 121 def text(name, **) field(name, :text, **) end |
#to_hash ⇒ Object
173 174 175 |
# File 'lib/noiseless/mapping.rb', line 173 def to_hash @properties end |