Module: Sequel::Plugins::ActiveRecord
- Defined in:
- lib/sequel/plugins/active_record.rb,
lib/sequel/plugins/active_record/last.rb,
lib/sequel/plugins/active_record/first.rb
Defined Under Namespace
Constant Summary collapse
- DEFAULT_FEATURES =
[ :first, :last ].freeze
- FEATURES =
Dir[File.('../', __FILE__) + "/active_record/*.rb"].map{ |f| File.basename(f, '.rb').to_sym }
Class Method Summary collapse
-
.configure(model, features: DEFAULT_FEATURES) ⇒ Object
Loads requested features as plugins on the model.
Class Method Details
.configure(model, features: DEFAULT_FEATURES) ⇒ Object
Loads requested features as plugins on the model
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/sequel/plugins/active_record.rb', line 15 def self.configure model, features: DEFAULT_FEATURES # Ensure an array features = [features] unless Array === features # Load each feature as a plugin features.each do |feature| # Sanity check the requested feature unless FEATURES.include? feature raise ArgumentError, "#{self.inspect} does not recognize feature: #{feature.inspect}" end # Load the requested feature plugins module_name = feature.to_s.gsub(/(^|_)(.)/){|x| x[-1..-1].upcase} unless self.const_defined? module_name require "sequel/plugins/active_record/#{feature}" end model.plugin self.const_get(module_name) end end |