Sha256: 1b0f8606e19dda712174b6569b65315c6db1be58ae6368d2682429677e73e96f

Contents?: true

Size: 908 Bytes

Versions: 1

Compression:

Stored size: 908 Bytes

Contents

module Arpa
  module Repositories
    module Profiles
      class Finder
        include Arpa::Repositories::Base

        def find(id)
          record = repository_class.find(id)
          mapper_instance.map_to_entity(record)
        end

        def all
          repository_class.all.collect do |record|
            mapper_instance.map_to_entity(record)
          end
        end

        def all_by_entity(entity_id, entity_class)
          repository_class
            .where("( (entity_id is null AND entity_class is null) OR (entity_id = '#{entity_id}' AND entity_class = '#{entity_class}') )" )
            .collect do |record|
              mapper_instance.map_to_entity(record)
          end
        end

        def mapper_instance
          Arpa::DataMappers::ProfileMapper.instance
        end

        def repository_class
          RepositoryProfile
        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
arpa-0.2.0 lib/arpa/repositories/profiles/finder.rb