Sha256: b45008a52f8f13124db102371253d962556544fbc1e39b34d8d297bb7a42a0c9

Contents?: true

Size: 1.81 KB

Versions: 7

Compression:

Stored size: 1.81 KB

Contents

module Skyline::Content
  module MetaData
    class FieldPage #:nodoc:
  
      attr_reader :owner,:name,:options
  
      def initialize(owner,name,options={})
        @owner = owner
        @name = name
        @options = options
        @fields = {}
        @ungrouped_fields = []
      end
  
      def description(v=nil)
        @options[:description] = v if v
        @options[:description]
      end
      
      def title(v=nil)
        @options[:title] = v if v
        @options[:title]
      end
  
      def each_field(&block)
        self.ungrouped_fields.each do |field_name|
          yield_field(field_name,&block)
        end
      end
  
      def yield_field(field_name,&block)
        yield self.fields[field_name]
      end
  
      def field(*fields,&block)
        options = fields.last.kind_of?(Hash) ? fields.pop : {}
        fields = fields.first if fields.any? && fields.first.kind_of?(Array)
  
        fields.map do |name|
          @fields[name] = Field.new(options.update(:name => name, :owner => self))
          yield @fields[name] if block_given?
          @ungrouped_fields << name
          @fields[name]
        end
      end
  
      def field_group(name,options={})
        field_group = FieldGroup.new(options.update(:owner => self, :name => name))
        yield field_group if block_given?
        @fields[name] = field_group
        @ungrouped_fields << name
      end
  
      def fields
        @fields
      end
  
      def field_order(*order)
        if order.empty?
          @ungrouped_fields
        else
  
        end
      end
  
      def ungrouped_fields
        @ungrouped_fields
      end
  
      def field_names
        @fields.keys
      end
  
      def human_name
        self.title.present? ? self.title : self.name.to_s.humanize
      end
  
      def owner; @owner; end
  
    end  
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
skylinecms-3.3.0 lib/skyline/content/meta_data/field_page.rb
skylinecms-3.2.0 lib/skyline/content/meta_data/field_page.rb
skylinecms-3.1.0 lib/skyline/content/meta_data/field_page.rb
westarete-skylinecms-3.0.8.20100329 lib/skyline/content/meta_data/field_page.rb
westarete-skylinecms-3.0.8.20100330 lib/skyline/content/meta_data/field_page.rb
skylinecms-3.0.8 lib/skyline/content/meta_data/field_page.rb
skylinecms-3.0.7 lib/skyline/content/meta_data/field_page.rb