module ParserUtils

Constants

InvalidAttributeError

Public Instance Methods

end_model_from_association_chain(association_chain) click to toggle source
# File lib/hario/behaviours/utils.rb, line 8
def end_model_from_association_chain(association_chain)
  head = @klass

  association_chain.each do |a_name|
    head = head.reflect_on_all_associations.find{ |a| a.name.to_s == a_name }.klass
  end
  
  head
end
raise_if_unlisted_attribute!(type, model_class, attribute) click to toggle source
# File lib/hario/behaviours/utils.rb, line 18
def raise_if_unlisted_attribute!(type, model_class, attribute)
  return unless model_class.respond_to?(:hario_attributes_list)
  return unless model_class.hario_attributes_list
  lists = model_class.hario_attributes_list[type]
  return unless lists
  attribute = attribute.to_sym
  if (lists[:except].present? &&  lists[:except].include?(attribute)) ||
     (lists[:only  ].present? && !lists[:only  ].include?(attribute))
    raise InvalidAttributeError, "#{attribute} is forbidden"
  end
end
table_name_from_association_chain(association_chain) click to toggle source
# File lib/hario/behaviours/utils.rb, line 4
def table_name_from_association_chain(association_chain)
  end_model_from_association_chain(association_chain).table_name
end