Module: Card::Set::All::Rules
- Extended by:
- Card::Set
- Defined in:
- tmpsets/set/mod001-01_core/all/rules.rb
Defined Under Namespace
Modules: ClassMethods
Constant Summary
collapse
- RuleSQL =
%{
select rules.id as rule_id, settings.id as setting_id, sets.id as set_id, sets.left_id as anchor_id, sets.right_id as set_tag_id
from cards rules
join cards sets on rules.left_id = sets.id
join cards settings on rules.right_id = settings.id
where sets.type_id = #{Card::SetID } and sets.trash is false
and settings.type_id = #{Card::SettingID} and settings.trash is false
and rules.trash is false
and (settings.codename != 'follow' or rules.db_content != '');
}
- ReadRuleSQL =
%{
select refs.referee_id as party_id, read_rules.id as read_rule_id
from cards read_rules
join card_references refs on refs.referer_id = read_rules.id
join cards sets on read_rules.left_id = sets.id
where read_rules.right_id = #{Card::ReadID} and read_rules.trash is false and sets.type_id = #{Card::SetID};
}
Instance Method Summary
collapse
Methods included from Card::Set
abstract_set?, all_set?, card_accessor, card_reader, card_writer, clean_empty_module_from_hash, clean_empty_modules, define_active_job, define_event_method, define_event_perform_later_method, define_on_format, ensure_set, event, extended, format, process_base_module_list, process_base_modules, register_set, register_set_format, shortname, view, write_tmp_file
Instance Method Details
#is_rule? ⇒ Boolean
26
27
28
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 26
def is_rule?
is_standard_rule? || is_user_rule?
end
|
#is_standard_rule? ⇒ Boolean
30
31
32
33
34
35
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 30
def is_standard_rule?
(r = right( :skip_modules=>true )) &&
r.type_id == Card::SettingID &&
(l = left( :skip_modules=>true )) &&
l.type_id == Card::SetID
end
|
#is_user_rule? ⇒ Boolean
37
38
39
40
41
42
43
44
45
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 37
def is_user_rule?
cardname.parts.length > 2 &&
(r = right( :skip_modules=>true )) &&
r.type_id == Card::SettingID &&
(set = self[0..-3, :skip_modules=>true]) &&
set.type_id == Card::SetID &&
(user = self[-2, :skip_modules=>true] ) &&
(user.type_id == Card::UserID || user.codename == 'all' )
end
|
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 77
def related_sets with_self = false
sets = []
sets << ["#{name}+*type", Card::TypeSet.label( name) ] if known? && type_id==Card::CardtypeID
sets << ["#{name}+*self", Card::SelfSet.label( name) ] if with_self
sets << ["#{name}+*right", Card::RightSet.label(name) ] if known? && cardname.simple?
sets
end
|
#rule(setting_code, options = {}) ⇒ Object
48
49
50
51
52
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 48
def rule setting_code, options={}
options[:skip_modules] = true
card = rule_card setting_code, options
card && card.db_content
end
|
#rule_card(setting_code, options = {}) ⇒ Object
54
55
56
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 54
def rule_card setting_code, options={}
Card.fetch rule_card_id( setting_code, options ), options
end
|
#rule_card_id(setting_code, options = {}) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'tmpsets/set/mod001-01_core/all/rules.rb', line 58
def rule_card_id setting_code, options={}
fallback = options.delete( :fallback )
if Card::Setting.user_specific? setting_code
user_id = options[:user_id] || (options[:user] and options[:user].id) || Auth.current_id
if user_id
fallback = "#{setting_code}+#{AllID}"
setting_code = "#{setting_code}+#{user_id}"
end
end
rule_set_keys.each do |rule_set_key|
rule_id = self.class.rule_cache["#{rule_set_key}+#{setting_code}"]
rule_id ||= fallback && self.class.rule_cache["#{rule_set_key}+#{fallback}"]
return rule_id if rule_id
end
nil
end
|