class SearchGenerator

Public Instance Methods

generate_search_form() click to toggle source
# File lib/generators/search/search_generator.rb, line 12
def generate_search_form
  template  'advanced_search.html.haml', "app/views/#{model_name.pluralize.underscore}/_advanced_search.html.haml"
end
generate_searcher() click to toggle source
# File lib/generators/search/search_generator.rb, line 8
def generate_searcher
  template  'searcher.rb', "app/searchers/#{model_name.underscore}_searcher.rb"
end
generate_spec_file() click to toggle source
# File lib/generators/search/search_generator.rb, line 20
def generate_spec_file
  template  'searcher_spec.rb', "spec/searchers/#{model_name.underscore}_searcher_spec.rb"
end
generate_yml_file() click to toggle source
# File lib/generators/search/search_generator.rb, line 16
def generate_yml_file
  template  'en.yml', "config/locales/models/#{model_name.underscore}/en.yml"
end
inject_searcher_params() click to toggle source
# File lib/generators/search/search_generator.rb, line 24
def inject_searcher_params
  inject_into_file("app/controllers/#{model_name.pluralize.underscore}_controller.rb", :after => 'private') do 
    searcher_params_content
  end
end

Private Instance Methods

between_attributes() click to toggle source
# File lib/generators/search/search_generator.rb, line 81
def between_attributes
  between_attributes = []
  get_attributes.each do |k, v|
    if k.include?("bet1")
      k = k.chomp("bet1")
      between_attributes << ["#{k}", "from_#{k}" ,"to_#{k}"]
    end
  end
  between_attributes
end
between_date_time_attributes() click to toggle source
# File lib/generators/search/search_generator.rb, line 92
def between_date_time_attributes
  between_date_time_attributes = []
  get_attributes.each do |k, v|
    if k.include?("bet$")
      k = k.chomp("bet$")
      between_date_time_attributes << ["#{k}", "from_#{k}" ,"to_#{k}"]
    end
  end
  between_date_time_attributes
end
get_attributes() click to toggle source
# File lib/generators/search/search_generator.rb, line 32
def get_attributes
  @attributes ||= argument.collect do |attribute|
    Rails::Generator::GeneratedAttribute.new(*attribute.split(":"))
  end
end
searcher_params_content() click to toggle source
# File lib/generators/search/search_generator.rb, line 38
  def searcher_params_content
    buffer = <<-CONTENT
    
    def search_params
      params.require(:#{model_name.underscore}_searcher).permit( #{symbolize_attribute})
    end 
    CONTENT
    buffer
  end
symbolize_attribute() click to toggle source
# File lib/generators/search/search_generator.rb, line 49
def symbolize_attribute
  f = ""
  get_attributes.each do |k, v|
    if k.include?("humanize_model@")
    elsif k.include?("bet1")
      k = k.chomp("bet1")
      f = f + ":from_#{k}, "
      f = f + ":to_#{k}, "
    elsif k.include?("bet$")
        k = k.chomp("bet$")
        f = f + ":from_#{k}, "
        f = f + ":to_#{k}, "
    elsif k.include?("e$")
      k = k.chomp("e$")
      f = f+":#{k}, "
    elsif k.include?("page@")
      k = k.chomp("@")
      f = f+":#{k}, "
    elsif k.include?("approval_status@")
      k = k.chomp("@")
      f = f+":#{k}, "
    elsif k.include?("yes$")
      k = k.chomp("yes$")
      f = f+":#{k}, "
    else
      f = f+":#{k}, "
    end
  end
  f.chomp(", ")
end