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