lib/csl/style/group.rb in csl-1.0.0.pre18 vs lib/csl/style/group.rb in csl-1.0.0.pre19

- old
+ new

@@ -1,9 +1,30 @@ module CSL class Style + # The Group rendering element must contain one or more rendering + # element (with the exception of {Layout}). Group nodes may carry the + # delimiter attribute to separate their child elements, as well as + # affixes and display attributes (applied to the output of the group + # as a whole) and formatting attributes (transmitted to the enclosed + # elements). + # + # Groups implicitly act as a conditionals: a Group and its child + # elements are suppressed if a) at least one rendering element in + # the Group calls a variable (either directly or via a macro), and + # b) all variables that are called are empty. class Group < Node - attr_struct *Schema.attr(:affixes, :display, :delimiter) + attr_struct(*Schema.attr(:formatting, :affixes, :display, :delimiter)) + + def delimiter + attributes.fetch(:delimiter, '') + end + + private + + def added_child(node) + node.attribtes.merge formatting_options + end end end end \ No newline at end of file