Sha256: b9a34ca7320aa6a9c19a8d826150612837a600224026cc2ffeabf7149a4646bc

Contents?: true

Size: 1.13 KB

Versions: 17

Compression:

Stored size: 1.13 KB

Contents

require 'caracal/core/models/custom_property_model'
require 'caracal/errors'


module Caracal
  module Core

    # This module encapsulates all the functionality related to setting the
    # document's custom properties.
    #
    module CustomProperties
      def self.included(base)
        base.class_eval do

          #-------------------------------------------------------------
          # Public Methods
          #-------------------------------------------------------------

          # This method controls the custom properties.
          #
          def custom_property(options={}, &block)
            model = Caracal::Core::Models::CustomPropertyModel.new(options, &block)
            if model.valid?
              register_property(model)
            end
            model
          end


          #============== GETTERS =============================

          def custom_props
            @custom_props ||= []
          end


          #============== REGISTRATION ========================

          def register_property(model)
            custom_props << model
            model
          end

        end
      end
    end

  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
caracal_the_curve-1.4.6 lib/caracal/core/custom_properties.rb
caracal_the_curve-1.4.5 lib/caracal/core/custom_properties.rb
caracal_the_curve-1.4.4 lib/caracal/core/custom_properties.rb
caracal_the_curve-1.4.3 lib/caracal/core/custom_properties.rb
caracal_the_curve-1.4.2 lib/caracal/core/custom_properties.rb
caracal_the_curve-1.4.1 lib/caracal/core/custom_properties.rb
caracal-1.4.1 lib/caracal/core/custom_properties.rb
caracal-1.4.0 lib/caracal/core/custom_properties.rb
caracal-1.3.0 lib/caracal/core/custom_properties.rb
caracal-1.2.0 lib/caracal/core/custom_properties.rb
caracal-1.1.2 lib/caracal/core/custom_properties.rb
caracal-1.1.1 lib/caracal/core/custom_properties.rb
caracal-1.1.0 lib/caracal/core/custom_properties.rb
caracal-1.0.13 lib/caracal/core/custom_properties.rb
caracal-1.0.12 lib/caracal/core/custom_properties.rb
caracal-1.0.11 lib/caracal/core/custom_properties.rb
caracal-1.0.10 lib/caracal/core/custom_properties.rb