class Jsoning::Version

jsoning can output to conform to different versioning

Attributes

mappers[R]
mappers_order[R]
protocol[R]

the protocol class

version_name[R]

Public Class Methods

new(protocol) click to toggle source
# File lib/jsoning/foundations/version.rb, line 11
def initialize(protocol)
  @protocol = protocol
  # mappers, only storing symbol of mapped values
  @mappers_order = []
  @mappers = {}
end

Public Instance Methods

add_mapper(mapper) click to toggle source
# File lib/jsoning/foundations/version.rb, line 24
def add_mapper(mapper)
  raise Jsoning::Error, "Mapper must be of class Jsoning::Mapper" unless mapper.is_a?(Jsoning::Mapper)
  @mappers_order << canonical_mapper_name(mapper.name)
  @mappers[canonical_mapper_name(mapper.name)] = mapper
end
mapper_for(name) click to toggle source
# File lib/jsoning/foundations/version.rb, line 30
def mapper_for(name)
  @mappers[canonical_mapper_name(name)]
end
version_name=(version_name) click to toggle source
# File lib/jsoning/foundations/version.rb, line 18
def version_name=(version_name)
  # version name is always be a string, because if user's version
  # name happen to be an integer, we don't want to fail on that case
  @version_name = version_name.to_s
end

Private Instance Methods

canonical_mapper_name(key_name) click to toggle source
# File lib/jsoning/foundations/version.rb, line 35
def canonical_mapper_name(key_name)
  key_name.to_s.downcase.to_sym
end