Module: Card::Set::All::Name
- Extended by:
- Card::Set
- Defined in:
- tmpsets/set/mod001-01_core/all/name.rb
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
#[](*args) ⇒ Object
70
71
72
73
74
75
76
77
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 70
def [] *args
if args[0].kind_of?(Fixnum) || args[0].kind_of?(Range)
fetch_name = Array.wrap(cardname.parts[args[0]]).compact.join '+'
Card.fetch( fetch_name, args[1] || {} ) if !simple?
else
super
end
end
|
#autoname(name) ⇒ Object
33
34
35
36
37
38
39
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 33
def autoname name
if Card.exists? name
autoname name.next
else
name
end
end
|
29
30
31
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 29
def cardname
name.to_name
end
|
91
92
93
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 91
def children
Card.search( { (simple? ? :part : :left) => name } ).to_a
end
|
#dependents ⇒ Object
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 95
def dependents
return [] if new_card?
if @dependents.nil?
@dependents =
Auth.as_bot do
deps = children
deps.inject(deps) do |array, card|
array + card.dependents
end
end
end
@dependents
end
|
#junction? ⇒ Boolean
46
47
48
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 46
def junction?
cardname.junction?
end
|
#left(*args) ⇒ Object
55
56
57
58
59
60
61
62
63
64
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 55
def left *args
if !simple?
@superleft or begin
unless name_changed? and name.to_name.trunk_name.key == name_was.to_name.key
Card.fetch cardname.left, *args
end
end
end
end
|
#left_or_new(args = {}) ⇒ Object
87
88
89
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 87
def left_or_new args={}
left args or Card.new args.merge(:name=>cardname.left)
end
|
#name=(newname) ⇒ Object
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 5
def name= newname
cardname = newname.to_name
if @supercard
@relative_name = cardname.to_s
relparts = @relative_name.to_name.parts
@superleft = @supercard if relparts.size==2 && relparts.first.blank?
cardname = @relative_name.to_name.to_absolute_name @supercard.name
end
newkey = cardname.key
if key != newkey
self.key = newkey
reset_patterns_if_rule reset_patterns
end
subcards.each do |subkey, subcard|
next unless Card===subcard
subcard.name = subkey.to_name.to_absolute cardname
end
write_attribute :name, cardname.s
end
|
#relative_name ⇒ Object
51
52
53
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 51
def relative_name
@relative_name || name
end
|
#repair_key ⇒ Object
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 111
def repair_key
Auth.as_bot do
correct_key = cardname.key
current_key = key
return self if current_key==correct_key
if key_blocker = Card.find_by_key_and_trash(correct_key, true)
key_blocker.cardname = key_blocker.cardname + "*trash#{rand(4)}"
key_blocker.save
end
saved = ( self.key = correct_key and self.save! )
saved ||= ( self.cardname = current_key and self.save! )
if saved
self.dependents.each { |c| c.repair_key }
else
Rails.logger.debug "FAILED TO REPAIR BROKEN KEY: #{key}"
self.name = "BROKEN KEY: #{name}"
end
self
end
rescue
Rails.logger.info "BROKE ATTEMPTING TO REPAIR BROKEN KEY: #{key}"
self
end
|
#right(*args) ⇒ Object
66
67
68
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 66
def right *args
Card.fetch( cardname.right, *args ) if !simple?
end
|
#simple? ⇒ Boolean
FIXME: use delegations and include all cardname functions
42
43
44
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 42
def simple?
cardname.simple?
end
|
#suspend_name(name) ⇒ Object
228
229
230
231
232
233
234
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 228
def suspend_name(name)
Card.expire name
tmp_name = "tmp:" + UUID.new.generate
Card.where(:id=>self.id).update_all(:name=>tmp_name, :key=>tmp_name)
end
|
#tag(*args) ⇒ Object
83
84
85
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 83
def tag *args
simple? ? self : Card.fetch( cardname.right, *args )
end
|
#trunk(*args) ⇒ Object
79
80
81
|
# File 'tmpsets/set/mod001-01_core/all/name.rb', line 79
def trunk *args
simple? ? self : left( *args )
end
|