module Voynich::ActiveModel::Model::ClassMethods
Public Instance Methods
voynich_attribute(name, options = {})
click to toggle source
# File lib/voynich/active_model/model.rb, line 52 def voynich_attribute(name, options = {}) options = VOYNICH_DEFAULT_OPTIONS.merge(options) voynich_targets[name.to_sym] = options asoc_options = options. merge(class_name: "::Voynich::ActiveRecord::Value"). reject{|k| VOYNICH_DEFAULT_OPTIONS.keys.include? k} belongs_to :"#{voynich_column_name(name)}", asoc_options private :"#{voynich_column_name(name)}=" define_method(name) do value = send(voynich_column_name(name)) iv = instance_variable_get(:"@#{name}") return iv unless iv.nil? return nil if value.nil? value.context = voynich_context(name) instance_variable_set(:"@#{name}", value.decrypt) end define_method("#{name}=") do |val| instance_variable_set(:"@#{name}", val) end define_method("#{name}?") do value = send(name) value.respond_to?(:empty?) ? !value.empty? : !!value end end
voynich_column_name(name)
click to toggle source
# File lib/voynich/active_model/model.rb, line 47 def voynich_column_name(name) options = voynich_targets[name.to_sym] "#{options[:column_prefix]}#{name}#{options[:column_suffix]}" end
voynich_targets()
click to toggle source
# File lib/voynich/active_model/model.rb, line 43 def voynich_targets @voynich_targets ||= {} end