gisbn 0.0.1 → 0.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.
- checksums.yaml +5 -5
- data/.github/workflows/publish.yml +48 -0
- data/.travis.yml +9 -3
- data/README.md +13 -6
- data/lib/gisbn.rb +20 -5
- data/lib/gisbn/version.rb +1 -1
- data/spec/gisbn_spec.rb +3 -2
- data/spec/spec_helper.rb +3 -1
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: 9990b687d41d939ef3179be599539c67e36ae480b8bdaf8010a247d7dfcfca87
         | 
| 4 | 
            +
              data.tar.gz: f541a4216d099d84ca39c4ba364c7053c8de89db70b51a07305a9f363e8ad978
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9db06099ce22bce004d9e377cfc933dc53778ecbd21e94952810aa79ebb41c97f31829a6892cd4310337c2138f820f0a8de289235e8725193ee5107042981281
         | 
| 7 | 
            +
              data.tar.gz: 1c50480b5a4a76df7054b21460e8e48a552cf5874381eeb12101cabcd05158cca8963cd92c83a88489765cf0224c88268186bbfd5cf1d1aa39c3e712ac394b3b
         | 
| @@ -0,0 +1,48 @@ | |
| 1 | 
            +
            name: Publish GISBN Gem
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            on:
         | 
| 4 | 
            +
              push:
         | 
| 5 | 
            +
                tags:
         | 
| 6 | 
            +
                  - '*'
         | 
| 7 | 
            +
            jobs:
         | 
| 8 | 
            +
              rspec:
         | 
| 9 | 
            +
                name: Specs
         | 
| 10 | 
            +
                runs-on: ubuntu-latest
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                steps:
         | 
| 13 | 
            +
                - uses: actions/checkout@master
         | 
| 14 | 
            +
                
         | 
| 15 | 
            +
                - name: Set up Ruby 2.6
         | 
| 16 | 
            +
                  uses: actions/setup-ruby@v1
         | 
| 17 | 
            +
                  with:
         | 
| 18 | 
            +
                    ruby-version: 2.6.x
         | 
| 19 | 
            +
                    
         | 
| 20 | 
            +
                - name: Run specs
         | 
| 21 | 
            +
                  run: |
         | 
| 22 | 
            +
                    bundle install
         | 
| 23 | 
            +
                    bundle exec rspec
         | 
| 24 | 
            +
                  
         | 
| 25 | 
            +
              publish:
         | 
| 26 | 
            +
                name: Publish
         | 
| 27 | 
            +
                runs-on: ubuntu-latest  
         | 
| 28 | 
            +
                
         | 
| 29 | 
            +
                needs: rspec
         | 
| 30 | 
            +
                
         | 
| 31 | 
            +
                steps:
         | 
| 32 | 
            +
                - uses: actions/checkout@master
         | 
| 33 | 
            +
                
         | 
| 34 | 
            +
                - name: Set up Ruby 2.6
         | 
| 35 | 
            +
                  uses: actions/setup-ruby@v1
         | 
| 36 | 
            +
                  with:
         | 
| 37 | 
            +
                    ruby-version: 2.6.x
         | 
| 38 | 
            +
                
         | 
| 39 | 
            +
                - name: Publish to RubyGems      
         | 
| 40 | 
            +
                  run: |
         | 
| 41 | 
            +
                    mkdir -p $HOME/.gem
         | 
| 42 | 
            +
                    touch $HOME/.gem/credentials
         | 
| 43 | 
            +
                    chmod 0600 $HOME/.gem/credentials
         | 
| 44 | 
            +
                    printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
         | 
| 45 | 
            +
                    gem build *.gemspec
         | 
| 46 | 
            +
                    gem push *.gem
         | 
| 47 | 
            +
                  env:
         | 
| 48 | 
            +
                    GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -2,14 +2,20 @@ language: ruby | |
| 2 2 | 
             
            cache: bundler
         | 
| 3 3 |  | 
| 4 4 | 
             
            rvm:
         | 
| 5 | 
            -
              - jruby
         | 
| 6 5 | 
             
              - 2.0.0
         | 
| 6 | 
            +
              - 2.1.5
         | 
| 7 7 |  | 
| 8 | 
            -
             | 
| 8 | 
            +
            before_install:
         | 
| 9 | 
            +
              - gem install bundler
         | 
| 10 | 
            +
              - gem update bundler
         | 
| 11 | 
            +
              - gem install gisbn
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            script:
         | 
| 14 | 
            +
              - bundle exec rspec
         | 
| 9 15 |  | 
| 10 16 | 
             
            notifications:
         | 
| 11 17 | 
             
              email:
         | 
| 12 18 | 
             
                recipients:
         | 
| 13 19 | 
             
                  - eftakhairul@gmail.com
         | 
| 14 20 | 
             
                on_failure: change
         | 
| 15 | 
            -
                on_success: never
         | 
| 21 | 
            +
                on_success: never
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,4 +1,4 @@ | |
| 1 | 
            -
            # gisbn
         | 
| 1 | 
            +
            # gisbn GEM  [](https://travis-ci.org/eftakhairul/gisbn) [](https://github.com/eftakhairul/gisbn/issues)  [](https://raw.githubusercontent.com/eftakhairul/gisbn/master/LICENSE.txt)
         | 
| 2 2 |  | 
| 3 3 | 
             
            It fetches book's information by ISBN number based on Google Book API.
         | 
| 4 4 |  | 
| @@ -14,20 +14,27 @@ You don't have to call manually Google API with ISBN number. This gem will do ev | |
| 14 14 |  | 
| 15 15 |  | 
| 16 16 | 
             
            ### Installation
         | 
| 17 | 
            +
            Add this line to your application's Gemfile:
         | 
| 17 18 |  | 
| 18 | 
            -
             | 
| 19 | 
            +
            ```ruby
         | 
| 20 | 
            +
            gem 'gisbn'
         | 
| 21 | 
            +
            ```
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            And then execute:
         | 
| 19 24 |  | 
| 20 25 | 
             
            ```sh
         | 
| 21 | 
            -
             | 
| 26 | 
            +
            $ bundle
         | 
| 22 27 | 
             
            ```
         | 
| 23 | 
            -
             | 
| 28 | 
            +
             | 
| 29 | 
            +
            Or install it yourself as globally:
         | 
| 24 30 |  | 
| 25 31 | 
             
            ```sh
         | 
| 26 | 
            -
            gem  | 
| 32 | 
            +
            gem install gisbn
         | 
| 27 33 | 
             
            ```
         | 
| 28 34 |  | 
| 35 | 
            +
             | 
| 29 36 | 
             
            ## Examples
         | 
| 30 | 
            -
                book = Gisbn::Book.new "0262033844"
         | 
| 37 | 
            +
                book = Gisbn::Book.new "0262033844", "AIzaSyDKepjfaVBRcgsnPALw5s2UNyfOk-1FHUU", "ca"
         | 
| 31 38 |  | 
| 32 39 | 
             
                book.title
         | 
| 33 40 | 
             
                #=> "Introduction to Algorithms"
         | 
    
        data/lib/gisbn.rb
    CHANGED
    
    | @@ -14,10 +14,10 @@ module Gisbn | |
| 14 14 | 
             
                private
         | 
| 15 15 | 
             
                attr_accessor :key, :country
         | 
| 16 16 |  | 
| 17 | 
            -
                BASE_URL = 'https://www.googleapis.com/books/v1/volumes?q=isbn:'
         | 
| 17 | 
            +
                BASE_URL = 'https://www.googleapis.com/books/v1/volumes?q=isbn:'.freeze
         | 
| 18 18 |  | 
| 19 19 | 
             
                public
         | 
| 20 | 
            -
                # Initialize a new Book object by ISBN (either ten or thirteen  | 
| 20 | 
            +
                # Initialize a new Book object by ISBN (either ten or thirteen digit ISBN numbers)
         | 
| 21 21 | 
             
                #
         | 
| 22 22 | 
             
                # At Interactive Ruby Shell...
         | 
| 23 23 | 
             
                # require 'gisbn'
         | 
| @@ -68,8 +68,12 @@ module Gisbn | |
| 68 68 | 
             
                  @result   = nil if @result["totalItems"] == 0
         | 
| 69 69 | 
             
                end
         | 
| 70 70 |  | 
| 71 | 
            +
             | 
| 71 72 | 
             
                # Set ISBN for new request
         | 
| 72 73 | 
             
                #
         | 
| 74 | 
            +
                # Arguments:
         | 
| 75 | 
            +
                #   isbn: (String)
         | 
| 76 | 
            +
                #
         | 
| 73 77 | 
             
                # Example:
         | 
| 74 78 | 
             
                #   >> gisbn.isbn = 0262033844
         | 
| 75 79 | 
             
                #
         | 
| @@ -79,6 +83,7 @@ module Gisbn | |
| 79 83 | 
             
                  isbn.strip! || isbn
         | 
| 80 84 | 
             
                end
         | 
| 81 85 |  | 
| 86 | 
            +
             | 
| 82 87 | 
             
                # Description of the book
         | 
| 83 88 | 
             
                #
         | 
| 84 89 | 
             
                # Example:
         | 
| @@ -90,9 +95,10 @@ module Gisbn | |
| 90 95 | 
             
                #     String
         | 
| 91 96 | 
             
                def description
         | 
| 92 97 | 
             
                  return nil if @result.nil?
         | 
| 93 | 
            -
                  @result["items"][0]["description"]
         | 
| 98 | 
            +
                  @result["items"][0]["volumeInfo"]["description"]
         | 
| 94 99 | 
             
                end
         | 
| 95 100 |  | 
| 101 | 
            +
             | 
| 96 102 | 
             
                # Title of the book
         | 
| 97 103 | 
             
                # Example:
         | 
| 98 104 | 
             
                #   >> gisbn.title
         | 
| @@ -105,6 +111,7 @@ module Gisbn | |
| 105 111 | 
             
                  @result["items"][0]["volumeInfo"]["title"]
         | 
| 106 112 | 
             
                end
         | 
| 107 113 |  | 
| 114 | 
            +
             | 
| 108 115 | 
             
                # It returns all authors' name as comma separated string
         | 
| 109 116 | 
             
                #
         | 
| 110 117 | 
             
                # Example:
         | 
| @@ -118,6 +125,7 @@ module Gisbn | |
| 118 125 | 
             
                  @result["items"][0]["volumeInfo"]["authors"].join(", ")
         | 
| 119 126 | 
             
                end
         | 
| 120 127 |  | 
| 128 | 
            +
             | 
| 121 129 | 
             
                # It returns all authors' name as array
         | 
| 122 130 | 
             
                #
         | 
| 123 131 | 
             
                # Example:
         | 
| @@ -131,6 +139,7 @@ module Gisbn | |
| 131 139 | 
             
                  @result["items"][0]["volumeInfo"]["authors"]
         | 
| 132 140 | 
             
                end
         | 
| 133 141 |  | 
| 142 | 
            +
             | 
| 134 143 | 
             
                # It returns publisher name
         | 
| 135 144 | 
             
                #
         | 
| 136 145 | 
             
                # Example:
         | 
| @@ -159,7 +168,7 @@ module Gisbn | |
| 159 168 | 
             
                  isbn_array = @result["items"][0]["volumeInfo"]["industryIdentifiers"]
         | 
| 160 169 |  | 
| 161 170 | 
             
                  isbn_array.each do |isbn|
         | 
| 162 | 
            -
                    if isbn["type"] == " | 
| 171 | 
            +
                    if isbn["type"] == "ISBN_10"
         | 
| 163 172 | 
             
                      return isbn["identifier"]
         | 
| 164 173 | 
             
                    end
         | 
| 165 174 | 
             
                  end
         | 
| @@ -186,6 +195,7 @@ module Gisbn | |
| 186 195 | 
             
                  end
         | 
| 187 196 | 
             
                end
         | 
| 188 197 |  | 
| 198 | 
            +
             | 
| 189 199 | 
             
                # It returns categories of book
         | 
| 190 200 | 
             
                #
         | 
| 191 201 | 
             
                # Example:
         | 
| @@ -241,6 +251,7 @@ module Gisbn | |
| 241 251 | 
             
                  @result["items"][0]["volumeInfo"]["imageLinks"]["thumbnail"]
         | 
| 242 252 | 
             
                end
         | 
| 243 253 |  | 
| 254 | 
            +
             | 
| 244 255 | 
             
                # It returns the preview link of book
         | 
| 245 256 | 
             
                #
         | 
| 246 257 | 
             
                # Example:
         | 
| @@ -278,7 +289,11 @@ module Gisbn | |
| 278 289 | 
             
                #     Date
         | 
| 279 290 | 
             
                def published_date
         | 
| 280 291 | 
             
                  return nil if @result.nil?
         | 
| 281 | 
            -
                   | 
| 292 | 
            +
                  begin
         | 
| 293 | 
            +
                    Date.parse(@result["items"][0]["volumeInfo"]["publishedDate"])
         | 
| 294 | 
            +
                  rescue ArgumentError
         | 
| 295 | 
            +
                    @result["items"][0]["volumeInfo"]["publishedDate"]
         | 
| 296 | 
            +
                  end
         | 
| 282 297 | 
             
                end
         | 
| 283 298 | 
             
              end
         | 
| 284 299 | 
             
            end
         | 
    
        data/lib/gisbn/version.rb
    CHANGED
    
    
    
        data/spec/gisbn_spec.rb
    CHANGED
    
    | @@ -1,7 +1,8 @@ | |
| 1 | 
            +
            $LOAD_PATH.unshift(File.dirname(__FILE__))
         | 
| 1 2 | 
             
            require 'spec_helper'
         | 
| 2 3 |  | 
| 3 4 | 
             
            describe "gisbn" do
         | 
| 4 | 
            -
              subject { Gisbn::Book.new "0262033844" }
         | 
| 5 | 
            +
              subject { Gisbn::Book.new "0262033844", "AIzaSyDKepjfaVBRcgsnPALw5s2UNyfOk-1FHUU", "ca" }
         | 
| 5 6 |  | 
| 6 7 | 
             
              describe '#process' do
         | 
| 7 8 | 
             
                let(:output) { "Introduction to Algorithms" }
         | 
| @@ -11,7 +12,7 @@ describe "gisbn" do | |
| 11 12 | 
             
                end
         | 
| 12 13 |  | 
| 13 14 | 
             
                it 'book page count' do
         | 
| 14 | 
            -
                  expect( | 
| 15 | 
            +
                  expect(1292).to eq subject.page_count.to_i
         | 
| 15 16 | 
             
                end
         | 
| 16 17 | 
             
              end
         | 
| 17 18 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: gisbn
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Eftakhairul Islam
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2021-05-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -73,6 +73,7 @@ executables: [] | |
| 73 73 | 
             
            extensions: []
         | 
| 74 74 | 
             
            extra_rdoc_files: []
         | 
| 75 75 | 
             
            files:
         | 
| 76 | 
            +
            - ".github/workflows/publish.yml"
         | 
| 76 77 | 
             
            - ".gitignore"
         | 
| 77 78 | 
             
            - ".travis.yml"
         | 
| 78 79 | 
             
            - Gemfile
         | 
| @@ -103,8 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 103 104 | 
             
                - !ruby/object:Gem::Version
         | 
| 104 105 | 
             
                  version: '0'
         | 
| 105 106 | 
             
            requirements: []
         | 
| 106 | 
            -
             | 
| 107 | 
            -
            rubygems_version: 2.4.3
         | 
| 107 | 
            +
            rubygems_version: 3.0.3.1
         | 
| 108 108 | 
             
            signing_key: 
         | 
| 109 109 | 
             
            specification_version: 4
         | 
| 110 110 | 
             
            summary: Book information from ISBN by Google Book API.
         |