Sha256: 43deff3a9b942a25fb022f83436e7d28e143221e167ae04e2f2f1ee42cccf646
Contents?: true
Size: 1.07 KB
Versions: 8
Compression:
Stored size: 1.07 KB
Contents
# lib/apache_age/types/age_type_generator.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 AgeTypeGenerator def self.create_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
8 entries across 8 versions & 1 rubygems