class ActiveRecordAnalyzer::Reflector::Simple

Public Class Methods

new(klass) click to toggle source
# File lib/active_record_analyzer/reflector/simple.rb, line 2
def initialize(klass)
  @klass = klass
end

Public Instance Methods

attribute_type() click to toggle source
# File lib/active_record_analyzer/reflector/simple.rb, line 10
def attribute_type
  @attribute_type ||= ActiveRecordAnalyzer::Attribute::Simple
end
attributes() click to toggle source

This returns attributes which are not foreign keys (ex: :name, but not :company_id)

# File lib/active_record_analyzer/reflector/simple.rb, line 16
def attributes
  attributes_except_foreign_keys
end
has_attribute?(attribute) click to toggle source
# File lib/active_record_analyzer/reflector/simple.rb, line 6
def has_attribute?(attribute)
  attributes.include?(attribute.to_sym)
end

Private Instance Methods

all_attribute_names() click to toggle source
# File lib/active_record_analyzer/reflector/simple.rb, line 28
def all_attribute_names
  @all_attribute_names ||= @klass.attribute_names.map(&:to_sym)
end
attributes_except_foreign_keys() click to toggle source
# File lib/active_record_analyzer/reflector/simple.rb, line 22
def attributes_except_foreign_keys
  @attributes ||= begin
    all_attribute_names.select { |attr| !foreign_keys.include?(attr) }
  end
end
foreign_keys() click to toggle source
# File lib/active_record_analyzer/reflector/simple.rb, line 32
def foreign_keys
  @foreign_keys ||= ActiveRecordAnalyzer::Reflector::BelongsTo.new(@klass).attributes
end