Sha256: ce1d7c4cb921af9390a2cd40af8bc1a085729f943464a2c6661e46f378367fad

Contents?: true

Size: 631 Bytes

Versions: 2

Compression:

Stored size: 631 Bytes

Contents

module Associations
  def has_many(resource, options={})
    class_name = options[:class_name] || "Sfn::#{resource.to_s.classify}"
    eval <<-EOS
      def self.#{resource}
        @#{resource} ||= Sfn::ResourceCollection.new(#{class_name}, self.satisfaction, '#{options[:url]}')
      end
    EOS
  end
  
  def belongs_to(resource, options={})
    class_name = options[:class_name] || "Sfn::#{resource.to_s.classify}"
    parent_id = options[:parent_attribute] || "#{resource}_id"
    eval <<-EOS
      def self.#{resource}
        @#{resource} ||= #{class_name}.new(#{parent_id}, self.satisfaction)
      end
    EOS
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-satisfaction-0.6.3 lib/satisfaction/associations.rb
ruby-satisfaction-0.6.2 lib/satisfaction/associations.rb