Sha256: e2f74a6a697a8181239236bcdcdd161ee765afe4987fd4622ca816e7e180ab46
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require 'csv' module AxleAttributes class Dumper attr_reader :model def initialize(model) @model = model end def dump_internal dump(model.attribute_set, ["Attribute", "Display Name", "Type", "Deprecation", "Legacy Name", "Mapping", "Description", "Note"]) do |definition| [ definition.canonical_name, definition.display_name, definition.type, definition.deprecated_on ? definition.deprecated_on.to_s('%Y/%m/%d') : nil, definition.options[:mmdb_name], mapping_display(definition), definition.description, definition.notes ] end end def dump_public(attribute_set) dump(attribute_set, ["Attribute", "Display Name", "Type", "Description"]) do |definition| [ definition.canonical_name, definition.display_name, definition.type, definition.description ] end end def dump(attribute_set, headers) CSV.generate(headers: headers, write_headers: true) do |csv| attribute_set.sort.each do |attribute_name| definition = model.attributes[attribute_name] csv << yield(definition) if definition end end end def mapping_display(definition) if mapping_model = definition.mapping_model "#{mapping_model.model_name.plural}.#{mapping_model.natural_key}" if mapping_model.respond_to?(:natural_key) elsif definition.mappings.any? "attribute_mappings" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
axle_attributes-1.13.2 | lib/axle_attributes/dumper.rb |