google_pr 1.0.1 → 1.0.2
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/README +0 -10
 - data/lib/google_pr.rb +92 -62
 - metadata +31 -43
 - data/init.rb +0 -2
 
    
        data/README
    CHANGED
    
    | 
         @@ -1,12 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            GooglePR
         
     | 
| 
       2 
2 
     | 
    
         
             
            ===============
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            This plugin for Ruby on Rails allow to check the Google PageRank of an URL
         
     | 
| 
       5 
     | 
    
         
            -
            The original script was wrote by Vsevolod S. Balashov <vsevolod@balashov.name>
         
     | 
| 
       6 
     | 
    
         
            -
            and is base on code snippets found on the web (see code comments)
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            This script was rewritten to become a Rails gem
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
4 
     | 
    
         
             
            Example
         
     | 
| 
       11 
5 
     | 
    
         
             
            =======
         
     | 
| 
       12 
6 
     | 
    
         | 
| 
         @@ -18,7 +12,3 @@ Specs 
     | 
|
| 
       18 
12 
     | 
    
         
             
            Run this after each improvement in this project
         
     | 
| 
       19 
13 
     | 
    
         
             
            spec spec/pagerank_checker_specs.rb
         
     | 
| 
       20 
14 
     | 
    
         
             
            It requires Rspec installation: gem install rspec
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            (C) 2006-2007 under terms of LGPL v2.1
         
     | 
| 
       24 
     | 
    
         
            -
            by Vsevolod S. Balashov <vsevolod@balashov.name>
         
     | 
    
        data/lib/google_pr.rb
    CHANGED
    
    | 
         @@ -11,82 +11,112 @@ require 'uri' 
     | 
|
| 
       11 
11 
     | 
    
         
             
            require 'open-uri'
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            # http://blog.outer-court.com/archive/2004_06_27_index.html#108834386239051706
         
     | 
| 
       14 
     | 
    
         
            -
            class AutomatedQueryError < StandardError 
     | 
| 
      
 14 
     | 
    
         
            +
            class AutomatedQueryError < StandardError
         
     | 
| 
      
 15 
     | 
    
         
            +
            end
         
     | 
| 
       15 
16 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
            class GooglePR
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
              M=0x100000000 # modulo for unsigned int 32bit(4byte)
         
     | 
| 
       19 
     | 
    
         
            -
              attr_accessor :uri
         
     | 
| 
       20 
18 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                @uri = uri
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
            # extracted from PageRankr
         
     | 
| 
      
 20 
     | 
    
         
            +
            # cf. https://github.com/blatyo/page_rankr
         
     | 
| 
      
 21 
     | 
    
         
            +
            # use: Google::Pagerank.new(domain).check
         
     | 
| 
       26 
22 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 23 
     | 
    
         
            +
            class GoogleChecksum
         
     | 
| 
      
 24 
     | 
    
         
            +
              class << self
         
     | 
| 
      
 25 
     | 
    
         
            +
                def generate(site)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  bytes  = byte_array(site)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  length = bytes.length
         
     | 
| 
      
 28 
     | 
    
         
            +
                  a = b = 0x9E3779B9
         
     | 
| 
      
 29 
     | 
    
         
            +
                  c = 0xE6359A60
         
     | 
| 
       30 
30 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
      
 31 
     | 
    
         
            +
                  k, len = 0, length
         
     | 
| 
      
 32 
     | 
    
         
            +
                  while(len >= 12)
         
     | 
| 
      
 33 
     | 
    
         
            +
                    a, b, c = mix(*shift(a, b, c, k, bytes))
         
     | 
| 
      
 34 
     | 
    
         
            +
                    k += 12
         
     | 
| 
      
 35 
     | 
    
         
            +
                    len -= 12
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                ((s[k+3].to_i*0x100+s[k+2].to_i)*0x100+s[k+1].to_i)*0x100+s[k].to_i
         
     | 
| 
       37 
     | 
    
         
            -
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
                  c = c + length
         
     | 
| 
       38 
39 
     | 
    
         | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                 
     | 
| 
       42 
     | 
    
         
            -
                a = m1(a,b,c, c >> 12); b = m1(b,c,a, a << 16); c = m1(c,a,b, b >>  5)
         
     | 
| 
       43 
     | 
    
         
            -
                a = m1(a,b,c, c >>  3); b = m1(b,c,a, a << 10); c = m1(c,a,b, b >> 15)
         
     | 
| 
       44 
     | 
    
         
            -
                [a, b, c]
         
     | 
| 
       45 
     | 
    
         
            -
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  c = mix(*toss(a, b, c, bytes, len, k))[2]
         
     | 
| 
      
 41 
     | 
    
         
            +
                  "6" + c.to_s
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
       46 
43 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                 
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                   
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
      
 44 
     | 
    
         
            +
                private
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                def byte_array(site)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  bytes = []
         
     | 
| 
      
 48 
     | 
    
         
            +
                  site.each_byte {|b| bytes << b}
         
     | 
| 
      
 49 
     | 
    
         
            +
                  bytes
         
     | 
| 
      
 50 
     | 
    
         
            +
                end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                # Need to keep numbers in the unsigned int 32 range
         
     | 
| 
      
 53 
     | 
    
         
            +
                def m(v)
         
     | 
| 
      
 54 
     | 
    
         
            +
                  v % 0x100000000
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                def shift(a, b, c, k, bytes)
         
     | 
| 
      
 58 
     | 
    
         
            +
                  a = m(a + bytes[k + 0] + (bytes[k + 1] << 8) + (bytes[k +  2] << 16) + (bytes[k +  3] << 24))
         
     | 
| 
      
 59 
     | 
    
         
            +
                  b = m(b + bytes[k + 4] + (bytes[k + 5] << 8) + (bytes[k +  6] << 16) + (bytes[k +  7] << 24))
         
     | 
| 
      
 60 
     | 
    
         
            +
                  c = m(c + bytes[k + 8] + (bytes[k + 9] << 8) + (bytes[k + 10] << 16) + (bytes[k + 11] << 24))
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  [a, b, c]
         
     | 
| 
      
 63 
     | 
    
         
            +
                end
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                def mix(a, b, c)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  a, b, c = m(a), m(b), m(c)
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                  a = m(a-b-c) ^ m(c >> 13)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  b = m(b-c-a) ^ m(a << 8)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  c = m(c-a-b) ^ m(b >> 13)
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                  a = m(a-b-c) ^ m(c >> 12)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  b = m(b-c-a) ^ m(a << 16)
         
     | 
| 
      
 74 
     | 
    
         
            +
                  c = m(c-a-b) ^ m(b >> 5)
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                  a = m(a-b-c) ^ m(c >> 3)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  b = m(b-c-a) ^ m(a << 10)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  c = m(c-a-b) ^ m(b >> 15)
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                  [a, b, c]
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                def toss(a, b, c, bytes, len, k)
         
     | 
| 
      
 84 
     | 
    
         
            +
                  case len
         
     | 
| 
      
 85 
     | 
    
         
            +
                  when 9..11
         
     | 
| 
      
 86 
     | 
    
         
            +
                    c = c + (bytes[k+len-1] << ((len % 8) * 8))
         
     | 
| 
      
 87 
     | 
    
         
            +
                  when 5..8
         
     | 
| 
      
 88 
     | 
    
         
            +
                    b = b + (bytes[k+len-1] << ((len % 5) * 8))
         
     | 
| 
      
 89 
     | 
    
         
            +
                  when 1..4
         
     | 
| 
      
 90 
     | 
    
         
            +
                    a = a + (bytes[k+len-1] << ((len - 1) * 8))
         
     | 
| 
      
 91 
     | 
    
         
            +
                  else
         
     | 
| 
      
 92 
     | 
    
         
            +
                    return [a, b, c]
         
     | 
| 
      
 93 
     | 
    
         
            +
                  end
         
     | 
| 
      
 94 
     | 
    
         
            +
                  toss(a, b, c, bytes, len-1, k)
         
     | 
| 
       55 
95 
     | 
    
         
             
                end
         
     | 
| 
       56 
     | 
    
         
            -
                a += c2i(iurl,k); b += c2i(iurl,k+4); c += (c2i(iurl,k+8) << 8) + len
         
     | 
| 
       57 
     | 
    
         
            -
                a,b,c = mix(a,b,c)
         
     | 
| 
       58 
     | 
    
         
            -
                return c
         
     | 
| 
       59 
     | 
    
         
            -
              end
         
     | 
| 
       60 
     | 
    
         
            -
              
         
     | 
| 
       61 
     | 
    
         
            -
              # Calculates de checksum to use as 'ch' parameter on request_uri, 
         
     | 
| 
       62 
     | 
    
         
            -
              # for example the checksum of www.rubyonrails.com is 6602033163
         
     | 
| 
       63 
     | 
    
         
            -
              def cn
         
     | 
| 
       64 
     | 
    
         
            -
                ch = old_cn
         
     | 
| 
       65 
     | 
    
         
            -
                ch = ((ch/7) << 2) | ((ch-(ch/13).floor*13)&7)
         
     | 
| 
       66 
     | 
    
         
            -
                new_url = []
         
     | 
| 
       67 
     | 
    
         
            -
                20.times { i2c(ch).each { |i| new_url << i }; ch -= 9 }
         
     | 
| 
       68 
     | 
    
         
            -
                ('6' + old_cn(new_url).to_s).to_i
         
     | 
| 
       69 
96 
     | 
    
         
             
              end
         
     | 
| 
      
 97 
     | 
    
         
            +
            end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            class GooglePR
         
     | 
| 
      
 100 
     | 
    
         
            +
              attr_accessor :domain, :checksum
         
     | 
| 
       70 
101 
     | 
    
         | 
| 
       71 
     | 
    
         
            -
               
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                # http://www.bigbold.com/snippets/posts/show/1260 + _ -> %5F
         
     | 
| 
       75 
     | 
    
         
            -
                "http://toolbarqueries.google.com/tbr?client=navclient-auto&hl=en&ch=#{cn}&ie=UTF-8&oe=UTF-8&features=Rank&q=info:#{URI.escape(@uri, /[^-.!~*'()a-zA-Z\d]/)}"
         
     | 
| 
      
 102 
     | 
    
         
            +
              def initialize(domain)
         
     | 
| 
      
 103 
     | 
    
         
            +
                self.domain = domain
         
     | 
| 
      
 104 
     | 
    
         
            +
                self.checksum = GoogleChecksum.generate("info:#{self.domain}")
         
     | 
| 
       76 
105 
     | 
    
         
             
              end
         
     | 
| 
       77 
106 
     | 
    
         | 
| 
       78 
107 
     | 
    
         
             
              # Return a number between 0 to 10, that represents the Google PageRank
         
     | 
| 
       79 
     | 
    
         
            -
              def  
     | 
| 
       80 
     | 
    
         
            -
                 
     | 
| 
       81 
     | 
    
         
            -
                res = HTTParty.get( 
     | 
| 
       82 
     | 
    
         
            -
                 
     | 
| 
       83 
     | 
    
         
            -
                  return m[1].to_i
         
     | 
| 
       84 
     | 
    
         
            -
                elsif res.to_s.match(/automated queries/im)
         
     | 
| 
       85 
     | 
    
         
            -
                  raise AutomatedQueryError.new("Blacklisted for automated queries")
         
     | 
| 
       86 
     | 
    
         
            -
                end
         
     | 
| 
       87 
     | 
    
         
            -
              rescue OpenURI::HTTPError, SocketError
         
     | 
| 
       88 
     | 
    
         
            -
                nil
         
     | 
| 
      
 108 
     | 
    
         
            +
              def check
         
     | 
| 
      
 109 
     | 
    
         
            +
                url = "#{toolbar_url}?" + params.collect {|k,v| "#{k}=#{v}"}.join("&")
         
     | 
| 
      
 110 
     | 
    
         
            +
                res = HTTParty.get(url, :headers => {"User-Agent" => "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)" }, :format => :raw)
         
     | 
| 
      
 111 
     | 
    
         
            +
                res.to_s.match(/Rank_\d+:\d+:(\d+)/) ? $1.to_i : nil
         
     | 
| 
       89 
112 
     | 
    
         
             
              end
         
     | 
| 
       90 
113 
     | 
    
         | 
| 
       91 
     | 
    
         
            -
              private 
     | 
| 
      
 114 
     | 
    
         
            +
              private
         
     | 
| 
      
 115 
     | 
    
         
            +
              def toolbar_url
         
     | 
| 
      
 116 
     | 
    
         
            +
                "http://toolbarqueries.google.com/tbr"
         
     | 
| 
      
 117 
     | 
    
         
            +
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
             
     | 
| 
      
 119 
     | 
    
         
            +
              def params
         
     | 
| 
      
 120 
     | 
    
         
            +
                {:client => "navclient-auto", :ch => @checksum, :features => "Rank", :q => "info:#{self.domain}"}
         
     | 
| 
      
 121 
     | 
    
         
            +
              end
         
     | 
| 
       92 
122 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,70 +1,58 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            --- !ruby/object:Gem::Specification 
     | 
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: google_pr
         
     | 
| 
       3 
     | 
    
         
            -
            version: !ruby/object:Gem::Version 
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.0.2
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
     | 
    
         
            -
              segments: 
         
     | 
| 
       7 
     | 
    
         
            -
              - 1
         
     | 
| 
       8 
     | 
    
         
            -
              - 0
         
     | 
| 
       9 
     | 
    
         
            -
              - 1
         
     | 
| 
       10 
     | 
    
         
            -
              version: 1.0.1
         
     | 
| 
       11 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
     | 
    
         
            -
            authors: 
     | 
| 
       13 
     | 
    
         
            -
            -  
     | 
| 
      
 7 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 8 
     | 
    
         
            +
            - Various
         
     | 
| 
       14 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       15 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-02-07 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: httparty
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70337698930980 !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 18 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 19 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 20 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 22 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 23 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70337698930980
         
     | 
| 
       22 
25 
     | 
    
         
             
            description: Check Google Pagerank
         
     | 
| 
       23 
26 
     | 
    
         
             
            email: 
         
     | 
| 
       24 
27 
     | 
    
         
             
            executables: []
         
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
28 
     | 
    
         
             
            extensions: []
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
29 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
            files: 
         
     | 
| 
      
 30 
     | 
    
         
            +
            files:
         
     | 
| 
       31 
31 
     | 
    
         
             
            - README
         
     | 
| 
       32 
     | 
    
         
            -
            - init.rb
         
     | 
| 
       33 
32 
     | 
    
         
             
            - lib/google_pr.rb
         
     | 
| 
       34 
33 
     | 
    
         
             
            - test/pagerank_checker_test.rb
         
     | 
| 
       35 
     | 
    
         
            -
            has_rdoc: true
         
     | 
| 
       36 
34 
     | 
    
         
             
            homepage: https://github.com/veilleperso/google_pr
         
     | 
| 
       37 
35 
     | 
    
         
             
            licenses: []
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
36 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       40 
37 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
            require_paths: 
         
     | 
| 
      
 38 
     | 
    
         
            +
            require_paths:
         
     | 
| 
       43 
39 
     | 
    
         
             
            - lib
         
     | 
| 
       44 
     | 
    
         
            -
            required_ruby_version: !ruby/object:Gem::Requirement 
     | 
| 
      
 40 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       45 
41 
     | 
    
         
             
              none: false
         
     | 
| 
       46 
     | 
    
         
            -
              requirements: 
     | 
| 
       47 
     | 
    
         
            -
              - -  
     | 
| 
       48 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
     | 
| 
       49 
     | 
    
         
            -
                   
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                  - 0
         
     | 
| 
       52 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
       53 
     | 
    
         
            -
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 42 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 43 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 44 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 45 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 46 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       54 
47 
     | 
    
         
             
              none: false
         
     | 
| 
       55 
     | 
    
         
            -
              requirements: 
     | 
| 
       56 
     | 
    
         
            -
              - -  
     | 
| 
       57 
     | 
    
         
            -
                - !ruby/object:Gem::Version 
     | 
| 
       58 
     | 
    
         
            -
                   
     | 
| 
       59 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       60 
     | 
    
         
            -
                  - 0
         
     | 
| 
       61 
     | 
    
         
            -
                  version: "0"
         
     | 
| 
      
 48 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 49 
     | 
    
         
            +
              - - ! '>='
         
     | 
| 
      
 50 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 51 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
       62 
52 
     | 
    
         
             
            requirements: []
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
53 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       65 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 54 
     | 
    
         
            +
            rubygems_version: 1.8.15
         
     | 
| 
       66 
55 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       67 
56 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       68 
57 
     | 
    
         
             
            summary: Google PR check
         
     | 
| 
       69 
58 
     | 
    
         
             
            test_files: []
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
    
        data/init.rb
    DELETED