Sha256: 457273967d03587c4694764aab46fc7115f65165d6bcfe461aeba8dc71084002
Contents?: true
Size: 1.05 KB
Versions: 5
Compression:
Stored size: 1.05 KB
Contents
# lib/apache_age/types/factory.rb # Automatically generates ActiveModel::Type classes # Dynamically builds this (as a concrete example): # module ApacheAge # module Types # class CompanyType < ActiveModel::Type::Value # def cast(value) # case value # when Nodes::Company # value # when Hash # Nodes::Company.new(value) # else # nil # end # end # def serialize(value) # value.is_a?(Nodes::Company) ? value.attributes : nil # end # end # end # end module ApacheAge module Types class Factory def self.type_for(klass) Class.new(ActiveModel::Type::Value) do define_method(:cast) do |value| case value when klass value when Hash klass.new(value) else nil end end define_method(:serialize) do |value| value.is_a?(klass) ? value.attributes : nil end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems