imagery 1.0.0.rc2 → 1.0.0
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 +7 -0
- data/README.markdown +71 -206
- data/imagery.gemspec +3 -3
- data/lib/imagery.rb +3 -2
- data/makefile +6 -1
- data/tests/{imagery.rb → imagery_test.rb} +0 -0
- data/tests/{s3.rb → s3_test.rb} +6 -6
- metadata +16 -25
- data/lib/imagery/faking.rb +0 -90
- data/lib/imagery/test.rb +0 -17
- data/tests/faking.rb +0 -71
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 617d676eaacd1c4f9d90ef5f091c133be23b7046
|
4
|
+
data.tar.gz: 73c33e7af9d03b6c049d8821e01630bc788a694d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8803b9dab1271092fdcc1a559488796f7e5eaaafd6becb14aad8f72dd6be0e42e19283c00e7831dfd83cbceefac91dc94e2b86590fa6eb34b003205da1663188
|
7
|
+
data.tar.gz: d31402d450fed4979743ede359de64195a68a9be0f5c21a4f6152fdda61b7d6252b08839a2759707f10667fbf462e325b345f90ae41cc02bffda8eb6022e134b
|
data/README.markdown
CHANGED
@@ -1,211 +1,76 @@
|
|
1
1
|
Imagery
|
2
2
|
=======
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
# For cases where we want to use S3 for some and normal filesystem for others
|
76
|
-
class S3Photo < Imagery
|
77
|
-
include Imagery::S3
|
78
|
-
|
79
|
-
s3_bucket "my-bucket"
|
80
|
-
end
|
81
|
-
|
82
|
-
# then maybe some other files are using cloudfront
|
83
|
-
class CloudfrontPhoto < Imagery
|
84
|
-
include Imagery::S3
|
85
|
-
|
86
|
-
s3_bucket "my-bucket"
|
87
|
-
s3_distribution_domain "assets.site.com"
|
88
|
-
end
|
89
|
-
|
90
|
-
# some might be using S3 EU, in which case you can specify the s3_host
|
91
|
-
class CustomS3Host < Imagery::Model
|
92
|
-
include Imagery::S3
|
93
|
-
s3_host "http://my.custom.host"
|
94
|
-
s3_bucket "my-bucket-name"
|
95
|
-
end
|
96
|
-
|
97
|
-
3. Flexibility and Extensibility
|
98
|
-
--------------------------------
|
99
|
-
### Existing plugins: Faking and S3
|
100
|
-
|
101
|
-
#### Imagery::S3
|
102
|
-
|
103
|
-
As was shown in some examples above you can easily do S3 integration.
|
104
|
-
The access credentials are assumed to be stored in
|
105
|
-
|
106
|
-
ENV["AMAZON_ACCESS_KEY_ID"]
|
107
|
-
ENV["AMAZON_SECRET_ACCESS_KEY"]
|
108
|
-
|
109
|
-
you can do this by setting it on your .bash_profile / .bashrc or just
|
110
|
-
manually setting them somewhere in your appication
|
111
|
-
|
112
|
-
ENV["AMAZON_ACCESS_KEY_ID"] = "_access_key_id_"
|
113
|
-
ENV["AMAZON_SECRET_ACCESS_KEY"] = "_secret_access_key_"
|
114
|
-
|
115
|
-
Now you can just start using it:
|
116
|
-
|
117
|
-
class Imagery
|
118
|
-
include Imagery::S3
|
119
|
-
s3_bucket "my-bucket"
|
120
|
-
end
|
121
|
-
|
122
|
-
i = Imagery.new :photo, 1001
|
123
|
-
i.save(File.open("/some/path/to/image.jpg"))
|
124
|
-
|
125
|
-
#### Imagery::Faking
|
126
|
-
|
127
|
-
When doing testing, you definitely don't want to run image
|
128
|
-
resizing everytime. Enter Faking.
|
129
|
-
|
130
|
-
# in your test_helper / spec_helper
|
131
|
-
Imagery::Model.send :include, Imagery::Faking
|
132
|
-
Imagery::Model.mode = :fake
|
133
|
-
|
134
|
-
# but what if we want to run it for real on a case to case basis?
|
135
|
-
# sure we can!
|
136
|
-
Imagery::Model.real {
|
137
|
-
# do some imagery testing here
|
138
|
-
}
|
139
|
-
|
140
|
-
#### Imagery::Test
|
141
|
-
|
142
|
-
There is a module you can include in your test context to automate the pattern
|
143
|
-
of testing / faking on an opt-in basis.
|
144
|
-
|
145
|
-
# in your test_helper / spec_helper
|
146
|
-
class Test::Unit::TestCase
|
147
|
-
include Imagery::Test
|
148
|
-
end
|
149
|
-
|
150
|
-
# now when you do some testing... (User assumes the user example above)
|
151
|
-
imagery do |enabled|
|
152
|
-
user = User.new(:avatar => { tempfile: File.open("avatar.jpg") })
|
153
|
-
user.save
|
154
|
-
|
155
|
-
if enabled
|
156
|
-
assert File.exist?(user.avatar.root("original.jpg"))
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
|
-
Running your test suite:
|
161
|
-
|
162
|
-
REAL_IMAGERY=true rake test
|
163
|
-
|
164
|
-
It's off by default though, so you don't have to do anything to make sure
|
165
|
-
Imagery doesn't run.
|
166
|
-
|
167
|
-
### Extending Imagery
|
168
|
-
By making use of standard Ruby idioms, we can easily do lots with it.
|
169
|
-
Exensibility is addressed via Ruby modules for example:
|
170
|
-
|
171
|
-
class Imagery
|
172
|
-
module MogileStore
|
173
|
-
def self.included(base)
|
174
|
-
class << base
|
175
|
-
attr_accessor :mogile_config
|
176
|
-
end
|
177
|
-
end
|
178
|
-
|
179
|
-
def save(io)
|
180
|
-
if super
|
181
|
-
# do some mogie FS stuff here
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
def delete
|
186
|
-
super
|
187
|
-
# remove the mogile stuff here
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
# Now just include the module to use it.
|
193
|
-
class Imagery
|
194
|
-
include Imagery::MogileStore
|
195
|
-
self.mogile_config = { :foo => :bar }
|
196
|
-
end
|
197
|
-
|
198
|
-
|
199
|
-
### Note on Patches/Pull Requests
|
200
|
-
|
201
|
-
* Fork the project.
|
202
|
-
* Make your feature addition or bug fix.
|
203
|
-
* Add tests for it. This is important so I don't break it in a
|
204
|
-
future version unintentionally.
|
205
|
-
* Commit, do not mess with rakefile, version, or history.
|
206
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
207
|
-
* Send me a pull request. Bonus points for topic branches.
|
208
|
-
|
209
|
-
### Copyright
|
4
|
+
Simple image resizing module.
|
5
|
+
|
6
|
+
## Prerequisites
|
7
|
+
|
8
|
+
You should have graphicsmagick first:
|
9
|
+
|
10
|
+
```bash
|
11
|
+
# on debian based systems
|
12
|
+
$ sudo apt-get install graphicsmagick
|
13
|
+
|
14
|
+
# or maybe using homebrew
|
15
|
+
$ brew install graphicsmagick
|
16
|
+
```
|
17
|
+
|
18
|
+
## Installing
|
19
|
+
|
20
|
+
```bash
|
21
|
+
$ gem install imagery
|
22
|
+
```
|
23
|
+
|
24
|
+
## Usage
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
require 'imagery'
|
28
|
+
|
29
|
+
# - 48x48^ is the geometry string. This means we're resizing
|
30
|
+
# to a 48x48^ constrained image
|
31
|
+
# - 48x48 (second one) means we're cropping the image to an
|
32
|
+
# extent of 48x48 pixels.
|
33
|
+
i = Imagery.new(:photo, "1001", thumb: ["48x48^", "48x48"])
|
34
|
+
i.save(File.open('/some/path/to/image.jpg'))
|
35
|
+
|
36
|
+
File.exist?('public/photo/1001/thumb.jpg')
|
37
|
+
# => true
|
38
|
+
|
39
|
+
File.exist?('public/photo/1001/original.jpg')
|
40
|
+
# => true
|
41
|
+
```
|
42
|
+
|
43
|
+
## Advanced Usage (S3)
|
44
|
+
|
45
|
+
For cases where we want to use S3 for some and normal filesystem for others.
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
class S3Photo < Imagery
|
49
|
+
include Imagery::S3
|
50
|
+
|
51
|
+
s3_bucket "my-bucket"
|
52
|
+
end
|
53
|
+
|
54
|
+
# then maybe some other files are using cloudfront
|
55
|
+
class CloudfrontPhoto < Imagery
|
56
|
+
include Imagery::S3
|
57
|
+
|
58
|
+
s3_bucket "my-bucket"
|
59
|
+
s3_distribution_domain "assets.site.com"
|
60
|
+
end
|
61
|
+
|
62
|
+
# some might be using S3 EU, in which case you can specify the s3_host
|
63
|
+
class CustomS3Host < Imagery::Model
|
64
|
+
include Imagery::S3
|
65
|
+
s3_host "http://my.custom.host"
|
66
|
+
s3_bucket "my-bucket-name"
|
67
|
+
end
|
68
|
+
```
|
69
|
+
|
70
|
+
## Extending
|
71
|
+
|
72
|
+
You can check `Imagery::S3` to see an example of an extension.
|
73
|
+
|
74
|
+
## Copyright
|
210
75
|
|
211
76
|
Copyright (c) 2010 Cyril David. See LICENSE for details.
|
data/imagery.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "imagery"
|
3
|
-
s.version = "1.0.0
|
4
|
-
s.summary = "
|
3
|
+
s.version = "1.0.0"
|
4
|
+
s.summary = "Simple image resizing"
|
5
5
|
s.description = "Clean & light interface around GraphicsMagick."
|
6
6
|
s.authors = ["Cyril David"]
|
7
|
-
s.email = ["
|
7
|
+
s.email = ["cyx@cyx.is"]
|
8
8
|
s.homepage = "http://github.com/cyx/imagery"
|
9
9
|
|
10
10
|
s.files = Dir[
|
data/lib/imagery.rb
CHANGED
@@ -131,8 +131,9 @@ class Imagery
|
|
131
131
|
module GM
|
132
132
|
# -size tells GM to only read from a given dimension.
|
133
133
|
# -resize is the target dimension, and understands geometry strings.
|
134
|
-
# -quality we force it to
|
135
|
-
|
134
|
+
# -quality we force it to 90, which is a bit aggressive, but
|
135
|
+
# we want beautiful photos don't we? :-)
|
136
|
+
CONVERT = "gm convert -size '%s' '%s' -resize '%s' %s -quality 90 '%s'"
|
136
137
|
|
137
138
|
# 2 is the file descriptor for stderr, which `gm identify`
|
138
139
|
# happily chucks out information to, regardless if the image
|
data/makefile
CHANGED
File without changes
|
data/tests/{s3.rb → s3_test.rb}
RENAMED
@@ -20,7 +20,7 @@ end
|
|
20
20
|
|
21
21
|
test "changes url to an S3 hosted one" do
|
22
22
|
i = Imagery.new(:avatar)
|
23
|
-
|
23
|
+
|
24
24
|
expect = "http://s3.amazonaws.com/cdn.site.com/missing/avatar/original.jpg"
|
25
25
|
assert_equal expect, i.url
|
26
26
|
end
|
@@ -30,7 +30,7 @@ test "allows an s3_host override" do
|
|
30
30
|
Imagery.s3_host "https://foo.com"
|
31
31
|
|
32
32
|
i = Imagery.new(:avatar)
|
33
|
-
|
33
|
+
|
34
34
|
expect = "https://foo.com/cdn.site.com/missing/avatar/original.jpg"
|
35
35
|
assert_equal expect, i.url
|
36
36
|
ensure
|
@@ -41,7 +41,7 @@ end
|
|
41
41
|
test "allows a distribution domain for cloudfront hosted buckets" do
|
42
42
|
begin
|
43
43
|
Imagery.s3_distribution_domain "https://cdn.site.com"
|
44
|
-
|
44
|
+
|
45
45
|
i = Imagery.new(:avatar)
|
46
46
|
expect = "https://cdn.site.com/missing/avatar/original.jpg"
|
47
47
|
assert_equal expect, i.url
|
@@ -68,7 +68,7 @@ scope do
|
|
68
68
|
|
69
69
|
test "saves all sizes to S3" do |im, io|
|
70
70
|
im.save(io)
|
71
|
-
|
71
|
+
|
72
72
|
cmds = Imagery::S3::Gateway.commands
|
73
73
|
|
74
74
|
assert_equal [:store, "avatar/1001/original.jpg", "buck"], cmds.shift
|
@@ -80,7 +80,7 @@ scope do
|
|
80
80
|
|
81
81
|
test "doesn't delete when passing same id" do |im, io|
|
82
82
|
im.save(io, "1001")
|
83
|
-
|
83
|
+
|
84
84
|
cmds = Imagery::S3::Gateway.commands
|
85
85
|
|
86
86
|
assert_equal [:store, "avatar/1001/original.jpg", "buck"], cmds.shift
|
@@ -92,7 +92,7 @@ scope do
|
|
92
92
|
|
93
93
|
test "deletes when passing a different id" do |im, io|
|
94
94
|
im.save(io, "1002")
|
95
|
-
|
95
|
+
|
96
96
|
cmds = Imagery::S3::Gateway.commands
|
97
97
|
|
98
98
|
assert_equal [:delete, "avatar/1001/original.jpg", "buck"], cmds.shift
|
metadata
CHANGED
@@ -1,51 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imagery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
5
|
-
prerelease: 6
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Cyril David
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-09-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: cutest
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: aws-s3
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
description: Clean & light interface around GraphicsMagick.
|
47
42
|
email:
|
48
|
-
-
|
43
|
+
- cyx@cyx.is
|
49
44
|
executables: []
|
50
45
|
extensions: []
|
51
46
|
extra_rdoc_files: []
|
@@ -53,37 +48,33 @@ files:
|
|
53
48
|
- LICENSE
|
54
49
|
- README.markdown
|
55
50
|
- makefile
|
56
|
-
- lib/imagery/faking.rb
|
57
51
|
- lib/imagery/s3.rb
|
58
|
-
- lib/imagery/test.rb
|
59
52
|
- lib/imagery.rb
|
60
53
|
- imagery.gemspec
|
61
|
-
- tests/faking.rb
|
62
54
|
- tests/helper.rb
|
63
|
-
- tests/
|
64
|
-
- tests/
|
55
|
+
- tests/imagery_test.rb
|
56
|
+
- tests/s3_test.rb
|
65
57
|
homepage: http://github.com/cyx/imagery
|
66
58
|
licenses: []
|
59
|
+
metadata: {}
|
67
60
|
post_install_message:
|
68
61
|
rdoc_options: []
|
69
62
|
require_paths:
|
70
63
|
- lib
|
71
64
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
65
|
requirements:
|
74
|
-
- -
|
66
|
+
- - '>='
|
75
67
|
- !ruby/object:Gem::Version
|
76
68
|
version: '0'
|
77
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
-
none: false
|
79
70
|
requirements:
|
80
|
-
- -
|
71
|
+
- - '>='
|
81
72
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
73
|
+
version: '0'
|
83
74
|
requirements: []
|
84
75
|
rubyforge_project:
|
85
|
-
rubygems_version:
|
76
|
+
rubygems_version: 2.0.3
|
86
77
|
signing_key:
|
87
|
-
specification_version:
|
88
|
-
summary:
|
78
|
+
specification_version: 4
|
79
|
+
summary: Simple image resizing
|
89
80
|
test_files: []
|
data/lib/imagery/faking.rb
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
class Imagery
|
2
|
-
module Faking
|
3
|
-
def self.included(base)
|
4
|
-
base.extend ClassMethods
|
5
|
-
end
|
6
|
-
|
7
|
-
module ClassMethods
|
8
|
-
# Allows you to define the current mode. The only special value here is
|
9
|
-
# `:fake`. If the mode is :fake, then Imagery::Model#save and
|
10
|
-
# Imagery::Model#delete will not actually run.
|
11
|
-
#
|
12
|
-
# @example
|
13
|
-
#
|
14
|
-
# Photo = Class.new(Struct.new(:id))
|
15
|
-
#
|
16
|
-
# i = Imagery.new(Photo.new(1001))
|
17
|
-
# i.root = '/tmp'
|
18
|
-
#
|
19
|
-
# Imagery::Model.faked {
|
20
|
-
# assert i.save(File.open('/path/to/image.png'))
|
21
|
-
# }
|
22
|
-
#
|
23
|
-
# @see Imagery::Test
|
24
|
-
#
|
25
|
-
attr_accessor :mode
|
26
|
-
|
27
|
-
# Switches the current mode to :fake.
|
28
|
-
#
|
29
|
-
# @example
|
30
|
-
# Imagery::Model.mode == nil
|
31
|
-
# # => true
|
32
|
-
#
|
33
|
-
# Imagery::Model.faked {
|
34
|
-
# Imagery::Model.mode == :fake
|
35
|
-
# # => true
|
36
|
-
# }
|
37
|
-
#
|
38
|
-
# Imagery::Model.mode = nil
|
39
|
-
# # => true
|
40
|
-
#
|
41
|
-
def faked
|
42
|
-
@omode, @mode = @mode, :fake
|
43
|
-
yield
|
44
|
-
ensure
|
45
|
-
@mode = @omode
|
46
|
-
end
|
47
|
-
|
48
|
-
# Switches the current mode to nil. Useful for forcing real saves
|
49
|
-
# in your test.
|
50
|
-
#
|
51
|
-
# You should do this at least once in your project just to know
|
52
|
-
# that all your Imagery::Model#save and Imagery::Model#delete
|
53
|
-
# operations actually work.
|
54
|
-
#
|
55
|
-
# @example
|
56
|
-
# Imagery::Model.mode = :fake
|
57
|
-
#
|
58
|
-
# Imagery::Model.faked {
|
59
|
-
# Imagery::Model.mode == nil
|
60
|
-
# # => true
|
61
|
-
# }
|
62
|
-
#
|
63
|
-
# Imagery::Model.mode = :fake
|
64
|
-
# # => true
|
65
|
-
#
|
66
|
-
def real
|
67
|
-
@omode, @mode = @mode, nil
|
68
|
-
yield
|
69
|
-
ensure
|
70
|
-
@mode = @omode
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
# Implement the stubbed version of save and skips actual operation
|
75
|
-
# if Imagery::Model.mode == :fake
|
76
|
-
def save(io, key = nil)
|
77
|
-
return true if self.class.mode == :fake
|
78
|
-
|
79
|
-
super
|
80
|
-
end
|
81
|
-
|
82
|
-
# Implement the stubbed version of save and skips actual operation
|
83
|
-
# if Imagery::Model.mode == :fake
|
84
|
-
def delete
|
85
|
-
return true if self.class.mode == :fake
|
86
|
-
|
87
|
-
super
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
data/lib/imagery/test.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
class Imagery
|
2
|
-
module Test
|
3
|
-
def self.included(base)
|
4
|
-
Imagery.send :include, Imagery::Faking
|
5
|
-
Imagery.mode = :fake
|
6
|
-
end
|
7
|
-
|
8
|
-
protected
|
9
|
-
def imagery
|
10
|
-
if ENV["REAL_IMAGERY"]
|
11
|
-
Imagery.real { yield true }
|
12
|
-
else
|
13
|
-
Imagery.faked { yield false }
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
data/tests/faking.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
require File.expand_path("helper", File.dirname(__FILE__))
|
2
|
-
require "stringio"
|
3
|
-
|
4
|
-
# Imagery::Test hooks
|
5
|
-
scope do
|
6
|
-
setup do
|
7
|
-
Object.send :include, Imagery::Test
|
8
|
-
end
|
9
|
-
|
10
|
-
test "auto-includes Imagery::Faking upon inclusion" do
|
11
|
-
assert Imagery.ancestors.include?(Imagery::Faking)
|
12
|
-
end
|
13
|
-
|
14
|
-
test "auto-sets mode to :fake" do
|
15
|
-
assert_equal :fake, Imagery.mode
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
class Imagery
|
21
|
-
include Faking
|
22
|
-
end
|
23
|
-
|
24
|
-
test "skips saving when faked" do
|
25
|
-
Imagery.mode = :fake
|
26
|
-
|
27
|
-
i = Imagery.new(:avatar, "1001")
|
28
|
-
i.save(StringIO.new)
|
29
|
-
|
30
|
-
assert ! File.exist?(Imagery.root("avatar", "1001"))
|
31
|
-
end
|
32
|
-
|
33
|
-
test "skips deleting when faked" do
|
34
|
-
Imagery.mode = :fake
|
35
|
-
|
36
|
-
FileUtils.mkdir_p(Imagery.root("avatar", "1001"))
|
37
|
-
|
38
|
-
i = Imagery.new(:avatar, "1001")
|
39
|
-
i.delete
|
40
|
-
|
41
|
-
assert File.exist?(Imagery.root("avatar", "1001"))
|
42
|
-
end
|
43
|
-
|
44
|
-
# Imagery::Test
|
45
|
-
scope do
|
46
|
-
extend Imagery::Test
|
47
|
-
|
48
|
-
test "yields true when REAL_IMAGERY is set" do
|
49
|
-
ENV["REAL_IMAGERY"] = "true"
|
50
|
-
|
51
|
-
enabled = nil
|
52
|
-
|
53
|
-
imagery do |e|
|
54
|
-
enabled = e
|
55
|
-
end
|
56
|
-
|
57
|
-
assert enabled
|
58
|
-
end
|
59
|
-
|
60
|
-
test "yields false when REAL_IMAGERY is not set" do
|
61
|
-
ENV["REAL_IMAGERY"] = nil
|
62
|
-
|
63
|
-
enabled = nil
|
64
|
-
|
65
|
-
imagery do |e|
|
66
|
-
enabled = e
|
67
|
-
end
|
68
|
-
|
69
|
-
assert_equal false, enabled
|
70
|
-
end
|
71
|
-
end
|