lib/citeproc/ruby/formats/default.rb in citeproc-ruby-1.1.4 vs lib/citeproc/ruby/formats/default.rb in citeproc-ruby-1.1.5
- old
+ new
@@ -15,9 +15,59 @@
})
end
end
+ class Sort < Text
+ #A special format to use when sorting which prevents formatting of extraneous things like quotes
+
+ def apply(input, node, locale = nil)
+ return '' if input.nil?
+ return input if input.empty? || node.nil?
+
+ return ArgumentError unless node.respond_to?(:formatting_options)
+
+
+ @input, @output, @node, @locale = input, input.dup, node, locale
+
+ setup!
+
+ # NB: Layout nodes apply formatting to
+ # affixes; all other nodes do not!
+ if node.is_a? CSL::Style::Layout
+ apply_prefix if options.key?(:prefix)
+ apply_suffix if options.key?(:suffix)
+ end
+
+ keys.each do |format|
+ if options.key?(format)
+ method = "apply_#{format}".tr('-', '_')
+ send method if respond_to?(method)
+ end
+ end unless options.empty?
+
+ output.gsub!(/\.+/, '') if node.strip_periods?
+
+ #Do not apply quotes when sorting
+ #apply_quotes if node.quotes? && !locale.nil?
+
+ finalize_content!
+
+ unless node.is_a? CSL::Style::Layout
+ apply_prefix if options.key?(:prefix)
+ apply_suffix if options.key?(:suffix)
+ end
+
+ apply_display if options.key?(:display)
+
+ finalize!
+
+ output
+ ensure
+ cleanup!
+ end
+ end
+
class Debug < Format
end
end
end