Sha256: 8b0129f8acbf6197d373bc84293a4e17efeac34d7a8feb900f940ef9d849593d

Contents?: true

Size: 690 Bytes

Versions: 3

Compression:

Stored size: 690 Bytes

Contents

class Card
  class Name
    module All
      # Name-related Card class methods
      module ClassMethods
        def rename! oldname, newname
          Card[oldname].update! name: newname, update_referers: true
        end

        def uniquify_name name, rename=:new
          return name unless Card.exists? name
          uniq_name = generate_alternative_name name
          return uniq_name unless rename == :old
          rename!(name, uniq_name)
          name
        end

        private

        def generate_alternative_name name
          uniq_name = "#{name} 1"
          uniq_name.next! while Card.exists?(uniq_name)
          uniq_name
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
card-1.101.3 lib/card/name/all/class_methods.rb
card-1.101.2 lib/card/name/all/class_methods.rb
card-1.101.1 lib/card/name/all/class_methods.rb