Sha256: b8b594ee22a7d40b4fadcb38240bf4a4b0ac8270018b47c05626f732912b801f

Contents?: true

Size: 1.49 KB

Versions: 8

Compression:

Stored size: 1.49 KB

Contents

class Refine::Inline::Criteria::Input
  include ActiveModel::Model

  MODIFIERS = {
    ago: "days ago",
    from_now: "days from now"
  }.freeze

  attr_accessor :clause,
  :date1,
  :date2,
  :days,
  :modifier,
  :selected,
  :value,
  :value1,
  :value2,
  :count_refinement,
  :date_refinement


  def attributes
    {
      clause: clause,
      date1: date1,
      date2: date2,
      days: days,
      modifier: modifier,
      selected: selected,
      value: value,
      value1: value1,
      value2: value2,
      count_refinement: count_refinement_attributes.presence,
      date_refinement: date_refinement_attributes.presence
    }.compact
  end

  def attributes=(attrs = {})
    super(attrs)
    strip_values
  end

  def count_refinement
    @count_refinement ||= Refine::Inline::Criteria::NumericRefinement.new
  end

  def count_refinement_attributes
    count_refinement.attributes
  end

  def count_refinement_attributes=(attrs = {})
    count_refinement.attributes = attrs.to_h
  end

  def date_refinement
    @date_refinement ||= Refine::Inline::Criteria::DateRefinement.new
  end

  def date_refinement_attributes
    date_refinement.attributes
  end

  def date_refinement_attributes=(attrs = {})
    date_refinement.attributes = attrs.to_h
  end

  def selected=(value)
    @selected = Array.wrap(value)
  end

  def strip_values
    [:value, :value1, :value2].each do |attr|
      current_value = send(attr)
      send("#{attr}=", current_value.strip) if current_value.present?
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
refine-rails-2.13.3 app/models/refine/inline/criteria/input.rb
refine-rails-2.13.2 app/models/refine/inline/criteria/input.rb
refine-rails-2.13.1 app/models/refine/inline/criteria/input.rb
refine-rails-2.13.0 app/models/refine/inline/criteria/input.rb
refine-rails-2.12.2 app/models/refine/inline/criteria/input.rb
refine-rails-2.12.1 app/models/refine/inline/criteria/input.rb
refine-rails-2.12.0 app/models/refine/inline/criteria/input.rb
refine-rails-2.11.12 app/models/refine/inline/criteria/input.rb