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

Modules: First, Last

Constant Summary collapse

DEFAULT_FEATURES =
[
	:first,
	:last
].freeze
FEATURES =
Dir[File.expand_path('../', __FILE__) + "/active_record/*.rb"].map{ |f|
	File.basename(f, '.rb').to_sym
}

Class Method Summary collapse

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