Class: ROM::Solr::Dataset
- Inherits:
-
HTTP::Dataset
- Object
- HTTP::Dataset
- ROM::Solr::Dataset
- Defined in:
- lib/rom/solr/dataset.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#add_param_values(key, val) ⇒ Object
Coerce param value to an Array and set new value to set union with other Array of values.
- #add_params(new_params = {}) ⇒ Object
- #default_params(defaults = {}) ⇒ Object
- #each(&block) ⇒ Object
- #enumerable_response ⇒ Object
- #param?(key) ⇒ Boolean
- #response ⇒ Object
- #with_enum_on(keys) ⇒ Object
- #with_params(new_params) ⇒ Object
- #with_path(segments) ⇒ Object
Instance Method Details
#add_param_values(key, val) ⇒ Object
Coerce param value to an Array and set new value to set union with other Array of values.
33 34 35 36 |
# File 'lib/rom/solr/dataset.rb', line 33 def add_param_values(key, val) new_val = Array.wrap(params[key]) | Array.wrap(val) add_params(key => new_val) end |
#add_params(new_params = {}) ⇒ Object
39 40 41 42 |
# File 'lib/rom/solr/dataset.rb', line 39 def add_params(new_params = {}) return self if new_params.nil? || new_params.empty? with_params params.merge(new_params).compact end |
#default_params(defaults = {}) ⇒ Object
44 45 46 |
# File 'lib/rom/solr/dataset.rb', line 44 def default_params(defaults = {}) with_params defaults.merge(params) end |
#each(&block) ⇒ Object
71 72 73 74 |
# File 'lib/rom/solr/dataset.rb', line 71 def each(&block) return to_enum unless block_given? enumerable_response.each(&block) end |
#enumerable_response ⇒ Object
76 77 78 79 80 81 82 83 |
# File 'lib/rom/solr/dataset.rb', line 76 def enumerable_response if [:enum_on].nil? Array.wrap(response) else keys = Array.wrap [:enum_on] Array.wrap response.dig(*keys) end end |
#param?(key) ⇒ Boolean
57 58 59 |
# File 'lib/rom/solr/dataset.rb', line 57 def param?(key) params.key?(key) end |
#response ⇒ Object
66 67 68 |
# File 'lib/rom/solr/dataset.rb', line 66 def response cache.fetch_or_store(:response) { __response__ } end |
#with_enum_on(keys) ⇒ Object
25 26 27 28 29 |
# File 'lib/rom/solr/dataset.rb', line 25 def with_enum_on(keys) k = Array.wrap(keys) return self if k.empty? (enum_on: k) end |
#with_params(new_params) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/rom/solr/dataset.rb', line 49 def with_params(new_params) if params == new_params self else (params: new_params) end end |
#with_path(segments) ⇒ Object
19 20 21 22 23 |
# File 'lib/rom/solr/dataset.rb', line 19 def with_path(segments) s = Array.wrap(segments) return self if s.empty? (path: s.compact.join('/')) end |