class BrainDamage::Relation

Constants

VALID_RELATION_TYPES

Public Class Methods

create(type, options) click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 41
def self.create(type, options)
  return nil unless Relation.is_valid_relation? type
  "BrainDamage::#{type.to_s.camelize}".constantize.new options
end
is_valid_relation?(type) click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 37
def self.is_valid_relation? type
  VALID_RELATION_TYPES.include? type
end
new() click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 5
def initialize
  raise "class Relation is an abstract class and can't be instantiated"
end

Public Instance Methods

add_options_to_line(line, options) click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 26
def add_options_to_line(line, options)
  return line unless options
  ([line] + options.map { |name, value|
    if value.is_a? Symbol
      "#{name}: :#{value}"
    else
      "#{name}: '#{value}'"
    end
  }).join ', '
end
class_name() click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 17
def class_name
  return @options[:class_name] if @options[:class_name]
  @options[:field].name.to_s.singularize.camelize
end
model_lines() click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 22
def model_lines
  []
end
nested_on() click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 13
def nested_on
  resource_name_according_to_foreign
end
resource_name_according_to_foreign() click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 9
def resource_name_according_to_foreign
  @options[:as] or @options[:inverse_of] or singular_table_name
end
white_list() click to toggle source
# File lib/generators/brain_damage/lib/relation/base.rb, line 46
def white_list
  nil
end