Sha256: 63128c7971e03d0bce695ca705bb24852b46b80e82f8011fedd1183a43279f27
Contents?: true
Size: 1.03 KB
Versions: 1
Compression:
Stored size: 1.03 KB
Contents
class Customization extend EnumerateIt attr_reader :state, :model attr_writer :customization_data_source def initialize(state, model, options = {}) @state = state @model = model @source = options[:source] end has_enumeration_for :model, with: CustomizationModel def to_s "#{state} - #{model_humanize}" end def data @data ||= load_data end private def load_data return [] unless data_hash data_hash.map do |data, attributes| customization_data(attributes.merge(data: data)) end end def data_hash load_yaml_files['custom_fields'][state.downcase][model] rescue NoMethodError [] end def load_yaml_files sources.inject({}) { |h, file| h.deep_merge!(YAML.load_file(file)) } end def customization_data(params) customization_data_source.new(params) end def customization_data_source @customization_data_source ||= CustomizationDatum end def sources @source.present? ? [@source] : Dir[Rails.root.join('config/custom_fields/**/*.yml')] end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
unico-training-7.8.0 | app/models/customization.rb |