Sha256: 669a64526fca090b3e0c40626f869f2ce34ca5b09b62e7996283b64a1ef3aa79

Contents?: true

Size: 680 Bytes

Versions: 36

Compression:

Stored size: 680 Bytes

Contents

# frozen_string_literal: true

# Generates a filter for a given model.
class FilterGenerator < Rails::Generators::NamedBase
  CONDITIONS = %w[text date numeric].freeze
  source_root File.expand_path('templates', __dir__)

  def create_filter
    @conditions = extract_conditions(args)
    template 'filter.rb.erb', "app/filters/#{plural_name}_filter.rb"
  end

  private

  def extract_conditions(args)
    conditions = []
    args.each do |arg|
      field, condition = arg.split(':')

      throw "#{condition} is an invalid condition" unless CONDITIONS.include? condition

      conditions << { field: field, condition: condition.capitalize }
    end

    conditions
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
refine-rails-2.13.3 lib/generators/filter/filter_generator.rb
refine-rails-2.13.2 lib/generators/filter/filter_generator.rb
refine-rails-2.13.1 lib/generators/filter/filter_generator.rb
refine-rails-2.13.0 lib/generators/filter/filter_generator.rb
refine-rails-2.12.2 lib/generators/filter/filter_generator.rb
refine-rails-2.12.1 lib/generators/filter/filter_generator.rb
refine-rails-2.12.0 lib/generators/filter/filter_generator.rb
refine-rails-2.11.12 lib/generators/filter/filter_generator.rb
refine-rails-2.11.11 lib/generators/filter/filter_generator.rb
refine-rails-2.11.10 lib/generators/filter/filter_generator.rb
refine-rails-2.11.9 lib/generators/filter/filter_generator.rb
refine-rails-2.11.8 lib/generators/filter/filter_generator.rb
refine-rails-2.11.6 lib/generators/filter/filter_generator.rb
refine-rails-2.11.5 lib/generators/filter/filter_generator.rb
refine-rails-2.11.4 lib/generators/filter/filter_generator.rb
refine-rails-2.11.3 lib/generators/filter/filter_generator.rb
refine-rails-2.11.2 lib/generators/filter/filter_generator.rb
refine-rails-2.11.1 lib/generators/filter/filter_generator.rb
refine-rails-2.11.0 lib/generators/filter/filter_generator.rb
refine-rails-2.10.1 lib/generators/filter/filter_generator.rb