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