Sha256: 4935956a754f5f3039079926ed82b16ed6f70fd3087481d41514a97b8a3d706e

Contents?: true

Size: 1.18 KB

Versions: 6

Compression:

Stored size: 1.18 KB

Contents

module Discerner
  module Methods
    module Models
      module ExportParameter
        def self.included(base)
          base.send :include, SoftDelete

          # Associations
          base.send :belongs_to, :parameter,  :inverse_of => :export_parameters
          base.send :belongs_to, :search,     :inverse_of => :export_parameters

          # Scopes
          base.send(:scope, :ordered, -> { base.order('discerner_export_parameters.id ASC') })
          base.send(:scope, :by_parameter_category, ->(parameter_category) { base.includes(:parameter).where('discerner_parameters.parameter_category_id' => parameter_category.id) unless parameter_category.blank?})

          # Validations
          base.send :validates, :parameter, :search, :presence => { :message => "for export parameter can't be blank" }

          # Whitelisting attributes
          base.send :attr_accessible, :parameter_id, :search_id, :parameter, :search
        end

        # Instance Methods
        def initialize(*args)
          super(*args)
        end

        def disabled?
          return false unless persisted?
          deleted? || parameter.blank? || parameter.deleted?
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
discerner-1.2.2 lib/discerner/methods/models/export_parameter.rb
discerner-1.2.1 lib/discerner/methods/models/export_parameter.rb
discerner-1.2.0 lib/discerner/methods/models/export_parameter.rb
discerner-1.1.20 lib/discerner/methods/models/export_parameter.rb
discerner-1.1.19 lib/discerner/methods/models/export_parameter.rb
discerner-1.1.18 lib/discerner/methods/models/export_parameter.rb