Sha256: f529966089b6505eb89eae3eead2e4218ae6e3db1b36bf4d60acb5bbaa180c3a

Contents?: true

Size: 1.78 KB

Versions: 7

Compression:

Stored size: 1.78 KB

Contents

module RecordSelect
  def self.included(base)
    base.send :extend, ClassMethods
    base.append_view_path "#{File.dirname(__FILE__)}/../app/views" if defined?(RECORD_SELECT_GEM)
  end

  module ClassMethods
    # Enables and configures RecordSelect on your controller.
    #
    # *Options*
    # +model+::     defaults based on the name of the controller
    # +per_page+::  records to show per page when browsing
    # +notify+::    a method name to invoke when a record has been selected.
    # +order_by+::  a SQL string to order the search results
    # +search_on+:: an array of searchable fields
    # +full_text_search+::  a boolean for whether to use a %?% search pattern or not. default is false.
    # +label+::     a proc that accepts a record as argument and returns an option label. default is to call record.to_label instead.
    # +include+::   as for ActiveRecord::Base#find. can help with search conditions or just help optimize rendering the results.
    # +link+::      a boolean for whether wrap the text returned by label in a link or not. default is true. set to false when
    #               label returns html code which can't be inside a tag. You can use record_select_link_to_select in your proc
    #               or partial to add a link to select action
    #
    # You may also pass a block, which will be used as options[:notify].
    def record_select(options = {})
      options[:model] ||= self.to_s.split('::').last.sub(/Controller$/, '').pluralize.singularize.underscore
      @record_select_config = RecordSelect::Config.new(options.delete(:model), options)
      self.send :include, RecordSelect::Actions
      self.send :include, RecordSelect::Conditions
    end

    attr_reader :record_select_config

    def uses_record_select?
      !record_select_config.nil?
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
recordselect_vho-3.0.206 lib/record_select.rb
recordselect_vho-3.0.205 lib/record_select.rb
recordselect_vho-3.0.204 lib/record_select.rb
recordselect_vho-3.0.3 lib/record_select.rb
recordselect_vho-3.0.2 lib/record_select.rb
recordselect_vho-3.0.1 lib/record_select.rb
recordselect_vho-3.0.0 lib/record_select.rb