Class: Refine::Conditions::Clause

Inherits:
Object
  • Object
show all
Includes:
HasMeta
Defined in:
app/models/refine/conditions/clause.rb

Constant Summary collapse

I18N_PREFIX =
"refine.refine_blueprints.clause."

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from HasMeta

#meta, #with_meta

Constructor Details

#initialize(id = nil, display = nil) ⇒ Clause

Returns a new instance of Clause.



10
11
12
13
14
15
# File 'app/models/refine/conditions/clause.rb', line 10

def initialize(id = nil, display = nil)
  @id = id
  @display = display || id.humanize(keep_id_suffix: true).titleize
  @rules = {}
  @messages
end

Instance Attribute Details

#display ⇒ Object

Returns the value of attribute display.



6
7
8
# File 'app/models/refine/conditions/clause.rb', line 6

def display
  @display
end

#id ⇒ Object (readonly)

Returns the value of attribute id.



5
6
7
# File 'app/models/refine/conditions/clause.rb', line 5

def id
  @id
end

#rules ⇒ Object (readonly)

Returns the value of attribute rules.



5
6
7
# File 'app/models/refine/conditions/clause.rb', line 5

def rules
  @rules
end

Instance Method Details

#requires_inputs(fields) ⇒ Object



22
23
24
25
26
27
28
# File 'app/models/refine/conditions/clause.rb', line 22

def requires_inputs(fields)
  # Coerce field to an array
  [*fields].each do |field|
    @rules.merge!({"#{field}": I18n.t("#{I18N_PREFIX}required")})
  end
  self
end

#to_array ⇒ Object



30
31
32
33
34
35
36
# File 'app/models/refine/conditions/clause.rb', line 30

def to_array
  {
    id: @id,
    display: @display,
    meta: meta
  }
end

#with_rules(user_defined_hash) ⇒ Object



17
18
19
20
# File 'app/models/refine/conditions/clause.rb', line 17

def with_rules(user_defined_hash)
  @rules.merge!(user_defined_hash)
  self
end