metal_archives 2.1.0 → 2.1.1

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