Sha256: 5f34de175ae6f79b7df58fb804e3963e382a95bd9e3d46d228fb7bab333fe83e
Contents?: true
Size: 852 Bytes
Versions: 2
Compression:
Stored size: 852 Bytes
Contents
require 'oj' module JSONAPIonify::Types extend JSONAPIonify::Autoload autoload_all def types DefinitionFinder end module DefinitionFinder def self.method_missing(m, *args) JSONAPIonify::Types.const_get("#{m}Type", false).new(*args) rescue NameError raise TypeError, "#{m} is not a valid JSON type." end end class BaseType include JSONAPIonify::Callbacks define_callbacks :initialize def name self.class.name.split('::').last.chomp('Type') end attr_reader :options def initialize(**options) run_callbacks :initialize do @options = options end freeze end def load(non_ruby) non_ruby end def dump(ruby) JSON.load JSON.dump ruby end def verify(non_ruby) dump(load(non_ruby)) == non_ruby end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jsonapionify-0.9.0 | lib/jsonapionify/types.rb |
jsonapionify-0.0.1.pre | lib/jsonapionify/types.rb |