diff options
| -rw-r--r-- | app/models/invite_code_validator.rb | 8 | ||||
| -rw-r--r-- | lib/tasks/invite_code.rake | 21 | ||||
| -rw-r--r-- | test/unit/invite_code_test.rb | 17 | 
3 files changed, 16 insertions, 30 deletions
| diff --git a/app/models/invite_code_validator.rb b/app/models/invite_code_validator.rb index d52e698..9dfe6fa 100644 --- a/app/models/invite_code_validator.rb +++ b/app/models/invite_code_validator.rb @@ -1,4 +1,5 @@  class InviteCodeValidator < ActiveModel::Validator +    def validate(user)      user_invite_code = InviteCode.find_by_invite_code user.invite_code @@ -8,9 +9,6 @@ class InviteCodeValidator < ActiveModel::Validator      elsif has_no_uses_left?(user_invite_code)        add_error_to_user("This code has already been used", user) - -    # elsif count_greater_than_zero?(user_invite_code) -    #   add_error_to_user("This code has already been used", user)      end    end @@ -23,10 +21,6 @@ class InviteCodeValidator < ActiveModel::Validator      code.invite_count >= code.invite_max_uses    end -  # def count_greater_than_zero?(code) -  #   code.invite_count > 0 -  # end -    def add_error_to_user(error, user)      user.errors[:invite_code] << error    end diff --git a/lib/tasks/invite_code.rake b/lib/tasks/invite_code.rake index f3bafac..6623640 100644 --- a/lib/tasks/invite_code.rake +++ b/lib/tasks/invite_code.rake @@ -1,16 +1,25 @@  desc "Generate a batch of invite codes" -task :generate_invites, [:n] => :environment do |task, args| +task :generate_invites, [:n, :u] => :environment do |task, args| -    codes = args.n -    codes = codes.to_i +  codes = args.n +  codes = codes.to_i -    codes.times do |x| +  if args.u == nil +    max_uses = 1 + +  elsif +    max_uses = args.u +    max_uses = max_uses.to_i +  end + +  codes.times do |x|      x = InviteCode.new +    x.invite_max_uses = max_uses      x.save -    puts "#{x.invite_code} Code generated." - +    puts "#{x.invite_code} Code generated with #{x.invite_max_uses} uses."    end +  end diff --git a/test/unit/invite_code_test.rb b/test/unit/invite_code_test.rb index 7e14a03..adaf397 100644 --- a/test/unit/invite_code_test.rb +++ b/test/unit/invite_code_test.rb @@ -20,23 +20,6 @@ class InviteCodeTest < ActiveSupport::TestCase       assert_equal code1.invite_count, 0    end - -  # test "Invite count >0 is not accepted for new account signup" do -  #   validator = InviteCodeValidator.new nil -  # -  #   user_code = InviteCode.new -  #   user_code.invite_count = 1 -  #   user_code.save -  # -  #   user = FactoryGirl.build :user -  #   user.invite_code = user_code.invite_code -  # -  #   validator.validate(user) -  # -  #   assert_equal ["This code has already been used"], user.errors[:invite_code] -  # -  # end -    test "Invite count >= invite max uses is not accepted for new account signup" do      validator = InviteCodeValidator.new nil | 
