Sha256: b90f5c015bb2fbdaee02c6f10c93d7c2e2e7b91f75e203e9394b327794da74aa
Contents?: true
Size: 1.68 KB
Versions: 6
Compression:
Stored size: 1.68 KB
Contents
module Locomotive module Steam class ContentTypeFieldRepository include Models::Repository attr_accessor :content_type # Entity mapping mapping :content_type_fields, entity: ContentTypeField do default_attribute :content_type, -> (repository) { repository.content_type } embedded_association :select_options, ContentTypeFieldSelectOptionRepository end def by_name(name) first { where(name: name) } end def selects query { where(type: :select) }.all end def files query { where(type: :file) }.all end def belongs_to query { where(type: :belongs_to) }.all end def many_to_many query { where(type: :many_to_many) }.all end def associations query { where(k(:type, :in) => %i(belongs_to has_many many_to_many)) }.all end def no_associations query { where(k(:type, :nin) => %i(belongs_to has_many many_to_many)) }.all end def unique query { where(unique: true) }.all.inject({}) do |memo, field| memo[field.name] = field memo end end def required query { where(required: true) }.all end def localized_names query { where(localized: true) }.all.map(&:name) end def default query { where(k(:default, :neq) => nil, k(:type, :in) => [:string, :text, :color, :select, :boolean, :email, :integer, :float]) }.all end def select_options(name) if field = first { where(name: name, type: :select) } field.select_options.all else nil end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems