class Guise::GuiseForBuilder
@api private
Public Class Methods
new(association_class, options, association_options)
click to toggle source
# File lib/guise/builders.rb, line 80 def initialize(association_class, options, association_options) @association_class = association_class @options = options # if `:validate` is specified, coerce the value into a boolean, otherwise, default to # `true` @define_validations = if association_options.key?(:validate) !!association_options.delete(:validate) else true end @association_options = @options.default_association_options.merge(association_options) end
Public Instance Methods
build!()
click to toggle source
# File lib/guise/builders.rb, line 95 def build! update_guise_options! define_association! define_scopes! if define_validations? define_validations! end end
Private Instance Methods
define_association!()
click to toggle source
# File lib/guise/builders.rb, line 115 def define_association! @association_class.belongs_to(@options.source_association_name, @association_options) end
define_scopes!()
click to toggle source
# File lib/guise/builders.rb, line 119 def define_scopes! @options.values.each do |value| @association_class.scope( value.underscore.pluralize, GuiseForScope.new(value, @options) ) end end
define_validations!()
click to toggle source
# File lib/guise/builders.rb, line 128 def define_validations! @association_class.validates( @options.attribute, uniqueness: { scope: @options.association_options[:foreign_key] }, presence: true, inclusion: { in: @options.values } ) end
define_validations?()
click to toggle source
# File lib/guise/builders.rb, line 107 def define_validations? @define_validations end
update_guise_options!()
click to toggle source
# File lib/guise/builders.rb, line 111 def update_guise_options! @options.association_class = @association_class end