Sha256: 8f34358436c35e3b1723517e78f261ad2085c78e9b0ee4b839c331057cfcaf06

Contents?: true

Size: 1.69 KB

Versions: 118

Compression:

Stored size: 1.69 KB

Contents

module RecordSelect
  def self.included(base)
    base.send :extend, ClassMethods
  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

118 entries across 118 versions & 3 rubygems

Version Path
six-updater-web-0.14.3 lib/six-updater-web/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.14.2 lib/six-updater-web/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.14.1 lib/six-updater-web/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.13.6 lib/six-updater-web/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.13.5 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.13.4 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.13.3 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.13.2 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.13.1 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.7 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.6 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.5 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.4 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.3 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.2 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.12.1 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.11.2 lib/vendor/plugins/recordselect/lib/record_select.rb
six-updater-web-0.11.1 lib/vendor/plugins/recordselect/lib/record_select.rb