Sha256: a161720cc717f807c7f6a088308841e905cb116b80bb3552d7970da732f29830

Contents?: true

Size: 1.26 KB

Versions: 6

Compression:

Stored size: 1.26 KB

Contents

module SurveyorGui
  module Models
    module DependencyConditionMethods

      def self.included(base)
        base.send :attr_accessible, :dependency_id, :rule_key, :question_id, :operator, :answer_id,
                  :float_value, :integer_value, :join_operator, :column_id, :columns_attributes if defined? ActiveModel::MassAssignmentSecurity
        base.send :belongs_to, :dependency
        base.send :belongs_to, :column
        base.send :default_scope, lambda{ base.order('rule_key') }
      end

      def join_operator
        rule = Rules.new(self)
        return rule.join_operator(self.rule_key)
      end

      def join_operator=(x)
      end


      class Rules

        attr_accessor :rules

        def initialize(dependency_condition)
          if dependency_condition.dependency
            @rules = dependency_condition.dependency.rule.split(' ')
          else
            @rules = []
          end
        end

        def join_operator(rule_key)
          _find_join_operator(_find_rule_key(rule_key))
        end

        private

        def _find_rule_key(rule_key)
          rules.index(rule_key)
        end

        def _find_join_operator(idx)
          if idx && idx > 0
            rules[idx-1]
          end
        end
      end

    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
upgrade_surveyor_gui-0.1.3 lib/surveyor_gui/models/dependency_condition_methods.rb
upgrade_surveyor_gui-0.1.2 lib/surveyor_gui/models/dependency_condition_methods.rb
surveyor_gui-0.1.2 lib/surveyor_gui/models/dependency_condition_methods.rb
surveyor_gui-0.1.1 lib/surveyor_gui/models/dependency_condition_methods.rb
surveyor_gui-0.1.0 lib/surveyor_gui/models/dependency_condition_methods.rb
surveyor_gui-0.0.3 lib/surveyor_gui/models/dependency_condition_methods.rb