Sha256: bdd99a7b6159756515fac6e502393b4704afc8818c2edae4ded349f35aee5400

Contents?: true

Size: 1.11 KB

Versions: 6

Compression:

Stored size: 1.11 KB

Contents

require 'sunrise/config/field'

module Sunrise
  module Config
    class NestedField < Field

      # Array for store all defined fields
      def fields
        @fields ||= []
      end
      
      # Defines a configuration for a field.
      def field(name = :custom, options = {}, &block)
        options = { :name => name.to_sym }.merge(options)
        fields << Field.new(abstract_model, self, options, &block)
      end

      def nested?
        true
      end

      def multiply?
        @config_options[:multiply] != false
      end

      def sort?
        @config_options[:sort] != false
      end

      def sort_hidden_field?
        sort? && sort_options[:hidden_field]
      end

      def sort_column
        sort_options[:column]
      end

      def sort_options
        @sort_options ||= build_sort_options
      end

      protected

        def build_sort_options
          options = (@config_options[:sort].is_a?(Hash) ? @config_options[:sort] : {}).symbolize_keys
          
          {
            :column => :sort_order, 
            :hidden_field => true
          }.merge(options)
        end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sunrise-cms-1.0.6 lib/sunrise/config/nested_field.rb
sunrise-cms-1.0.5 lib/sunrise/config/nested_field.rb
sunrise-cms-1.0.4 lib/sunrise/config/nested_field.rb
sunrise-cms-1.0.3 lib/sunrise/config/nested_field.rb
sunrise-cms-1.0.2 lib/sunrise/config/nested_field.rb
sunrise-cms-1.0.1 lib/sunrise/config/nested_field.rb