Skip to content

Instantly share code, notes, and snippets.

@BooneTeam
Created July 16, 2013 19:57
Show Gist options
  • Select an option

  • Save BooneTeam/6012107 to your computer and use it in GitHub Desktop.

Select an option

Save BooneTeam/6012107 to your computer and use it in GitHub Desktop.

Revisions

  1. BooneTeam created this gist Jul 16, 2013.
    65 changes: 65 additions & 0 deletions NewEntryDupTest.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,65 @@
    module NewEntryDupTest

    attr_accessor :entry, :old_entries

    # def initialize(*args)
    # @old_entries ||= []
    # @entry = :entries
    # end

    @@old_entries = ['Homer']

    def self.set(old_entries)
    @@old_entries = old_entries
    end

    def self.get
    @@old_entries
    end

    def new_entry(entry)
    @@old_entries.include?(entry) ? suggest_name(entry) : register_entry(entry)
    end

    def register_entry(newest_entry)
    @@old_entries << newest_entry
    "#{newest_entry}"
    end

    def suggest_name(entry)
    until @@old_entries.include?("#{entry + ( nums ||= 0 ).to_s }") == false
    nums = increase_nums(nums)
    end
    prompt_user("#{entry + ( nums ||= 0 ).to_s }")
    end

    def increase_nums(num)
    num += 1
    end

    def prompt_user(new_entry)
    puts "Already Taken,type yes if you would like to save as #{new_entry}"
    input = gets.chomp.downcase
    if input == "yes"
    register_entry(new_entry)
    else
    puts "Please retry with a different name for #{self.class}"
    try_again = self.class.new
    input = gets.chomp
    try_again.new_entry(input)
    end
    end

    end

    class UserName

    include NewEntryDupTest

    end

    user = UserName.new
    NewEntryDupTest.set(["Bart0","Bart4", "Bart5", "Bart6", "Bart7", "Bart8", "Bart9", "Bart10",
    "Lisa", "Marge", "Homer", "Bart", "Bart1", "Bart2", "Bart3",
    "Bart11", "Bart12"])
    user.new_entry('Bart')