lib/liquid/drops/concepts_drop.rb in metanorma-plugin-glossarist-0.1.8 vs lib/liquid/drops/concepts_drop.rb in metanorma-plugin-glossarist-0.2.0

- old
+ new

@@ -30,29 +30,24 @@ private def filtered_concepts(concepts_collection, filters) concept_filters = filters.dup - language_filter = concept_filters.delete('lang') - sort_filter = concept_filters.delete('sort_by') - group_filter = concept_filters.delete('group') + language_filter = concept_filters.delete("lang") + sort_filter = concept_filters.delete("sort_by") + group_filter = concept_filters.delete("group") concepts = concepts_collection.map do |concept| filtered_concept = concept.to_h["data"] filtered_concept["term"] = concept.default_designation filtered_concept = filtered_concept.merge( - extract_localized_concepts( - concept, - language_filter, - ), + extract_localized_concepts(concept, language_filter), ) if retain_concept?(filtered_concept, concept_filters) filtered_concept - else - nil end end.compact apply_group_filter(concepts, group_filter) apply_sort_filter(concepts, sort_filter) @@ -60,17 +55,17 @@ def extract_localized_concepts(concept, languages) localized_concepts = {} if !languages || languages.empty? - concept.localized_concepts.each do |lang, localized_concept_uuid| + concept.localized_concepts.each do |lang, _localized_concept_uuid| localized_concepts[lang] = concept.localizations[lang].to_h["data"] end else languages.split(",").each do |lang| - localization = concept.localizations[lang]&.to_h&.dig("data") - localized_concepts[lang] = localization if localization + localization = concept.localizations[lang]&.to_h&.dig("data") and + localized_concepts[lang] = localization end end localized_concepts end @@ -79,14 +74,12 @@ concept_filters.each do |name, value| fields = extract_nested_field_names(name) if fields.last.start_with?("start_with") value = fields.last.gsub(/start_with\(([^\)]*)\)/, '\1') fields = fields[0..-2] - - unless filtered_concept.dig(*fields).start_with?(value) + filtered_concept.dig(*fields).start_with?(value) or return false - end elsif filtered_concept.dig(*fields) != value return false end end @@ -94,11 +87,13 @@ end def apply_sort_filter(concepts, sort_by) return concepts unless sort_by - concepts.sort_by { |concept| concept.dig(*extract_nested_field_names(sort_by)) } + concepts.sort_by do |concept| + concept.dig(*extract_nested_field_names(sort_by)) + end end def apply_group_filter(concepts, groups) return concepts unless groups @@ -111,10 +106,10 @@ def extract_nested_field_names(name) name.split(".").map do |field| field_name = field.strip - field_name.match(/^\d+$/) ? field_name.to_i : field_name + /^\d+$/.match?(field_name) ? field_name.to_i : field_name end end def allowed_language?(language, lang_filter) return false if NON_LANGUAGE_FIELDS.include?(language)