lib/meilisearch-rails.rb in meilisearch-rails-0.8.1 vs lib/meilisearch-rails.rb in meilisearch-rails-0.9.0
- old
+ new
@@ -58,13 +58,15 @@
rankingRules
attributesToHighlight
attributesToCrop
cropLength
pagination
+ faceting
+ typoTolerance
].freeze
- CAMELIZE_OPTIONS = %i[pagination].freeze
+ CAMELIZE_OPTIONS = %i[pagination faceting typoTolerance].freeze
OPTIONS.each do |option|
define_method option do |value|
instance_variable_set("@#{option}", value)
end
@@ -196,18 +198,27 @@
def get_setting(name)
instance_variable_get("@#{name}")
end
+ def camelize_keys(hash)
+ hash.transform_keys { |key| key.to_s.camelize(:lower) }
+ end
+
def to_settings
settings = {}
OPTIONS.each do |k|
v = get_setting(k)
next if v.nil?
settings[k] = if CAMELIZE_OPTIONS.include?(k) && v.is_a?(Hash)
- v.transform_keys { |key| key.to_s.camelize(:lower) }
+ v = camelize_keys(v)
+
+ # camelize keys of nested hashes
+ v.each do |key, value|
+ v[key] = camelize_keys(value) if value.is_a?(Hash)
+ end
else
v
end
end
settings
@@ -585,23 +596,19 @@
index = ms_index(index_uid)
index.search(q, params.to_h { |k, v| [k, v] })
end
module AdditionalMethods
- def self.extended(base)
- class << base
- alias_method :raw_answer, :ms_raw_answer unless method_defined? :raw_answer
- alias_method :facets_distribution, :ms_facets_distribution unless method_defined? :facets_distribution
- end
- end
-
def ms_raw_answer
@ms_json
end
def ms_facets_distribution
@ms_json['facetDistribution']
end
+
+ alias raw_answer ms_raw_answer unless method_defined? :raw_answer
+ alias facets_distribution ms_facets_distribution unless method_defined? :facets_distribution
private
def ms_init_raw_answer(json)
@ms_json = json