Sha256: 96d743da2b31bcc2b6fdc18be86713a1cc4c482ee932a9752e9033a17e71a6d9
Contents?: true
Size: 1.06 KB
Versions: 3
Compression:
Stored size: 1.06 KB
Contents
module EfoNelfo class PostType include EfoNelfo::Property include EfoNelfo::HasMany class << self def for(type, version) klass = "EfoNelfo::V#{version_to_namespace(version)}::#{type}" const_get(klass) rescue nil end # Converts version to module version name # Example: version_to_namespace("4.2") # => "42" def version_to_namespace(version) version.gsub('.', '') end # Extracts version number from class namespace. # Example: EfoNelfo::V41::Some::Class.version # => "4.1" def version (version_from_class.to_f / 10).to_s end def version_from_class self.to_s.match(/::V(?<version>\d+)::/)[:version] end def post_type name.split(/::/).last end def from(hash) self.for(hash[:post_type], hash[:version]).new(hash) end end def initialize(*args) initialize_attributes(*args) end def post_type self.class.post_type end def version self.class.version end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
efo_nelfo-1.2.0 | lib/efo_nelfo/post_type.rb |
efo_nelfo-1.1.0 | lib/efo_nelfo/post_type.rb |
efo_nelfo-1.0.0 | lib/efo_nelfo/post_type.rb |