Sha256: 1d27937b5c18d6a09bbde2550968bfb7e8bfb4246ed3b352a9171370b83a049b
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
module DataMapper module Model # module Json def to_json_schema(repository_name = default_repository_name) to_json_schema_compatible_hash(repository_name).to_json end #TODO: Add various options in. def to_json_schema_compatible_hash(repository_name = default_repository_name) usable_properties = properties.select{|p| p.name != :id } schema_hash = {} schema_hash['id'] = self.storage_name(repository_name) properties_hash = {} usable_properties.each{|p| properties_hash[p.name] = p.to_json_schema_hash if p.name != :id } schema_hash['properties'] = properties_hash return schema_hash end end class Property def to_json_schema_hash json_hash = { "type" => to_json_type } { "optional" => true }.merge(json_hash) unless required? == true # MIN # MAX end private def to_json_type # A case statement doesn't seem to be working when comparing classes. # That's why we're using a if elseif block. if type == DataMapper::Types::Serial return "string" elsif type == String return "string" elsif type == Float return "number" elsif type == DataMapper::Types::Boolean return "boolean" elsif type == DataMapper::Types::Text elsif type == "string" elsif type == Integer return "integer" else return"string" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dm-persevere-adapter-0.18.0 | lib/model_json_support.rb |