Sha256: 6be0e4aa7c434a5f6516f1db6a45ca67ea334a80b4db2cf7a18d5ddf9ecba3f8

Contents?: true

Size: 1.07 KB

Versions: 8

Compression:

Stored size: 1.07 KB

Contents

module CSL
  class Style

    class Names < Node

      attr_struct :variable, *Schema.attr(:names, :delimiter, :affixes, :display, :font)

      attr_children :name, :'et-al', :label, :substitute

      alias labels label

      def initialize(attributes = {})
        super(attributes)
        children[:label] = []

        yield self if block_given?
      end

      def has_variable?
        attribute?(:variable)
      end

      def variable
        attributes[:variable]
      end

    end


    class Name < Node

      attr_struct :form, *Schema.attr(:name, :affixes, :font, :delimiter)

      attr_children :'name-part'

      alias parts name_part

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

        yield self if block_given?
      end

    end

    class NamePart < Node
      has_no_children
      attr_struct :name, :'text-case', *Schema.attr(:affixes, :font)
    end

    class EtAl < Node
      has_no_children
      attr_struct :term, *Schema.attr(:affixes, :font)
    end

    class Substitute < Node
    end


  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
csl-1.0.0.pre21 lib/csl/style/names.rb
csl-1.0.0.pre20 lib/csl/style/names.rb
csl-1.0.0.pre19 lib/csl/style/names.rb
csl-1.0.0.pre18 lib/csl/style/names.rb
csl-1.0.0.pre17 lib/csl/style/names.rb
csl-1.0.0.pre16 lib/csl/style/names.rb
csl-1.0.0.pre15 lib/csl/style/names.rb
csl-1.0.0.pre14 lib/csl/style/names.rb