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.
|