guillotine 1.0.5 → 1.0.6
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/guillotine.gemspec
    CHANGED
    
    | @@ -13,7 +13,7 @@ Gem::Specification.new do |s| | |
| 13 13 | 
             
              ## If your rubyforge_project name is different, then edit it and comment out
         | 
| 14 14 | 
             
              ## the sub! line in the Rakefile
         | 
| 15 15 | 
             
              s.name              = 'guillotine'
         | 
| 16 | 
            -
              s.version           = '1.0. | 
| 16 | 
            +
              s.version           = '1.0.6'
         | 
| 17 17 | 
             
              s.date              = '2011-11-10'
         | 
| 18 18 | 
             
              s.rubyforge_project = 'guillotine'
         | 
| 19 19 |  | 
| @@ -25,8 +25,8 @@ module Guillotine | |
| 25 25 | 
             
                  # Returns the unique String code for the URL.  If the URL is added
         | 
| 26 26 | 
             
                  # multiple times, this should return the same code.
         | 
| 27 27 | 
             
                  def add(url, code = nil)
         | 
| 28 | 
            -
                    sha | 
| 29 | 
            -
                    url_obj | 
| 28 | 
            +
                    sha     = url_key url
         | 
| 29 | 
            +
                    url_obj = @url_bucket.get_or_new sha, :r => 1
         | 
| 30 30 | 
             
                    if url_obj.raw_data
         | 
| 31 31 | 
             
                      fix_url_object(url_obj)
         | 
| 32 32 | 
             
                      code = url_obj.data
         | 
| @@ -37,7 +37,7 @@ module Guillotine | |
| 37 37 | 
             
                    code_obj.content_type = url_obj.content_type = PLAIN
         | 
| 38 38 |  | 
| 39 39 | 
             
                    if existing_url = code_obj.data # key exists
         | 
| 40 | 
            -
                      raise DuplicateCodeError.new(existing_url, url, code) if existing_url !=  | 
| 40 | 
            +
                      raise DuplicateCodeError.new(existing_url, url, code) if url_key(existing_url) != sha
         | 
| 41 41 | 
             
                    end
         | 
| 42 42 |  | 
| 43 43 | 
             
                    if !url_obj.data # unsaved
         | 
| @@ -110,7 +110,7 @@ module Guillotine | |
| 110 110 | 
             
                  end
         | 
| 111 111 |  | 
| 112 112 | 
             
                  # Fixes a bug in Guillotine 1.0.2 where the content type on url objects
         | 
| 113 | 
            -
                  #  | 
| 113 | 
            +
                  # was not being set.  The ruby Riak::Client defaults to JSON, so
         | 
| 114 114 | 
             
                  # strings were being saved as "somecode", which is unparseable by JSON.
         | 
| 115 115 | 
             
                  def fix_url_object(obj)
         | 
| 116 116 | 
             
                    if obj.content_type != PLAIN
         | 
| @@ -122,7 +122,7 @@ module Guillotine | |
| 122 122 | 
             
                  end
         | 
| 123 123 |  | 
| 124 124 | 
             
                  def url_key(url)
         | 
| 125 | 
            -
                    Digest::SHA1.hexdigest url
         | 
| 125 | 
            +
                    Digest::SHA1.hexdigest url.downcase
         | 
| 126 126 | 
             
                  end
         | 
| 127 127 | 
             
                end
         | 
| 128 128 | 
             
              end
         | 
| @@ -14,8 +14,8 @@ module Guillotine | |
| 14 14 | 
             
                  # Returns the unique String code for the URL.  If the URL is added
         | 
| 15 15 | 
             
                  # multiple times, this should return the same code.
         | 
| 16 16 | 
             
                  def add(url, code = nil)
         | 
| 17 | 
            -
                    if  | 
| 18 | 
            -
                       | 
| 17 | 
            +
                    if existing = code_for(url)
         | 
| 18 | 
            +
                      existing
         | 
| 19 19 | 
             
                    else
         | 
| 20 20 | 
             
                      code ||= shorten url
         | 
| 21 21 | 
             
                      begin
         | 
    
        data/lib/guillotine.rb
    CHANGED
    
    | @@ -3,7 +3,7 @@ require 'digest/md5' | |
| 3 3 | 
             
            require 'addressable/uri'
         | 
| 4 4 |  | 
| 5 5 | 
             
            module Guillotine
         | 
| 6 | 
            -
              VERSION = "1.0. | 
| 6 | 
            +
              VERSION = "1.0.6"
         | 
| 7 7 |  | 
| 8 8 | 
             
              dir = File.expand_path '../guillotine', __FILE__
         | 
| 9 9 | 
             
              autoload :App, "#{dir}/app"
         | 
| @@ -51,7 +51,6 @@ module Guillotine | |
| 51 51 | 
             
                  # Returns an Addressable::URI.
         | 
| 52 52 | 
             
                  def parse_url(url)
         | 
| 53 53 | 
             
                    url.gsub! /\s/, ''
         | 
| 54 | 
            -
                    url.downcase!
         | 
| 55 54 | 
             
                    Addressable::URI.parse url
         | 
| 56 55 | 
             
                  end
         | 
| 57 56 | 
             
                end
         | 
    
        data/test/app_test.rb
    CHANGED
    
    | @@ -22,7 +22,7 @@ class AppTest < Guillotine::TestCase | |
| 22 22 | 
             
                url  = 'http://github.com'
         | 
| 23 23 | 
             
                code = ADAPTER.add url
         | 
| 24 24 |  | 
| 25 | 
            -
                post '/', :url => url | 
| 25 | 
            +
                post '/', :url => url
         | 
| 26 26 | 
             
                assert code_url = last_response.headers['Location']
         | 
| 27 27 | 
             
                assert_equal code, code_url.gsub(/.*\//, '')
         | 
| 28 28 | 
             
              end
         | 
    
        data/test/riak_adapter_test.rb
    CHANGED
    
    | @@ -29,8 +29,8 @@ begin | |
| 29 29 | 
             
                end
         | 
| 30 30 |  | 
| 31 31 | 
             
                def test_adding_duplicate_link_returns_same_code
         | 
| 32 | 
            -
                  code = @db.add ' | 
| 33 | 
            -
                  assert_equal code, @db.add(' | 
| 32 | 
            +
                  code = @db.add 'Abc'
         | 
| 33 | 
            +
                  assert_equal code, @db.add('ABc')
         | 
| 34 34 |  | 
| 35 35 | 
             
                  URL_BUCKET.delete Digest::SHA1.hexdigest('abc')
         | 
| 36 36 | 
             
                  CODE_BUCKET.delete code
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: guillotine
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0. | 
| 4 | 
            +
              version: 1.0.6
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011-11-10 00:00:00. | 
| 12 | 
            +
            date: 2011-11-10 00:00:00.000000000Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: sinatra
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70184602702960 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: 1.2.6
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70184602702960
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: addressable
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &70184602702360 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ~>
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: 2.2.6
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *70184602702360
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: rack-test
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &70184602701980 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,7 +43,7 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :development
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *70184602701980
         | 
| 47 47 | 
             
            description: Adaptable private URL shortener
         | 
| 48 48 | 
             
            email: technoweenie@gmail.com
         | 
| 49 49 | 
             
            executables: []
         | 
| @@ -88,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 88 88 | 
             
                  version: '0'
         | 
| 89 89 | 
             
            requirements: []
         | 
| 90 90 | 
             
            rubyforge_project: guillotine
         | 
| 91 | 
            -
            rubygems_version: 1.8. | 
| 91 | 
            +
            rubygems_version: 1.8.10
         | 
| 92 92 | 
             
            signing_key: 
         | 
| 93 93 | 
             
            specification_version: 2
         | 
| 94 94 | 
             
            summary: Adaptable private URL shortener
         |