mini_token 0.1.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +3 -0
- data/Gemfile.lock +4 -0
- data/README.rdoc +9 -0
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/db/mini_token.db +0 -0
- data/db/mini_token_test.db +0 -0
- data/lib/mini_token.rb +33 -9
- data/mini_token.gemspec +9 -2
- data/test/helper.rb +1 -1
- data/test/test_mini_token.rb +43 -2
- metadata +36 -6
- data/.rspec +0 -1
    
        data/Gemfile
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.rdoc
    CHANGED
    
    | @@ -18,6 +18,15 @@ Generate token with other size | |
| 18 18 | 
             
            	MiniToken.output(9)
         | 
| 19 19 | 
             
            	# => "2u27Jum8Y"
         | 
| 20 20 |  | 
| 21 | 
            +
            Returning all tokens storaged
         | 
| 22 | 
            +
            	
         | 
| 23 | 
            +
            	MiniToken.all
         | 
| 24 | 
            +
            	# => [{:id=>1, :token=>"AcEi87"}, {:id=>2, :token=>"I8uEy2"}]
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            For truncate the tokens storage
         | 
| 27 | 
            +
            	
         | 
| 28 | 
            +
            	MiniToken.truncate_tokens
         | 
| 29 | 
            +
             | 
| 21 30 | 
             
            == Copyright
         | 
| 22 31 |  | 
| 23 32 | 
             
            Copyright (c) 2010 Antônio Roberto  Silva. See LICENSE for details.
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -10,6 +10,8 @@ begin | |
| 10 10 | 
             
                gem.email = "forevertonny@gmail.com"
         | 
| 11 11 | 
             
                gem.homepage = "http://github.com/devton/mini_token"
         | 
| 12 12 | 
             
                gem.authors = ["Antonio Roberto Silva"]
         | 
| 13 | 
            +
                gem.add_dependency 'sequel', '>= 3.16.0'
         | 
| 14 | 
            +
                gem.add_dependency 'sqlite3-ruby', '>= 1.3.1'    
         | 
| 13 15 | 
             
                # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
         | 
| 14 16 | 
             
              end
         | 
| 15 17 | 
             
              Jeweler::GemcutterTasks.new
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0. | 
| 1 | 
            +
            1.0.0
         | 
    
        data/db/mini_token.db
    ADDED
    
    | Binary file | 
| Binary file | 
    
        data/lib/mini_token.rb
    CHANGED
    
    | @@ -1,24 +1,48 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            require 'sequel'
         | 
| 2 | 
            +
            TOKEN_ENV = 'production'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class MiniToken < Struct.new(:db, :token)
         | 
| 2 5 | 
             
              TOKEN_SIZE = 6
         | 
| 3 | 
            -
              TOKEN_CHARACTERS = ' | 
| 6 | 
            +
              TOKEN_CHARACTERS = (('A'..'Z').to_a+('a'..'z').to_a+('0'..'9').to_a)
         | 
| 7 | 
            +
              DB_PATH = File.expand_path(File.join(File.dirname(__FILE__), '..', 'db'))
         | 
| 4 8 |  | 
| 5 9 | 
             
              class << self
         | 
| 6 10 | 
             
                def output(size = nil)
         | 
| 7 11 | 
             
                  generate { @token_size = size.nil? ? TOKEN_SIZE : size }
         | 
| 8 12 | 
             
                end
         | 
| 13 | 
            +
                
         | 
| 14 | 
            +
                def truncate_tokens
         | 
| 15 | 
            +
                  connection
         | 
| 16 | 
            +
                  @db.truncate
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
                
         | 
| 19 | 
            +
                def all
         | 
| 20 | 
            +
                  connection
         | 
| 21 | 
            +
                  @db.all
         | 
| 22 | 
            +
                end
         | 
| 9 23 |  | 
| 10 24 | 
             
                private
         | 
| 11 25 |  | 
| 12 26 | 
             
                  def generate
         | 
| 13 27 | 
             
                    yield if block_given?
         | 
| 14 | 
            -
                    token =  | 
| 15 | 
            -
                     | 
| 16 | 
            -
                    token.join
         | 
| 28 | 
            +
                    @token = TOKEN_CHARACTERS.sample(@token_size).join
         | 
| 29 | 
            +
                    exist_token?
         | 
| 17 30 | 
             
                  end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 31 | 
            +
                  
         | 
| 32 | 
            +
                protected
         | 
| 33 | 
            +
                  
         | 
| 34 | 
            +
                  def exist_token?
         | 
| 35 | 
            +
                    connection
         | 
| 36 | 
            +
                    @db.first(:token => @token).nil? ? storing : generate unless @token.nil?
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                  
         | 
| 39 | 
            +
                  def storing
         | 
| 40 | 
            +
                    @token if @db.insert(:token => @token)
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
                  
         | 
| 43 | 
            +
                  def connection
         | 
| 44 | 
            +
                    sequel = Sequel.sqlite(DB_PATH+(TOKEN_ENV=='production' ? '/mini_token.db' : '/mini_token_test.db' ))
         | 
| 45 | 
            +
                    @db = sequel[:tokens]     
         | 
| 22 46 | 
             
                  end
         | 
| 23 47 | 
             
              end
         | 
| 24 48 | 
             
            end
         | 
    
        data/mini_token.gemspec
    CHANGED
    
    | @@ -5,7 +5,7 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = %q{mini_token}
         | 
| 8 | 
            -
              s.version = "0. | 
| 8 | 
            +
              s.version = "1.0.0"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Antonio Roberto Silva"]
         | 
| @@ -20,7 +20,6 @@ Gem::Specification.new do |s| | |
| 20 20 | 
             
                ".bundle/config",
         | 
| 21 21 | 
             
                 ".document",
         | 
| 22 22 | 
             
                 ".gitignore",
         | 
| 23 | 
            -
                 ".rspec",
         | 
| 24 23 | 
             
                 ".rvmrc",
         | 
| 25 24 | 
             
                 "Gemfile",
         | 
| 26 25 | 
             
                 "Gemfile.lock",
         | 
| @@ -28,6 +27,8 @@ Gem::Specification.new do |s| | |
| 28 27 | 
             
                 "README.rdoc",
         | 
| 29 28 | 
             
                 "Rakefile",
         | 
| 30 29 | 
             
                 "VERSION",
         | 
| 30 | 
            +
                 "db/mini_token.db",
         | 
| 31 | 
            +
                 "db/mini_token_test.db",
         | 
| 31 32 | 
             
                 "lib/mini_token.rb",
         | 
| 32 33 | 
             
                 "mini_token.gemspec",
         | 
| 33 34 | 
             
                 "test/helper.rb",
         | 
| @@ -48,9 +49,15 @@ Gem::Specification.new do |s| | |
| 48 49 | 
             
                s.specification_version = 3
         | 
| 49 50 |  | 
| 50 51 | 
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         | 
| 52 | 
            +
                  s.add_runtime_dependency(%q<sequel>, [">= 3.16.0"])
         | 
| 53 | 
            +
                  s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 1.3.1"])
         | 
| 51 54 | 
             
                else
         | 
| 55 | 
            +
                  s.add_dependency(%q<sequel>, [">= 3.16.0"])
         | 
| 56 | 
            +
                  s.add_dependency(%q<sqlite3-ruby>, [">= 1.3.1"])
         | 
| 52 57 | 
             
                end
         | 
| 53 58 | 
             
              else
         | 
| 59 | 
            +
                s.add_dependency(%q<sequel>, [">= 3.16.0"])
         | 
| 60 | 
            +
                s.add_dependency(%q<sqlite3-ruby>, [">= 1.3.1"])
         | 
| 54 61 | 
             
              end
         | 
| 55 62 | 
             
            end
         | 
| 56 63 |  | 
    
        data/test/helper.rb
    CHANGED
    
    | @@ -4,11 +4,11 @@ require 'test/unit' | |
| 4 4 | 
             
            require 'minitest/unit'
         | 
| 5 5 | 
             
            require 'minitest/spec'
         | 
| 6 6 | 
             
            require 'shoulda'
         | 
| 7 | 
            +
            require 'sequel'
         | 
| 7 8 |  | 
| 8 9 | 
             
            $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
         | 
| 9 10 | 
             
            $LOAD_PATH.unshift(File.dirname(__FILE__))
         | 
| 10 11 |  | 
| 11 | 
            -
             | 
| 12 12 | 
             
            require 'mini_token'
         | 
| 13 13 | 
             
            Bundler.setup
         | 
| 14 14 |  | 
    
        data/test/test_mini_token.rb
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            require 'helper'
         | 
| 2 2 | 
             
            MiniTest::Unit.autorun
         | 
| 3 | 
            +
            TOKEN_ENV = 'test'
         | 
| 3 4 |  | 
| 4 5 | 
             
            describe MiniToken do
         | 
| 5 6 | 
             
              describe "MiniToken Constants" do
         | 
| @@ -7,12 +8,15 @@ describe MiniToken do | |
| 7 8 | 
             
                  assert_equal 6, MiniToken::TOKEN_SIZE
         | 
| 8 9 | 
             
                end
         | 
| 9 10 |  | 
| 10 | 
            -
                it "Default Token Characters" do
         | 
| 11 | 
            -
                  assert_equal ' | 
| 11 | 
            +
                it "Default Token Characters with use join" do
         | 
| 12 | 
            +
                  assert_equal 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789', MiniToken::TOKEN_CHARACTERS.join
         | 
| 12 13 | 
             
                end
         | 
| 13 14 | 
             
              end
         | 
| 14 15 |  | 
| 15 16 | 
             
              describe "MiniToken" do
         | 
| 17 | 
            +
                before(:each) do
         | 
| 18 | 
            +
                  cleaner
         | 
| 19 | 
            +
                end
         | 
| 16 20 | 
             
                it "without size defined the generated token should be have 6 characters" do
         | 
| 17 21 | 
             
                  assert_equal 6, MiniToken.output.size
         | 
| 18 22 | 
             
                end
         | 
| @@ -28,5 +32,42 @@ describe MiniToken do | |
| 28 32 | 
             
                it 'should be return the token string with size' do
         | 
| 29 33 | 
             
                  assert_match /([a-zA-Z0-9]{10})/, MiniToken.output(10)
         | 
| 30 34 | 
             
                end
         | 
| 35 | 
            +
                
         | 
| 36 | 
            +
                describe ".truncate_tokens" do
         | 
| 37 | 
            +
                  before(:each) do
         | 
| 38 | 
            +
                    4.times { MiniToken.output }
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                  
         | 
| 41 | 
            +
                  it "should have many tokens " do
         | 
| 42 | 
            +
                    assert_equal MiniToken.all.size, 4
         | 
| 43 | 
            +
                  end
         | 
| 44 | 
            +
                  
         | 
| 45 | 
            +
                  it "when call truncate then don't have more tokens storaged" do
         | 
| 46 | 
            +
                    MiniToken.truncate_tokens
         | 
| 47 | 
            +
                    assert_equal MiniToken.all.size, 0
         | 
| 48 | 
            +
                  end
         | 
| 49 | 
            +
                end
         | 
| 50 | 
            +
                
         | 
| 51 | 
            +
                describe ".all" do
         | 
| 52 | 
            +
                  before(:each) do
         | 
| 53 | 
            +
                    @token1 = MiniToken.output
         | 
| 54 | 
            +
                    @token2 = MiniToken.output
         | 
| 55 | 
            +
                    @token3 = MiniToken.output                
         | 
| 56 | 
            +
                  end      
         | 
| 57 | 
            +
                  
         | 
| 58 | 
            +
                  it "should return one hash with all tokens storaged" do
         | 
| 59 | 
            +
                    assert_equal MiniToken.all, [{:id=>1, :token=>@token1}, {:id=>2, :token=>@token2}, {:id=>3, :token=>@token3}]
         | 
| 60 | 
            +
                  end
         | 
| 61 | 
            +
                end
         | 
| 31 62 | 
             
              end
         | 
| 32 63 | 
             
            end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
             | 
| 66 | 
            +
            def mock_tokens
         | 
| 67 | 
            +
              sequel = Sequel.sqlite(MiniToken::DB_PATH+'/mini_token_test.db')
         | 
| 68 | 
            +
              sequel[:tokens]
         | 
| 69 | 
            +
            end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            def cleaner
         | 
| 72 | 
            +
              mock_tokens.truncate
         | 
| 73 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -3,10 +3,10 @@ name: mini_token | |
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 4 | 
             
              prerelease: false
         | 
| 5 5 | 
             
              segments: 
         | 
| 6 | 
            -
              - 0
         | 
| 7 | 
            -
              - 1
         | 
| 8 6 | 
             
              - 1
         | 
| 9 | 
            -
               | 
| 7 | 
            +
              - 0
         | 
| 8 | 
            +
              - 0
         | 
| 9 | 
            +
              version: 1.0.0
         | 
| 10 10 | 
             
            platform: ruby
         | 
| 11 11 | 
             
            authors: 
         | 
| 12 12 | 
             
            - Antonio Roberto Silva
         | 
| @@ -16,8 +16,37 @@ cert_chain: [] | |
| 16 16 |  | 
| 17 17 | 
             
            date: 2010-10-10 00:00:00 -03:00
         | 
| 18 18 | 
             
            default_executable: 
         | 
| 19 | 
            -
            dependencies:  | 
| 20 | 
            -
             | 
| 19 | 
            +
            dependencies: 
         | 
| 20 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 21 | 
            +
              name: sequel
         | 
| 22 | 
            +
              prerelease: false
         | 
| 23 | 
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 24 | 
            +
                none: false
         | 
| 25 | 
            +
                requirements: 
         | 
| 26 | 
            +
                - - ">="
         | 
| 27 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 28 | 
            +
                    segments: 
         | 
| 29 | 
            +
                    - 3
         | 
| 30 | 
            +
                    - 16
         | 
| 31 | 
            +
                    - 0
         | 
| 32 | 
            +
                    version: 3.16.0
         | 
| 33 | 
            +
              type: :runtime
         | 
| 34 | 
            +
              version_requirements: *id001
         | 
| 35 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 36 | 
            +
              name: sqlite3-ruby
         | 
| 37 | 
            +
              prerelease: false
         | 
| 38 | 
            +
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 39 | 
            +
                none: false
         | 
| 40 | 
            +
                requirements: 
         | 
| 41 | 
            +
                - - ">="
         | 
| 42 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 43 | 
            +
                    segments: 
         | 
| 44 | 
            +
                    - 1
         | 
| 45 | 
            +
                    - 3
         | 
| 46 | 
            +
                    - 1
         | 
| 47 | 
            +
                    version: 1.3.1
         | 
| 48 | 
            +
              type: :runtime
         | 
| 49 | 
            +
              version_requirements: *id002
         | 
| 21 50 | 
             
            description: Generate simple tokens for short url and other things
         | 
| 22 51 | 
             
            email: forevertonny@gmail.com
         | 
| 23 52 | 
             
            executables: []
         | 
| @@ -31,7 +60,6 @@ files: | |
| 31 60 | 
             
            - .bundle/config
         | 
| 32 61 | 
             
            - .document
         | 
| 33 62 | 
             
            - .gitignore
         | 
| 34 | 
            -
            - .rspec
         | 
| 35 63 | 
             
            - .rvmrc
         | 
| 36 64 | 
             
            - Gemfile
         | 
| 37 65 | 
             
            - Gemfile.lock
         | 
| @@ -39,6 +67,8 @@ files: | |
| 39 67 | 
             
            - README.rdoc
         | 
| 40 68 | 
             
            - Rakefile
         | 
| 41 69 | 
             
            - VERSION
         | 
| 70 | 
            +
            - db/mini_token.db
         | 
| 71 | 
            +
            - db/mini_token_test.db
         | 
| 42 72 | 
             
            - lib/mini_token.rb
         | 
| 43 73 | 
             
            - mini_token.gemspec
         | 
| 44 74 | 
             
            - test/helper.rb
         | 
    
        data/.rspec
    DELETED
    
    | @@ -1 +0,0 @@ | |
| 1 | 
            -
            --color --format nested
         |