Sha256: 277c277f08e520b360ebc0920e6b432c41b534a5cc7ee21cb6c5c037b66f609f
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
ActiveAdmin::FormBuilder.class_eval do def has_rules self.inputs 'Rules' do self.semantic_fields_for :rule_set do |rules_rule_set_form| rules_rule_set_form.has_many :rules do |rules_rule_form| rules_rule_form.input :lhs_parameter, :label => 'Left hand side', collection: rules_parameter_collection(rules_rule_form.object.rule_set) rules_rule_form.input :evaluator, :as => :select, :collection => Rules.evaluators.map {|key, evaluator| [evaluator.name, key] }.sort_by {|name, key| name } rules_rule_form.input :rhs_parameter, :label => 'Right hand side' end rules_rule_set_form.input :evaluation_logic, :as => :select, :label => 'Must match', collection: [['All Rules', 'all'], ['Any Rules', 'any']] end end end def rules_parameter_collection(rule_set) @rules_parameter_collection ||= Rules.constants.merge(rule_set.try(:attributes) || {}).map {|key, const| [const.name, key] } end end ActiveAdmin::Views::Pages::Show.class_eval do def show_rules panel "Rules" do div resource.rule_set.evaluation_logic == 'any' ? 'Must match any rule' : 'Must match all rules' table_for resource.rule_set.rules do |rule| column('Left hand side') { |rule| rule.lhs_parameter_object.to_s.titleize } column('Condition') { |rule| rule.get_evaluator } column('Right hand side') { |rule| rule.rhs_parameter_value.to_s } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rules-0.0.1 | lib/rules/extensions/active_admin/dsl.rb |