module CiteProc::Attributes::ClassMethods
Public Instance Methods
Source
# File lib/citeproc/attributes.rb, line 157 def attr_field(field, default = nil, predicate = false) method_id = field.to_s.downcase.gsub(/[-\s]+/, '_') unless instance_methods.include?(method_id) if default define_method(method_id) do read_attribute field end else define_method(method_id) do attributes[filter_key(field)] ||= default end end end writer_id = [method_id,'='].join unless instance_methods.include?(writer_id) define_method(writer_id) do |value| write_attribute field, value end end predicate_id = [method_id, '?'].join if predicate && !instance_methods.include?(predicate_id) define_method(predicate_id) do attribute?(field) end has_predicate = ['has_', predicate_id].join alias_method(has_predicate, predicate_id) unless instance_methods.include?(has_predicate) end end
Source
# File lib/citeproc/attributes.rb, line 151 def attr_fields(*arguments) arguments.flatten.each do |field| attr_field(*(field.is_a?(Hash) ? field.to_a.flatten : [field])) end end
Source
# File lib/citeproc/attributes.rb, line 144 def attr_predicates(*arguments) arguments.flatten.each do |field| field, default = *(field.is_a?(Hash) ? field.to_a.flatten : [field]) attr_field(field, default, true) end end
Source
# File lib/citeproc/attributes.rb, line 134 def create(parameters) create!(parameters) rescue nil end
Source
# File lib/citeproc/attributes.rb, line 140 def create!(parameters) new.merge(parameters) end