artwork 0.3.1 → 0.3.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3e51d5060c17f4737eda437c0f9ce39f16d0ae83
4
+ data.tar.gz: da1b48d509a9ddc8809f8a1f750fbf25d9f9c388
5
+ SHA512:
6
+ metadata.gz: 4db0e6456851055b2c9e952ffe8d57c368978425bc4d5e909436f6e6f59055c5fb28414f0ede41835883f0867ccfcbf30125d603e15097e99ebe287575a7c9a1
7
+ data.tar.gz: 7e1b104e52d173e01e9c1abe5deba6b574f7a22779070fd8918260513f27bbcec87714d457970648f4799283544023244da91336868496c21a04a04c44cc65d1
@@ -1,18 +1,22 @@
1
1
  module Artwork
2
2
  module Configuration
3
3
  def supported_resolutions_list
4
- get_required :supported_resolutions_list
4
+ get(:supported_resolutions_list) or @@supported_resolutions_list or raise "Please set #{__method__}"
5
5
  end
6
6
 
7
7
  def supported_resolutions_list=(resolutions)
8
- set :supported_resolutions_list, resolutions.map(&:to_i).sort
8
+ list = resolutions.map(&:to_i).sort
9
+
10
+ @@supported_resolutions_list ||= list
11
+ set :supported_resolutions_list, list
9
12
  end
10
13
 
11
14
  def default_resolution
12
- get_required :default_resolution
15
+ get(:default_resolution) or @@default_resolution or raise "Please set #{__method__}"
13
16
  end
14
17
 
15
18
  def default_resolution=(resolution)
19
+ @@default_resolution ||= resolution
16
20
  set :default_resolution, resolution
17
21
  end
18
22
 
@@ -52,10 +56,6 @@ module Artwork
52
56
  Thread.current[setting]
53
57
  end
54
58
 
55
- def get_required(setting)
56
- get(setting) or raise "Please set #{name}.#{setting}"
57
- end
58
-
59
59
  def fetch_2x_images_flag_from(request)
60
60
  request.cookies['_retina'].to_i > 0
61
61
  end
@@ -1,3 +1,3 @@
1
1
  module Artwork
2
- VERSION = '0.3.1'
2
+ VERSION = '0.3.2'
3
3
  end
@@ -5,19 +5,59 @@ module Artwork
5
5
  let(:config) { Class.new { extend Configuration } }
6
6
 
7
7
  before :each do
8
- thread_variables = {}
9
- allow(Thread).to receive(:current) { thread_variables }
8
+ [
9
+ :default_resolution, :supported_resolutions_list,
10
+ :current_resolution, :load_2x_images
11
+ ].each do |key|
12
+
13
+ Thread.current[key] = nil
14
+
15
+ end
10
16
  end
11
17
 
12
18
  [:default_resolution, :supported_resolutions_list].each do |option_name|
13
19
  describe "##{option_name}" do
20
+ let(:default_value) { option_name == :supported_resolutions_list ? [1440] : 1440 }
21
+ let(:custom_value) { option_name == :supported_resolutions_list ? [1024] : 1024 }
22
+
14
23
  it 'raises an error if not set' do
15
24
  expect { config.send(option_name) }.to raise_error
16
25
  end
17
26
 
18
- it 'uses Thread.current to store values' do
19
- expect(Thread).to receive(:current).and_return(option_name => 'value')
20
- expect(config.send(option_name)).to eq 'value'
27
+ it 'can be initialized with default value' do
28
+ setter = ->(value) { config.send("#{option_name}=", value) }
29
+ getter = -> { config.send(option_name) }
30
+
31
+ Thread.new { setter.call(default_value) }.join
32
+
33
+ expect(getter.call).to eq default_value
34
+
35
+ Thread.new do
36
+ expect(getter.call).to eq default_value
37
+
38
+ setter.call(custom_value)
39
+
40
+ expect(getter.call).to eq custom_value
41
+ end.join
42
+
43
+ expect(getter.call).to eq default_value
44
+ end
45
+
46
+ it 'does not allow editing of the default value' do
47
+ setter = ->(value) { config.send("#{option_name}=", value) }
48
+ getter = -> { config.send(option_name) }
49
+
50
+ setter.call default_value
51
+
52
+ expect(getter.call).to eq default_value
53
+
54
+ setter.call custom_value
55
+
56
+ expect(getter.call).to eq custom_value
57
+
58
+ Thread.new do
59
+ expect(getter.call).to eq default_value
60
+ end.join
21
61
  end
22
62
  end
23
63
  end
metadata CHANGED
@@ -1,122 +1,109 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: artwork
3
- version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 1
10
- version: 0.3.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Dimitar Dimitrov
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-06-27 00:00:00 +03:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
- requirements:
25
- - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 1
30
- - 6
31
- version: "1.6"
32
- type: :development
33
- version_requirements: *id001
34
- prerelease: false
11
+ date: 2014-07-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
35
14
  name: bundler
36
- - !ruby/object:Gem::Dependency
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.6'
46
20
  type: :development
47
- version_requirements: *id002
48
21
  prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.6'
27
+ - !ruby/object:Gem::Dependency
49
28
  name: rake
50
- - !ruby/object:Gem::Dependency
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ~>
55
- - !ruby/object:Gem::Version
56
- hash: 5
57
- segments:
58
- - 3
59
- version: "3"
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
60
34
  type: :development
61
- version_requirements: *id003
62
35
  prerelease: false
63
- name: rspec
64
- - !ruby/object:Gem::Dependency
65
- requirement: &id004 !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
68
38
  - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 5
71
- segments:
72
- - 2
73
- - 3
74
- version: "2.3"
75
- type: :runtime
76
- version_requirements: *id004
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3'
48
+ type: :development
77
49
  prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3'
55
+ - !ruby/object:Gem::Dependency
78
56
  name: rails
79
- - !ruby/object:Gem::Dependency
80
- requirement: &id005 !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
83
59
  - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 5
86
- segments:
87
- - 2
88
- - 3
89
- version: "2.3"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.3'
90
62
  type: :runtime
91
- version_requirements: *id005
92
63
  prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '2.3'
69
+ - !ruby/object:Gem::Dependency
93
70
  name: paperclip
94
- - !ruby/object:Gem::Dependency
95
- requirement: &id006 !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
98
73
  - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.3'
104
76
  type: :runtime
105
- version_requirements: *id006
106
77
  prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '2.3'
83
+ - !ruby/object:Gem::Dependency
107
84
  name: uglifier
108
- description: Automated user resolution based image size choosing for your Rails views, but done at the backend.
109
- email:
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Automated user resolution based image size choosing for your Rails views,
98
+ but done at the backend.
99
+ email:
110
100
  - dimitar@live.bg
111
101
  executables: []
112
-
113
102
  extensions: []
114
-
115
103
  extra_rdoc_files: []
116
-
117
- files:
118
- - .gitignore
119
- - .rspec
104
+ files:
105
+ - ".gitignore"
106
+ - ".rspec"
120
107
  - Gemfile
121
108
  - LICENSE.txt
122
109
  - README.md
@@ -138,41 +125,31 @@ files:
138
125
  - spec/artwork/view_spec.rb
139
126
  - spec/artwork_spec.rb
140
127
  - spec/spec_helper.rb
141
- has_rdoc: true
142
128
  homepage: https://github.com/mitio/artwork
143
- licenses:
129
+ licenses:
144
130
  - MIT
131
+ metadata: {}
145
132
  post_install_message:
146
133
  rdoc_options: []
147
-
148
- require_paths:
134
+ require_paths:
149
135
  - lib
150
- required_ruby_version: !ruby/object:Gem::Requirement
151
- none: false
152
- requirements:
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
153
138
  - - ">="
154
- - !ruby/object:Gem::Version
155
- hash: 3
156
- segments:
157
- - 0
158
- version: "0"
159
- required_rubygems_version: !ruby/object:Gem::Requirement
160
- none: false
161
- requirements:
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
162
143
  - - ">="
163
- - !ruby/object:Gem::Version
164
- hash: 3
165
- segments:
166
- - 0
167
- version: "0"
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
168
146
  requirements: []
169
-
170
147
  rubyforge_project:
171
- rubygems_version: 1.6.2
148
+ rubygems_version: 2.2.2
172
149
  signing_key:
173
- specification_version: 3
150
+ specification_version: 4
174
151
  summary: Automated user resolution based image size choosing for Rails.
175
- test_files:
152
+ test_files:
176
153
  - spec/artwork/configuration_spec.rb
177
154
  - spec/artwork/controller_spec.rb
178
155
  - spec/artwork/model_spec.rb