timdex-ruby 0.1.4 → 0.1.5.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f609eae928cfb941e550c9e62fe2685a5bf200e93aeecc0fcd109b48d2dcf05c
4
- data.tar.gz: 0bdc2724cab8a3792da224a79491bbb9706dd2ce1b841cf3818be305edf6bfb1
3
+ metadata.gz: 144298a47fb383556a0b1b47e3bd302be31fb6be359b2fffebf2d5cbd6c09749
4
+ data.tar.gz: 7e5e139232a21c9515ab9d0bb7ba4052298616afdf451c03dd1f34e4ab87b0f5
5
5
  SHA512:
6
- metadata.gz: 317c01c4bf57d675264dea3f9510bb878141e96a52279fc1596386fe8843365e3e9134059cb7efcf66b536f0c6eb2fff7c16a01c1094639bf52f34491a3092fc
7
- data.tar.gz: ce29415efd3f468d871ac72abc9a08f8100041077df32e51d4620f4c840254620eec0fa5292530aef335fae8cf37aeeb6d6ac281aa008cb2ce0fbe1bf85bd250
6
+ metadata.gz: abea8b0eb61ba57125b5b1b20f9a020b3c9b33525d989c2cca8ea990d79ad96a2cd3a5fc7ebd250f95b5ff8cca8652a355a62048c6ce708029123c38bf12c294
7
+ data.tar.gz: 99f63155f117685f3b53902158895c56850c4f190ed9033eb8b600daf7d9c86ea565a63a25374c02df235d9d34f945e7a35b94615d15b804c2972e1cd5f218a3
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- timdex-ruby (0.1.4)
4
+ timdex-ruby (0.1.5)
5
5
  faraday (~> 0)
6
+ jwt
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
@@ -10,13 +11,21 @@ GEM
10
11
  byebug (5.0.0)
11
12
  columnize (= 0.9.0)
12
13
  columnize (0.9.0)
13
- dotenv (2.7.2)
14
+ docile (1.3.2)
14
15
  faraday (0.15.4)
15
16
  multipart-post (>= 1.2, < 3)
17
+ json (2.2.0)
16
18
  jwt (2.1.0)
17
19
  minitest (5.11.3)
18
- multipart-post (2.0.0)
20
+ multipart-post (2.1.1)
19
21
  rake (10.5.0)
22
+ simplecov (0.17.0)
23
+ docile (~> 1.1)
24
+ json (>= 1.8, < 3)
25
+ simplecov-html (~> 0.10.0)
26
+ simplecov-html (0.10.2)
27
+ timecop (0.9.1)
28
+ vcr (5.0.0)
20
29
 
21
30
  PLATFORMS
22
31
  ruby
@@ -24,11 +33,12 @@ PLATFORMS
24
33
  DEPENDENCIES
25
34
  bundler (~> 2)
26
35
  byebug (~> 5.0)
27
- dotenv (~> 2)
28
- jwt
29
36
  minitest (~> 5.0)
30
37
  rake (~> 10.0)
38
+ simplecov
31
39
  timdex-ruby!
40
+ timecop
41
+ vcr
32
42
 
33
43
  BUNDLED WITH
34
- 2.0.1
44
+ 2.0.2
data/lib/record.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Record
2
4
  def initialize(record)
3
5
  @record = record
data/lib/timdex.rb CHANGED
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'timdex/version'
2
- require 'dotenv/load'
3
4
  require 'record'
4
5
  require 'faraday'
5
6
  require 'json'
@@ -7,7 +8,7 @@ require 'jwt'
7
8
 
8
9
  # Timdex modules wraps interaction with the public TIMDEX API
9
10
  class Timdex
10
- def initialize(username, password)
11
+ def initialize(username = nil, password = nil)
11
12
  @jwt = false
12
13
  @username = username
13
14
  @password = password
@@ -15,7 +16,10 @@ class Timdex
15
16
 
16
17
  def setup
17
18
  timdex_url = ENV.fetch('TIMDEX_URL', 'https://timdex.mit.edu')
18
- @conn = Faraday.new(url: timdex_url)
19
+ @conn = Faraday.new(url: timdex_url) do |faraday|
20
+ faraday.response :logger if ENV['DEBUG']
21
+ faraday.adapter Faraday.default_adapter
22
+ end
19
23
  end
20
24
 
21
25
  def ping
@@ -29,19 +33,36 @@ class Timdex
29
33
  @conn.basic_auth(@username, @password)
30
34
  response = @conn.get('/api/v1/auth')
31
35
 
32
- @jwt = JSON.parse(response.body)
36
+ if response.status == 200
37
+ @jwt = JSON.parse(response.body)
38
+ else
39
+ @jwt = nil
40
+ JSON.parse(response.body)
41
+ end
42
+ end
43
+
44
+ def auth?
45
+ if @username.nil? || @password.nil?
46
+ false
47
+ else
48
+ true
49
+ end
33
50
  end
34
51
 
35
52
  def search(term)
36
53
  setup
37
- auth unless validate_jwt
38
- @conn.token_auth(@jwt)
54
+
55
+ if auth?
56
+ auth unless validate_jwt
57
+ @conn.token_auth(@jwt)
58
+ end
59
+
39
60
  response = @conn.get do |req|
40
61
  req.url '/api/v1/search', q: term
41
- req.headers['Authorization'] = "Bearer #{@jwt}"
62
+ req.headers['Authorization'] = "Bearer #{@jwt}" if auth?
42
63
  end
43
- json_results = JSON.parse(response.body)
44
- parse_results(json_results, response.status)
64
+
65
+ parse_results(response.body, response.status)
45
66
  end
46
67
 
47
68
  def retrieve(id)
@@ -50,7 +71,7 @@ class Timdex
50
71
  @conn.token_auth(@jwt)
51
72
  response = @conn.get do |req|
52
73
  req.url '/api/v1/record/' + id
53
- req.headers['Authorization'] = "Bearer #{@jwt}"
74
+ req.headers['Authorization'] = "Bearer #{@jwt}" if auth?
54
75
  end
55
76
  json_result = JSON.parse(response.body)
56
77
  parse_record(json_result, response.status)
@@ -64,7 +85,8 @@ class Timdex
64
85
  response
65
86
  end
66
87
 
67
- def parse_results(json_results, status)
88
+ def parse_results(results, status)
89
+ json_results = JSON.parse(results)
68
90
  results = {}
69
91
  results['status'] = status
70
92
  results['hits'] = json_results['hits']
@@ -82,7 +104,7 @@ class Timdex
82
104
  decoded_token = JWT.decode(@jwt, nil, false)
83
105
  expires = decoded_token[0]['exp']
84
106
 
85
- return @jwt if Time.now.to_i < expires
107
+ return true if Time.now.to_i < expires
86
108
 
87
109
  @jwt = nil
88
110
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Timdex
2
- VERSION = "0.1.4"
4
+ VERSION = '0.1.5.pre'
3
5
  end
data/timdex_ruby.gemspec CHANGED
@@ -1,31 +1,33 @@
1
+ # frozen_string_literal: true
1
2
 
2
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "timdex/version"
5
+ require 'timdex/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
- spec.name = "timdex-ruby"
8
+ spec.name = 'timdex-ruby'
8
9
  spec.version = Timdex::VERSION
9
- spec.authors = ["Jeremy Prevost"]
10
- spec.email = ["jprevost@mit.edu"]
10
+ spec.authors = ['Jeremy Prevost']
11
+ spec.email = ['jprevost@mit.edu']
11
12
 
12
13
  spec.summary = "Ruby wrapper for MIT Libraries' TIMDEX Discovery API"
13
- spec.homepage = "https://github.com/MITLibraries/timdex_ruby"
14
- spec.license = "MIT"
14
+ spec.homepage = 'https://github.com/MITLibraries/timdex_ruby'
15
+ spec.license = 'MIT'
15
16
 
16
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
18
  f.match(%r{^(test|spec|features)/})
18
19
  end
19
- spec.bindir = "exe"
20
+ spec.bindir = 'exe'
20
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
22
23
 
23
- spec.add_development_dependency "bundler", "~> 2"
24
- spec.add_development_dependency "byebug", "~> 5.0"
25
- spec.add_development_dependency "dotenv", "~> 2"
26
- spec.add_development_dependency "jwt"
27
- spec.add_development_dependency "minitest", "~> 5.0"
28
- spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency 'bundler', '~> 2'
25
+ spec.add_development_dependency 'byebug', '~> 5.0'
26
+ spec.add_dependency 'jwt'
27
+ spec.add_development_dependency 'minitest', '~> 5.0'
28
+ spec.add_development_dependency 'rake', '~> 10.0'
29
29
  spec.add_dependency 'faraday', '~> 0'
30
-
30
+ spec.add_development_dependency 'simplecov'
31
+ spec.add_development_dependency 'timecop'
32
+ spec.add_development_dependency 'vcr'
31
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timdex-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Prevost
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-09 00:00:00.000000000 Z
11
+ date: 2019-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '5.0'
41
- - !ruby/object:Gem::Dependency
42
- name: dotenv
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '2'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: jwt
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +45,7 @@ dependencies:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
47
  version: '0'
62
- type: :development
48
+ type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
@@ -108,6 +94,48 @@ dependencies:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: timecop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: vcr
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  description:
112
140
  email:
113
141
  - jprevost@mit.edu
@@ -145,9 +173,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
173
  version: '0'
146
174
  required_rubygems_version: !ruby/object:Gem::Requirement
147
175
  requirements:
148
- - - ">="
176
+ - - ">"
149
177
  - !ruby/object:Gem::Version
150
- version: '0'
178
+ version: 1.3.1
151
179
  requirements: []
152
180
  rubygems_version: 3.0.3
153
181
  signing_key: