Sha256: 9b1f6afa7e3a4af8684c8d51b6ae57a1f1329ae069c9b9a42efb1a33d473844b

Contents?: true

Size: 983 Bytes

Versions: 2

Compression:

Stored size: 983 Bytes

Contents

# encoding: utf-8
module Mongoid
  module Max
    module Denormalize

      class Base

        attr_accessor :klass, :meta, :inverse_meta, :fields, :options

        def initialize(klass, meta, inverse_meta, fields, options)
          @klass = klass
          @meta = meta
          @inverse_meta = inverse_meta
          @fields = fields
          @options = options
        end


        def relation
          @meta.name
        end
        def inverse_relation
          @meta.inverse
        end
        def inverse_klass
          @meta.klass
        end


        def fields_methods
          @fields_methods ||= fields.select do |field|
            meta.klass.fields[field.to_s].nil?
          end
        end
        def fields_only
          @fields_only ||= fields - fields_methods
        end

        class << self

          def array_code_for(fields)
            fields.map { |field| ":#{field}" }.join(", ")
          end

        end

      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mongoid_max_denormalize-0.0.2 lib/mongoid/max/denormalize/base.rb
mongoid_max_denormalize-0.0.1 lib/mongoid/max/denormalize/base.rb