Sha256: 84fb284bf8a3a9499a0f095c3eaa2f2771667b039c79890f9f347adcc864ce5b

Contents?: true

Size: 1.8 KB

Versions: 20

Compression:

Stored size: 1.8 KB

Contents

class Gemini::XyzRule < Marty::DeloreanRule
  self.table_name = 'gemini_xyz_rules'

  gen_mcfly_lookup :lookup, {
    name: false,
  }

  cached_mcfly_lookup :lookup_id, sig: 2 do
    |pt, group_id|
    find_by_group_id group_id
  end

  mcfly_validates_uniqueness_of :name

  def self.results_cfg_var
    'RULEOPTS_XYZ'
  end
  def self.guard_info
    super + {"flavors" => { multi: true, type: :string,
                            enum: Gemini::XyzEnum,
                            width: 150},
             "guard_two" => { type: :string,
                              enum: Gemini::GuardTwo,
                              width: 100},
             "g_date" => { type: :date },
             "g_datetime" => { type: :datetime },
             "g_string" => { type: :string,
                              width: 100},
             "g_bool" => { type: :boolean,
                           width: 100,
                           null: false},
             "g_range1" => { type: :range,
                              width: 100},
             "g_range2" => { type: :range,
                              width: 100},
             "g_integer" => { type: :integer,
                              width: 100}
    }
  end

  mcfly_lookup :get_matches, sig: 3 do
    |pt, attrs, params|
    get_matches_(pt, attrs, params)
  end

  def compute(*args)
    base_compute(*args)
  end
  def compute_xyz(pt, xyz_param)
    # Given a set of parameters, compute the RULE adjustment.  Returns
    # {} if precondition is not met.

    xyz_keys =  computed_guards.select{|k,_|k.starts_with?("xyz_")}.keys
    return {} unless xyz_keys.present?

    eclass = engine && engine.constantize || Marty::RuleScriptSet
    engine = eclass.new(pt).get_engine(self_as_hash)
    res = engine.evaluate("XyzNode", xyz_keys, {"xyz_param"=>xyz_param})

    res.all?
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
marty-2.3.10 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.9 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.8 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.7 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.5 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.4 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.1.5 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.2 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.1 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.3.0 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.1.4 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.1.3 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.1.2 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.1.1 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.1.0 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.0.9 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.0.8 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.0.7 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.0.6 spec/dummy/app/models/gemini/xyz_rule.rb
marty-2.0.5 spec/dummy/app/models/gemini/xyz_rule.rb