class ONIX::ElementParser
for class DSL
Attributes
cardinality[RW]
klass_name[RW]
name[RW]
short[RW]
type[RW]
Public Class Methods
inflectors()
click to toggle source
# File lib/onix/subset.rb, line 104 def self.inflectors [['ox', 'oxes'], ['us', 'uses'], ['', 's'], ['ero', 'eroes'], ['rf', 'rves'], ['af', 'aves'], ['ero', 'eroes'], ['man', 'men'], ['ch', 'ches'], ['sh', 'shes'], ['ss', 'sses'], ['ta', 'tum'], ['ia', 'ium'], ['ra', 'rum'], ['ay', 'ays'], ['ey', 'eys'], ['oy', 'oys'], ['uy', 'uys'], ['y', 'ies'], ['x', 'xes'], ['lf', 'lves'], ['ffe', 'ffes'], ['afe', 'aves'], ['ouse', 'ouses']] end
new(name, type, options = {})
click to toggle source
# File lib/onix/subset.rb, line 131 def initialize(name, type, options = {}) @name = name @type = type @pluralize = true @short = false @array = false @parse_lambda = nil @serialize_lambda = nil if options[:array] @array = true end if options[:pluralize] == false @pluralize = false end @parse_lambda = options[:parse_lambda] @serialize_lambda = options[:serialize_lambda] @shortcut = options[:shortcut] @cardinality = options[:cardinality] @cardinality = nil if @cardinality == 0..n # no need to check if 0..n if options[:klass] @klass_name = options[:klass] else @klass_name = name end end
Public Instance Methods
_underscore_name()
click to toggle source
# File lib/onix/subset.rb, line 175 def _underscore_name if @array and @pluralize pluralize(underscore(@name)) else underscore(@name) end end
class_name()
click to toggle source
# File lib/onix/subset.rb, line 187 def class_name @klass_name end
is_array?()
click to toggle source
# File lib/onix/subset.rb, line 171 def is_array? @array end
parse_lambda(v)
click to toggle source
# File lib/onix/subset.rb, line 163 def parse_lambda(v) @parse_lambda ? @parse_lambda.call(v) : v end
serialize_lambda(v)
click to toggle source
# File lib/onix/subset.rb, line 167 def serialize_lambda(v) @serialize_lambda ? @serialize_lambda.call(v) : v end
shortcut()
click to toggle source
# File lib/onix/subset.rb, line 159 def shortcut @shortcut end
to_instance()
click to toggle source
# File lib/onix/subset.rb, line 195 def to_instance @instance ||= "@" + self.underscore_name end
to_sym()
click to toggle source
# File lib/onix/subset.rb, line 191 def to_sym @sym ||= self.underscore_name.to_sym end
underscore_name()
click to toggle source
# File lib/onix/subset.rb, line 183 def underscore_name @underscore_name ||= _underscore_name end
Private Instance Methods
pluralize(str)
click to toggle source
# File lib/onix/subset.rb, line 201 def pluralize(str) rex = /(#{self.class.inflectors.map { |si, pl| si }.join('|')})$/i hash = Hash[*self.class.inflectors.flatten] str.sub(rex) { |m| hash[m] } end
underscore(str)
click to toggle source
# File lib/onix/subset.rb, line 207 def underscore(str) word = str.to_s.dup word.gsub!('::', '/') word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2') word.gsub!(/([a-z\d])([A-Z])/, '\1_\2') word.tr!("-", "_") word.downcase! word end