mod/core/set/all/name.rb in card-1.92.2 vs mod/core/set/all/name.rb in card-1.93.0
- old
+ new
@@ -18,10 +18,14 @@
def rename! oldname, newname
Card[oldname].update_attributes! name: newname, update_referers: true
end
end
+def name
+ super.to_name
+end
+
def name= newname
cardname = superize_name newname.to_name
newkey = cardname.key
self.key = newkey if key != newkey
update_subcard_names cardname
@@ -53,27 +57,23 @@
# if subcard has a relative name like +C
# and self is a subcard as well that changed from +B to A+B then
# +C should change to A+B+C. #replace doesn't work in this case
# because the old name +B is not a part of +C
name_to_replace ||=
- if subcard.cardname.junction? &&
- subcard.cardname.parts.first.empty? &&
+ if subcard.name.junction? &&
+ subcard.name.parts.first.empty? &&
new_name.parts.first.present?
# replace the empty part
"".to_name
else
name
end
- subcard.name = subcard.cardname.replace name_to_replace, new_name.s
+ subcard.name = subcard.name.swap name_to_replace, new_name.s
subcard.update_subcard_names new_name, name
end
end
-def cardname
- name.to_name
-end
-
def codename
super&.to_sym
end
def autoname name
@@ -82,52 +82,52 @@
else
name
end
end
-# FIXME: use delegations and include all cardname functions
+# FIXME: use delegations and include all name functions
def simple?
- cardname.simple?
+ name.simple?
end
def junction?
- cardname.junction?
+ name.junction?
end
def raw_name
@raw_name || name
end
def relative_name context_name=nil
- context_name ||= @supercard.cardname if @supercard
- cardname.name_from context_name
+ context_name ||= @supercard.name if @supercard
+ name.name_from context_name
end
def absolute_name context_name=nil
- context_name ||= @supercard.cardname if @supercard
- cardname.absolute_name context_name
+ context_name ||= @supercard.name if @supercard
+ name.absolute_name context_name
end
def left *args
case
when simple? then nil
when @superleft then @superleft
when attribute_is_changing?(:name) && name.to_name.trunk_name.key == name_before_act.to_name.key
nil # prevent recursion when, eg, renaming A+B to A+B+C
else
- Card.fetch cardname.left, *args
+ Card.fetch name.left, *args
end
end
def right *args
- Card.fetch(cardname.right, *args) unless simple?
+ Card.fetch(name.right, *args) unless simple?
end
def [] *args
case args[0]
when Integer, Range
- fetch_name = Array.wrap(cardname.parts[args[0]]).compact.join "+"
+ fetch_name = Array.wrap(name.parts[args[0]]).compact.join Card::Name.joint
Card.fetch(fetch_name, args[1] || {}) unless simple?
else
super
end
end
@@ -135,15 +135,15 @@
def trunk *args
simple? ? self : left(*args)
end
def tag *args
- simple? ? self : Card.fetch(cardname.right, *args)
+ simple? ? self : Card.fetch(name.right, *args)
end
def left_or_new args={}
- left(args) || Card.new(args.merge(name: cardname.left))
+ left(args) || Card.new(args.merge(name: name.left))
end
def fields
field_names.map { |name| Card[name] }
end
@@ -182,21 +182,21 @@
@descendants ||= descendant_ids.map { |id| Card.quick_fetch id }
end
def repair_key
Auth.as_bot do
- correct_key = cardname.key
+ correct_key = name.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.name = key_blocker.name + "*trash#{rand(4)}"
key_blocker.save
end
saved = (self.key = correct_key) && save!
- saved ||= (self.cardname = current_key) && save!
+ saved ||= (self.name = current_key) && save!
if saved
descendants.each(&:repair_key)
else
Rails.logger.debug "FAILED TO REPAIR BROKEN KEY: #{key}"
@@ -209,11 +209,11 @@
self
end
event :set_autoname, :prepare_to_validate, on: :create do
if name.blank? && (autoname_card = rule_card(:autoname))
- self.name = autoname autoname_card.content
+ self.name = autoname autoname_card.db_content
# FIXME: should give placeholder in approve phase
# and finalize/commit change in store phase
autoname_card.refresh.update_column :db_content, name
end
end
@@ -222,12 +222,12 @@
expire
end
event :set_left_and_right, :store,
changed: :name, on: :save do
- if cardname.junction?
+ if name.junction?
%i[left right].each do |side|
- sidename = cardname.send "#{side}_name"
+ sidename = name.send "#{side}_name"
sidecard = Card[sidename]
# eg, renaming A to A+B
old_name_in_way = (sidecard && sidecard.id == id)
suspend_name(sidename) if old_name_in_way