Sha256: 9c4d4b334751b430596604419ea59a6ec0579cadd94040cb8cf7b08381d98b01

Contents?: true

Size: 740 Bytes

Versions: 57

Compression:

Stored size: 740 Bytes

Contents

module ReeDao
  module AssociationMethods
    def self.included(base)
      base.include(InstanceMethods)
    end

    def self.extended(base)
      base.include(Instance)
    end

    module InstanceMethods
      SUFFIXES = ["", "s", "es", "dao", "s_dao", "es_dao"].freeze

      def find_dao(assoc_name, parent_caller, scope = nil)
        SUFFIXES.each do |suffix|
          dao_from_name = parent_caller.instance_variable_get("@#{assoc_name}#{suffix}")
          return dao_from_name if dao_from_name
        end

        if scope.is_a?(Sequel::Dataset)
          return scope.unfiltered
        end

        raise ArgumentError, "can't find DAO for :#{assoc_name}, provide correct scope or association name"
      end
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
ree_lib-1.1.0 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.124 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.123 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.122 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.121 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.120 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.119 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.118 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.117 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.116 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.115 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.114 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.113 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.112 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.111 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.110 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.109 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.108 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.107 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb
ree_lib-1.0.106 lib/ree_lib/packages/ree_dao/package/ree_dao/association_methods.rb