Module: Sequel::Plugins::SequelDynamicColumn
- Defined in:
- lib/config.rb,
lib/class_methods.rb,
lib/instance_methods.rb,
lib/sequel_dynamic_column.rb
Defined Under Namespace
Modules: ClassMethods, InstanceMethods Classes: Config
Class Method Summary collapse
Class Method Details
.configure(model, opts = {}) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/sequel_dynamic_column.rb', line 8 def self.configure(model, opts = {}) #config = Config.new config = nil if block_given? config = Config.new yield config else config = Config.new(opts) #config.storage_column = opts.fetch(:storage_column) #config.dynamic_columns = opts.fetch(:dynamic_columns) end model.instance_eval do @dynamic_column_config = config class << self attr_accessor :dynamic_column_config end config.dynamic_columns.each do |field| field_str = field.to_s define_method "#{field}" do self.send(config.storage_column)[field_str] end define_method("#{field}=") do |val| storage_column_val = self.send(config.storage_column) || {} self.send("#{config.storage_column}=", storage_column_val) storage_column_val[field_str] = val end end end end |