Sha256: 9a774a2fdaeebefa40cfe6f94a6f9c729ade741414586218961abd9a41b7500c

Contents?: true

Size: 1.38 KB

Versions: 9

Compression:

Stored size: 1.38 KB

Contents

module VisualConditionBuilder
  class Converter
    def self.to_ransack(params)
      ransack_q = {}
      conditions = params.is_a?(Array) ? params : JSON.parse(params ||= '[]')
      conditions.map do |p|
        case p[1].to_s.downcase.to_sym
          when :between
            if p[2].is_a?(Array)
              ransack_q["#{p[0]}_gteq"] = p[2][0] if p[2][0]
              ransack_q["#{p[0]}_lteq"] = p[2][1] if p[2][1]
            end
          when :today
            ransack_q["#{p[0]}_eq"] = Date.today
          when :yesterday
            ransack_q["#{p[0]}_eq"] = Date.yesterday
          when :tomorrow
            ransack_q["#{p[0]}_eq"] = Date.tomorrow
          when :this_week
            ransack_q["#{p[0]}_gteq"] = Date.today.beginning_of_week
            ransack_q["#{p[0]}_lteq"] = Date.today.end_of_week
          when :last_week
            ransack_q["#{p[0]}_gteq"] = 1.week.ago.beginning_of_week
            ransack_q["#{p[0]}_lteq"] = 1.week.ago.end_of_week
          when :next_week
            ransack_q["#{p[0]}_gteq"] = Date.today.next_week.beginning_of_week
            ransack_q["#{p[0]}_lteq"] = Date.today.next_week.end_of_week
          when :not_null, :null, :blank, :true, :not_true, :false, :not_false, :present
            ransack_q["#{p[0]}_#{p[1]}"] = '1'
          else
            ransack_q["#{p[0]}_#{p[1]}"] = p[2]
        end
      end
      ransack_q
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
visual_condition_builder-2.1.0 lib/visual_condition_builder/converter.rb
visual_condition_builder-2.0.0 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.1.6 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.1.5 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.1.4 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.1.3 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.1.1 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.1.0 lib/visual_condition_builder/converter.rb
visual_condition_builder-0.0.3 lib/visual_condition_builder/converter.rb