class Decidim::TermCustomizer::Resolver
Attributes
component[R]
organization[R]
space[R]
Public Class Methods
new(organization, space, component)
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 8 def initialize(organization, space, component) @organization = organization @space = space @component = component end
Public Instance Methods
constraints()
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 18 def constraints @constraints ||= resolve_constraints_query end
translations()
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 14 def translations @translations ||= resolve_translations_query end
Private Instance Methods
constraints_add_component_query(query)
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 96 def constraints_add_component_query(query) return unless component query.or!( TermCustomizer::Constraint.where( organization: organization, subject: component ) ) end
constraints_add_organization_query(query)
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 66 def constraints_add_organization_query(query) return unless organization query.or!( TermCustomizer::Constraint.where( organization: organization, subject_type: nil, subject_id: nil ) ) end
constraints_add_space_query(query)
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 78 def constraints_add_space_query(query) return unless space query.or!( TermCustomizer::Constraint.where( organization: organization, subject: space ) ) query.or!( TermCustomizer::Constraint.where( organization: organization, subject_type: space.class.name, subject_id: nil ) ) end
constraints_base_query()
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 61 def constraints_base_query # All constraints that are NOT attached with any organization TermCustomizer::Constraint.where(organization: nil) end
resolve_constraints_query()
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 50 def resolve_constraints_query return nil unless organization query = constraints_base_query constraints_add_organization_query(query) constraints_add_space_query(query) constraints_add_component_query(query) query end
resolve_translations_query()
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 24 def resolve_translations_query query = translations_base_query translations_add_constraints_query(query) query end
translations_add_constraints_query(query)
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 36 def translations_add_constraints_query(query) return unless constraints query.or!( Translation.where( id: Translation.joins(:constraints).where( decidim_term_customizer_constraints: { id: constraints } ) ) ) end
translations_base_query()
click to toggle source
# File lib/decidim/term_customizer/resolver.rb, line 31 def translations_base_query # All translations without any constraints Translation.where.not(id: Translation.joins(:constraints)) end