Sha256: b3e9f45427b88b75f1cf4df8c5b74367d8c34776050ff831799e1f6098172295

Contents?: true

Size: 868 Bytes

Versions: 2

Compression:

Stored size: 868 Bytes

Contents

module ReportsKits
  module Reports
    class ModelSettings
      attr_accessor :model_class, :model_configuration_type, :key

      def initialize(model_class, model_configuration_type, key)
        self.model_class = model_class
        self.model_configuration_type = model_configuration_type
        self.key = key
      end

      def settings_from_model
        return {} if model_configuration.blank?
        config_hashes = model_configuration.public_send(model_configuration_type)
        return {} if config_hashes.blank?
        config_hash = config_hashes.find do |hash|
          hash[:key] == key
        end
        config_hash || {}
      end

      private

      def model_configuration
        return unless model_class && model_class.respond_to?(:reports_kit_configuration)
        model_class.reports_kit_configuration
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
reports_kits-0.7.8 lib/reports_kits/reports/model_settings.rb
reports_kits-0.7.7 lib/reports_kits/reports/model_settings.rb