metal_archives 2.1.0 → 2.1.1

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
  SHA1:
3
- metadata.gz: e691c4936e5453b4ae339f5844a440e3427b4277
4
- data.tar.gz: 7151b7ad03f3da331456bbb840f5e6f06fcbcdcb
3
+ metadata.gz: 5b077092f1a7e727aee29d04339faf31468b704b
4
+ data.tar.gz: 00674c9f439ba8c1f8a014cd60c4da6ec5289e22
5
5
  SHA512:
6
- metadata.gz: b7f1cc7c2e83a3741988341984ebdd1430f87bedf775c90c3698216af8f85ff1f9e9c779849d62e936ec792e2b39a7e60b52064f378f1342b1d3042e59feb6e2
7
- data.tar.gz: ee1b4d9491e178caafd133c363d3558e3d57451e37bd845cd93e680cc8c2e65168221ae4cd458f412cc9e306995337072f66b4f8cc248ac38b5c24deb7be7877
6
+ metadata.gz: 9217a15df5ae47a552a8214fba23a374bb9788611103d0366078aff6e72069505bf2d43fcfc0c437624aae8bbf3f9a342bbcfa67abd512ed712473a51dc56a9b
7
+ data.tar.gz: 22a44ac5667e462eab891c019c98f17340e2469ffa7ff71d79e5f6dc9b6d6a5eb5482ef10fcba9f0b4a320ad9fb9795d32f7df7b4122dd463bb865192613e6b2
data/.gitignore CHANGED
@@ -1,6 +1,7 @@
1
1
  Gemfile.lock
2
2
  .idea
3
3
 
4
+ *.tar.gz
4
5
  *.gem
5
6
  *.rbc
6
7
  /.config
@@ -5,6 +5,7 @@ require 'openssl'
5
5
  require 'metal_archives/middleware/headers'
6
6
  require 'metal_archives/middleware/cache_check'
7
7
  require 'metal_archives/middleware/rewrite_endpoint'
8
+ require 'metal_archives/middleware/encoding'
8
9
 
9
10
  require 'metal_archives/version'
10
11
  require 'metal_archives/configuration'
@@ -24,6 +24,7 @@ module MetalArchives
24
24
 
25
25
  response
26
26
  rescue Faraday::Error::ClientError => e
27
+ MetalArchives.config.logger.error e.response
27
28
  raise Errors::APIError, e
28
29
  end
29
30
 
@@ -43,6 +44,7 @@ module MetalArchives
43
44
  f.use MetalArchives::Middleware::Headers
44
45
  f.use MetalArchives::Middleware::CacheCheck
45
46
  f.use MetalArchives::Middleware::RewriteEndpoint
47
+ f.use MetalArchives::Middleware::Encoding
46
48
 
47
49
  MetalArchives.config.middleware.each { |m| f.use m } if MetalArchives.config.middleware
48
50
 
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ module MetalArchives
6
+ module Middleware
7
+ ##
8
+ # Force UTF-8 conversion
9
+ #
10
+ class Encoding < Faraday::Response::Middleware # :nodoc:
11
+ def on_complete(env)
12
+ env.response.body.force_encoding('utf-8')
13
+ end
14
+ end
15
+ end
16
+ end
@@ -224,7 +224,7 @@ module MetalArchives
224
224
  #
225
225
  def find!(id)
226
226
  obj = find id
227
- obj && obj.load!
227
+ obj.load! if obj && !obj.loaded?
228
228
 
229
229
  obj
230
230
  end
@@ -277,7 +277,7 @@ module MetalArchives
277
277
  #
278
278
  def find_by!(query)
279
279
  obj = find_by query
280
- obj && obj.load!
280
+ obj.load! if obj && !obj.loaded?
281
281
 
282
282
  obj
283
283
  end
@@ -270,7 +270,7 @@ module MetalArchives
270
270
  #
271
271
  def find!(id)
272
272
  obj = find id
273
- obj.load!
273
+ obj.load! if obj && !obj.loaded?
274
274
 
275
275
  obj
276
276
  end
@@ -342,7 +342,7 @@ module MetalArchives
342
342
  #
343
343
  def find_by!(query)
344
344
  obj = find_by query
345
- obj && obj.load!
345
+ obj.load! if obj && !obj.loaded?
346
346
 
347
347
  obj
348
348
  end
@@ -113,13 +113,13 @@ module MetalArchives
113
113
 
114
114
  # property
115
115
  define_method(name) do
116
- load! unless instance_variable_defined?("@#{name}") || name ==(:id)
116
+ load! unless loaded? && instance_variable_defined?("@#{name}") || name ==(:id)
117
117
  instance_variable_get("@#{name}")
118
118
  end
119
119
 
120
120
  # property?
121
121
  define_method("#{name}?") do
122
- load! unless instance_variable_defined?("@#{name}") || name ==(:id)
122
+ load! unless loaded? && instance_variable_defined?("@#{name}") || name ==(:id)
123
123
 
124
124
  property = instance_variable_get("@#{name}")
125
125
  property.respond_to?(:empty?) ? !property.empty? : !!property
@@ -168,13 +168,13 @@ module MetalArchives
168
168
 
169
169
  # property
170
170
  define_method(name) do
171
- load! unless instance_variable_defined?("@#{name}")
171
+ load! unless loaded? && instance_variable_defined?("@#{name}")
172
172
  instance_variable_get("@#{name}")
173
173
  end
174
174
 
175
175
  # property?
176
176
  define_method("#{name}?") do
177
- load! unless instance_variable_defined?("@#{name}")
177
+ load! unless loaded? && instance_variable_defined?("@#{name}")
178
178
 
179
179
  property = instance_variable_get("@#{name}")
180
180
  property.respond_to?(:empty?) ? !property.empty? : !!property
@@ -4,5 +4,5 @@ module MetalArchives
4
4
  ##
5
5
  # MetalArchives API version
6
6
  #
7
- VERSION = '2.1.0'
7
+ VERSION = '2.1.1'
8
8
  end
data/publish.sh ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/bash
2
+ #
3
+ # publish.sh - Publish a new gem version
4
+ #
5
+
6
+ trap _error_handler ERR
7
+ function _error_handler() {
8
+ echo -ne "\e[1;31m=> Previous command exited unsuccessfully. Abort (y/n)? \e[0m"
9
+ read -n 1 VAR
10
+ echo
11
+
12
+ [[ "${VAR}" != 'n' ]] && { echo "Aborting."; exit 1; }
13
+ }
14
+
15
+ VERSION="$1"
16
+ if [[ ! "$1" ]]; then
17
+ echo -ne "Previous version: `git describe --abbrev=0 --tags | sed -e 's/v//g'`. New version: "
18
+ read VERSION
19
+ echo
20
+ fi
21
+
22
+ # Release commit and tag
23
+ git reset HEAD
24
+ sed -s "s/VERSION = .*$/VERSION = '${VERSION}'/" -i lib/metal_archives/version.rb
25
+ git add lib/metal_archives/version.rb
26
+ git commit -m "Release version v${VERSION}"
27
+ git tag "v${VERSION}"
28
+ git push
29
+ git push --tags
30
+
31
+ # Gem
32
+ gem build metal_archives.gemspec
33
+ gem push "metal_archives-${VERSION}.gem"
34
+ rm -rf html/
35
+ rake rdoc
36
+ tar cvjf "metal_archives-${VERSION}-doc.tar.gz" html/
37
+
38
+ # Documentation
39
+ git add --all .
40
+ git stash
41
+ git checkout gh-pages
42
+ git reset --hard 'HEAD^'
43
+ git merge master
44
+ rm -rf html/
45
+ rake rdoc
46
+ git add -f html/
47
+ git commit -m 'Add documentation'
48
+ git push --force
49
+ git checkout master
50
+ git stash pop
51
+ git reset HEAD
@@ -78,6 +78,7 @@ RSpec.describe MetalArchives::BaseModel do
78
78
  it 'returns properties' do
79
79
  model = ModelThree.new :id => 'foo', :property_one => 'bar'
80
80
 
81
+ model.instance_eval { |m| @loaded = true }
81
82
  expect(model.id).to eq 'foo'
82
83
  expect(model.property_one).to eq 'bar'
83
84
  end
@@ -85,6 +86,7 @@ RSpec.describe MetalArchives::BaseModel do
85
86
  it 'sets properties' do
86
87
  model = ModelThree.new :id => 'foo', :property_one => 'bar'
87
88
 
89
+ model.instance_eval { |m| @loaded = true }
88
90
  model.id = 'baz'
89
91
  model.property_one = 'bat'
90
92
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metal_archives
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Dejonckheere
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-08 00:00:00.000000000 Z
11
+ date: 2017-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug
@@ -213,6 +213,7 @@ files:
213
213
  - lib/metal_archives/error.rb
214
214
  - lib/metal_archives/http_client.rb
215
215
  - lib/metal_archives/middleware/cache_check.rb
216
+ - lib/metal_archives/middleware/encoding.rb
216
217
  - lib/metal_archives/middleware/headers.rb
217
218
  - lib/metal_archives/middleware/rewrite_endpoint.rb
218
219
  - lib/metal_archives/models/artist.rb
@@ -229,6 +230,7 @@ files:
229
230
  - lib/metal_archives/utils/range.rb
230
231
  - lib/metal_archives/version.rb
231
232
  - metal_archives.gemspec
233
+ - publish.sh
232
234
  - spec/configuration_spec.rb
233
235
  - spec/factories/artist_factory.rb
234
236
  - spec/factories/band_factory.rb