Class: Decidim::Initiatives::SimilarInitiatives
- Inherits:
-
Query
- Object
- Query
- Decidim::Initiatives::SimilarInitiatives
- Includes:
- CurrentLocale, TranslationsHelper
- Defined in:
- decidim-initiatives/app/queries/decidim/initiatives/similar_initiatives.rb
Overview
Class uses to retrieve similar initiatives types.
Class Method Summary collapse
-
.for(organization, form) ⇒ Object
Syntactic sugar to initialize the class and return the queried objects.
Instance Method Summary collapse
-
#initialize(organization, form) ⇒ SimilarInitiatives
constructor
Initializes the class.
-
#query ⇒ Object
Retrieves similar initiatives.
Methods included from CurrentLocale
Methods included from TranslationsHelper
empty_translatable, ensure_translatable, multi_translation, translated_in_current_locale?
Methods included from TranslatableAttributes
Constructor Details
#initialize(organization, form) ⇒ SimilarInitiatives
Initializes the class.
organization - Decidim::Organization form - Decidim::Initiatives::PreviousForm
22 23 24 25 |
# File 'decidim-initiatives/app/queries/decidim/initiatives/similar_initiatives.rb', line 22 def initialize(organization, form) @organization = organization @form = form end |
Class Method Details
.for(organization, form) ⇒ Object
Syntactic sugar to initialize the class and return the queried objects.
organization - Decidim::Organization form - Decidim::Initiatives::PreviousForm
14 15 16 |
# File 'decidim-initiatives/app/queries/decidim/initiatives/similar_initiatives.rb', line 14 def self.for(organization, form) new(organization, form).query end |
Instance Method Details
#query ⇒ Object
Retrieves similar initiatives
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'decidim-initiatives/app/queries/decidim/initiatives/similar_initiatives.rb', line 28 def query Initiative .published .where(organization: @organization) .where( Arel.sql("GREATEST(#{title_similarity}, #{description_similarity}) >= ?").to_s, form.title, form.description, Decidim::Initiatives.similarity_threshold ) .limit(Decidim::Initiatives.similarity_limit) end |