Sha256: aa7029d33c7e855da2c8b694c4c2d735179e33939096a9829c5760a945d03145

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

module CSL
  class Locale

    # A localized Date comprises a set of formatting rules for dates.
		class Date < Node

		  attr_struct :form, *Schema.attr(:formatting, :delimiter)
		  attr_children :'date-part'

		  alias parts  date_part
		  alias locale parent

		  def initialize(attributes = {})
		    super(attributes)
		    children[:'date-part'] = []

		    yield self if block_given?
		  end
      
			def added_to(node)
				raise ValidationError, "parent must be locale node: was #{node.inspect}" unless node.is_a?(Locale)
			end

      def delimiter
        attributes.fetch(:delimiter, '')
      end

      def text?
        !numeric?
      end

      def numeric?
        attributes[:form].to_s =~ /^numeric$/i
      end

      def has_date_parts?
        !date_parts.empty?
      end
      alias has_parts? has_date_parts?
      
		end

		# DatePart represent the localized formatting options for an individual
		# date part (day, month, or year).
		class DatePart < Node
      has_no_children

      attr_struct :name, :form, :'range-delimiter',
        *Schema.attr(:formatting, :periods)

      include CSL::DatePart
		end


  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
csl-1.0.0.pre18 lib/csl/locale/date.rb
csl-1.0.0.pre17 lib/csl/locale/date.rb