dragonfly 0.9.15 → 1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of dragonfly might be problematic. Click here for more details.

Files changed (203) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -8
  3. data/.travis.yml +11 -0
  4. data/Gemfile +1 -0
  5. data/History.md +52 -2
  6. data/LICENSE +1 -1
  7. data/README.md +38 -95
  8. data/dev/grid.jpg +0 -0
  9. data/dev/irbrc.rb +27 -0
  10. data/dev/rails_template.rb +38 -0
  11. data/dev/test.ru +56 -0
  12. data/dev/test_rails +19 -0
  13. data/dragonfly.gemspec +3 -21
  14. data/lib/dragonfly.rb +45 -44
  15. data/lib/dragonfly/app.rb +175 -96
  16. data/lib/dragonfly/configurable.rb +71 -170
  17. data/lib/dragonfly/content.rb +211 -0
  18. data/lib/dragonfly/core_ext/object.rb +1 -6
  19. data/lib/dragonfly/file_data_store.rb +197 -0
  20. data/lib/dragonfly/image_magick/analysers/image_properties.rb +23 -0
  21. data/lib/dragonfly/image_magick/generators/convert.rb +19 -0
  22. data/lib/dragonfly/image_magick/generators/plain.rb +26 -0
  23. data/lib/dragonfly/image_magick/generators/plasma.rb +25 -0
  24. data/lib/dragonfly/image_magick/generators/text.rb +127 -0
  25. data/lib/dragonfly/image_magick/plugin.rb +83 -0
  26. data/lib/dragonfly/image_magick/processors/convert.rb +29 -0
  27. data/lib/dragonfly/image_magick/processors/encode.rb +18 -0
  28. data/lib/dragonfly/image_magick/processors/thumb.rb +76 -0
  29. data/lib/dragonfly/job.rb +118 -134
  30. data/lib/dragonfly/job_endpoint.rb +2 -0
  31. data/lib/dragonfly/memory_data_store.rb +34 -0
  32. data/lib/dragonfly/middleware.rb +5 -3
  33. data/lib/dragonfly/{active_model_extensions.rb → model.rb} +5 -3
  34. data/lib/dragonfly/{active_model_extensions → model}/attachment.rb +40 -35
  35. data/lib/dragonfly/{active_model_extensions → model}/attachment_class_methods.rb +36 -40
  36. data/lib/dragonfly/model/class_methods.rb +109 -0
  37. data/lib/dragonfly/{active_model_extensions → model}/instance_methods.rb +2 -2
  38. data/lib/dragonfly/{active_model_extensions → model}/validations.rb +17 -12
  39. data/lib/dragonfly/railtie.rb +8 -6
  40. data/lib/dragonfly/register.rb +27 -0
  41. data/lib/dragonfly/response.rb +47 -52
  42. data/lib/dragonfly/routed_endpoint.rb +4 -0
  43. data/lib/dragonfly/serializer.rb +15 -5
  44. data/lib/dragonfly/server.rb +56 -29
  45. data/lib/dragonfly/shell.rb +12 -23
  46. data/lib/dragonfly/spec/data_store_examples.rb +64 -0
  47. data/lib/dragonfly/temp_object.rb +32 -47
  48. data/lib/dragonfly/url_attributes.rb +19 -22
  49. data/lib/dragonfly/url_mapper.rb +3 -0
  50. data/lib/dragonfly/utils.rb +12 -0
  51. data/lib/dragonfly/version.rb +1 -1
  52. data/lib/dragonfly/whitelist.rb +19 -0
  53. data/lib/rails/generators/dragonfly/USAGE +8 -0
  54. data/lib/rails/generators/dragonfly/dragonfly_generator.rb +24 -0
  55. data/lib/rails/generators/dragonfly/templates/initializer.rb.erb +27 -0
  56. data/samples/gif.gif +0 -0
  57. data/spec/dragonfly/app_spec.rb +270 -64
  58. data/spec/dragonfly/configurable_spec.rb +142 -418
  59. data/spec/dragonfly/content_spec.rb +353 -0
  60. data/spec/dragonfly/cookie_monster_spec.rb +2 -1
  61. data/spec/dragonfly/file_data_store_spec.rb +301 -0
  62. data/spec/dragonfly/image_magick/analysers/image_properties_spec.rb +20 -0
  63. data/spec/dragonfly/image_magick/generators/convert_spec.rb +19 -0
  64. data/spec/dragonfly/image_magick/generators/plain_spec.rb +50 -0
  65. data/spec/dragonfly/image_magick/generators/plasma_spec.rb +32 -0
  66. data/spec/dragonfly/image_magick/generators/text_spec.rb +77 -0
  67. data/spec/dragonfly/image_magick/plugin_spec.rb +131 -0
  68. data/spec/dragonfly/image_magick/processors/convert_spec.rb +56 -0
  69. data/spec/dragonfly/image_magick/processors/thumb_spec.rb +173 -0
  70. data/spec/dragonfly/job_endpoint_spec.rb +30 -73
  71. data/spec/dragonfly/job_spec.rb +280 -608
  72. data/spec/dragonfly/memory_data_store_spec.rb +20 -0
  73. data/spec/dragonfly/middleware_spec.rb +47 -27
  74. data/spec/dragonfly/{active_model_extensions → model}/model_spec.rb +331 -555
  75. data/spec/dragonfly/model/validations_spec.rb +196 -0
  76. data/spec/dragonfly/register_spec.rb +35 -0
  77. data/spec/dragonfly/routed_endpoint_spec.rb +6 -6
  78. data/spec/dragonfly/serializer_spec.rb +13 -15
  79. data/spec/dragonfly/server_spec.rb +122 -46
  80. data/spec/dragonfly/shell_spec.rb +43 -24
  81. data/spec/dragonfly/temp_object_spec.rb +69 -94
  82. data/spec/dragonfly/url_attributes_spec.rb +49 -0
  83. data/spec/dragonfly/utils_spec.rb +32 -0
  84. data/spec/dragonfly/whitelist_spec.rb +30 -0
  85. data/spec/dragonfly_spec.rb +43 -0
  86. data/spec/fixtures/deprecated_stored_content/eggs.bonus +1 -0
  87. data/spec/fixtures/deprecated_stored_content/eggs.bonus.meta +1 -0
  88. data/spec/functional/configuration_spec.rb +19 -0
  89. data/spec/functional/model_urls_spec.rb +43 -41
  90. data/spec/functional/remote_on_the_fly_spec.rb +14 -16
  91. data/spec/functional/shell_commands_spec.rb +24 -14
  92. data/spec/functional/to_response_spec.rb +10 -10
  93. data/spec/functional/urls_spec.rb +5 -3
  94. data/spec/spec_helper.rb +23 -28
  95. data/spec/support/argument_matchers.rb +7 -8
  96. data/spec/support/image_matchers.rb +14 -36
  97. data/spec/support/model_helpers.rb +97 -0
  98. data/spec/support/simple_matchers.rb +12 -0
  99. metadata +92 -393
  100. data/.yardopts +0 -29
  101. data/Rakefile +0 -36
  102. data/config.ru +0 -14
  103. data/docs.watchr +0 -1
  104. data/extra_docs/Analysers.md +0 -68
  105. data/extra_docs/Caching.md +0 -23
  106. data/extra_docs/Configuration.md +0 -149
  107. data/extra_docs/Couch.md +0 -49
  108. data/extra_docs/DataStorage.md +0 -226
  109. data/extra_docs/Encoding.md +0 -67
  110. data/extra_docs/ExampleUseCases.md +0 -116
  111. data/extra_docs/GeneralUsage.md +0 -105
  112. data/extra_docs/Generators.md +0 -68
  113. data/extra_docs/Heroku.md +0 -50
  114. data/extra_docs/ImageMagick.md +0 -136
  115. data/extra_docs/Index.md +0 -33
  116. data/extra_docs/MimeTypes.md +0 -40
  117. data/extra_docs/Models.md +0 -441
  118. data/extra_docs/Mongo.md +0 -42
  119. data/extra_docs/Processing.md +0 -77
  120. data/extra_docs/Rack.md +0 -52
  121. data/extra_docs/Rails2.md +0 -57
  122. data/extra_docs/Rails3.md +0 -56
  123. data/extra_docs/ServingRemotely.md +0 -104
  124. data/extra_docs/Sinatra.md +0 -25
  125. data/extra_docs/URLs.md +0 -203
  126. data/features/images.feature +0 -47
  127. data/features/no_processing.feature +0 -14
  128. data/features/rails.feature +0 -8
  129. data/features/steps/common_steps.rb +0 -8
  130. data/features/steps/dragonfly_steps.rb +0 -66
  131. data/features/steps/rails_steps.rb +0 -40
  132. data/features/support/env.rb +0 -13
  133. data/features/support/setup.rb +0 -41
  134. data/fixtures/rails/files/app/models/album.rb +0 -6
  135. data/fixtures/rails/files/app/views/albums/new.html.erb +0 -7
  136. data/fixtures/rails/files/app/views/albums/show.html.erb +0 -6
  137. data/fixtures/rails/files/config/initializers/dragonfly.rb +0 -4
  138. data/fixtures/rails/files/features/manage_album_images.feature +0 -38
  139. data/fixtures/rails/files/features/step_definitions/helper_steps.rb +0 -7
  140. data/fixtures/rails/files/features/step_definitions/image_steps.rb +0 -25
  141. data/fixtures/rails/files/features/step_definitions/web_steps.rb +0 -189
  142. data/fixtures/rails/files/features/support/paths.rb +0 -17
  143. data/fixtures/rails/files/features/text_images.feature +0 -7
  144. data/fixtures/rails/template.rb +0 -20
  145. data/irbrc.rb +0 -19
  146. data/lib/dragonfly/active_model_extensions/class_methods.rb +0 -98
  147. data/lib/dragonfly/analyser.rb +0 -58
  148. data/lib/dragonfly/analysis/file_command_analyser.rb +0 -33
  149. data/lib/dragonfly/analysis/image_magick_analyser.rb +0 -6
  150. data/lib/dragonfly/config/heroku.rb +0 -26
  151. data/lib/dragonfly/config/image_magick.rb +0 -6
  152. data/lib/dragonfly/config/rails.rb +0 -20
  153. data/lib/dragonfly/data_storage.rb +0 -11
  154. data/lib/dragonfly/data_storage/couch_data_store.rb +0 -83
  155. data/lib/dragonfly/data_storage/file_data_store.rb +0 -144
  156. data/lib/dragonfly/data_storage/mongo_data_store.rb +0 -96
  157. data/lib/dragonfly/data_storage/s3data_store.rb +0 -168
  158. data/lib/dragonfly/encoder.rb +0 -13
  159. data/lib/dragonfly/encoding/image_magick_encoder.rb +0 -6
  160. data/lib/dragonfly/function_manager.rb +0 -67
  161. data/lib/dragonfly/generation/image_magick_generator.rb +0 -6
  162. data/lib/dragonfly/generator.rb +0 -9
  163. data/lib/dragonfly/image_magick/analyser.rb +0 -53
  164. data/lib/dragonfly/image_magick/config.rb +0 -44
  165. data/lib/dragonfly/image_magick/encoder.rb +0 -57
  166. data/lib/dragonfly/image_magick/generator.rb +0 -147
  167. data/lib/dragonfly/image_magick/processor.rb +0 -114
  168. data/lib/dragonfly/image_magick/utils.rb +0 -46
  169. data/lib/dragonfly/image_magick_utils.rb +0 -4
  170. data/lib/dragonfly/job_builder.rb +0 -39
  171. data/lib/dragonfly/job_definitions.rb +0 -30
  172. data/lib/dragonfly/loggable.rb +0 -28
  173. data/lib/dragonfly/processing/image_magick_processor.rb +0 -6
  174. data/lib/dragonfly/processor.rb +0 -9
  175. data/lib/dragonfly/rails/images.rb +0 -32
  176. data/lib/dragonfly/simple_cache.rb +0 -23
  177. data/spec/dragonfly/active_model_extensions/spec_helper.rb +0 -95
  178. data/spec/dragonfly/analyser_spec.rb +0 -123
  179. data/spec/dragonfly/analysis/file_command_analyser_spec.rb +0 -49
  180. data/spec/dragonfly/data_storage/couch_data_store_spec.rb +0 -84
  181. data/spec/dragonfly/data_storage/file_data_store_spec.rb +0 -308
  182. data/spec/dragonfly/data_storage/mongo_data_store_spec.rb +0 -81
  183. data/spec/dragonfly/data_storage/s3_data_store_spec.rb +0 -277
  184. data/spec/dragonfly/data_storage/shared_data_store_examples.rb +0 -77
  185. data/spec/dragonfly/function_manager_spec.rb +0 -154
  186. data/spec/dragonfly/image_magick/analyser_spec.rb +0 -73
  187. data/spec/dragonfly/image_magick/encoder_spec.rb +0 -46
  188. data/spec/dragonfly/image_magick/generator_spec.rb +0 -178
  189. data/spec/dragonfly/image_magick/processor_spec.rb +0 -293
  190. data/spec/dragonfly/job_builder_spec.rb +0 -37
  191. data/spec/dragonfly/job_definitions_spec.rb +0 -57
  192. data/spec/dragonfly/loggable_spec.rb +0 -80
  193. data/spec/dragonfly/simple_cache_spec.rb +0 -27
  194. data/spec/dragonfly/url_attributes.rb +0 -47
  195. data/spec/functional/deprecations_spec.rb +0 -51
  196. data/spec/functional/image_magick_app_spec.rb +0 -27
  197. data/spec/test_imagemagick.ru +0 -49
  198. data/yard/handlers/configurable_attr_handler.rb +0 -38
  199. data/yard/setup.rb +0 -15
  200. data/yard/templates/default/fulldoc/html/css/common.css +0 -109
  201. data/yard/templates/default/layout/html/layout.erb +0 -93
  202. data/yard/templates/default/module/html/configuration_summary.erb +0 -31
  203. data/yard/templates/default/module/setup.rb +0 -17
@@ -2,18 +2,17 @@ def string_matching(regexp)
2
2
  Spec::Mocks::ArgumentMatchers::RegexpMatcher.new(regexp)
3
3
  end
4
4
 
5
- class TempObjectArgumentMatcher
6
- def initialize(data, opts)
5
+ class ContentArgumentMatcher
6
+ def initialize(data)
7
7
  @data = data
8
- @opts = opts
9
8
  end
10
9
  def ==(actual)
11
- actual.is_a?(Dragonfly::TempObject) &&
12
- actual.data == @data &&
13
- @opts.all?{|k,v| actual.send(k) == v }
10
+ actual.is_a?(Dragonfly::Content) &&
11
+ actual.data == @data
14
12
  end
15
13
  end
16
14
 
17
- def a_temp_object_with_data(data, opts={})
18
- TempObjectArgumentMatcher.new(data, opts)
15
+ def content_with_data(data)
16
+ ContentArgumentMatcher.new(data)
19
17
  end
18
+
@@ -1,13 +1,6 @@
1
1
  def image_properties(image)
2
- if image.is_a?(Tempfile)
3
- tempfile = image
4
- else
5
- tempfile = Tempfile.new('image')
6
- tempfile.binmode
7
- tempfile.write(image.is_a?(Dragonfly::TempObject) ? image.data : image)
8
- tempfile.close
9
- end
10
- details = `identify #{tempfile.path}`
2
+ details = `identify #{image.path}`
3
+ raise "couldn't identify #{image.path} in image_properties" if details.empty?
11
4
  # example of details string:
12
5
  # myimage.png PNG 200x100 200x100+0+0 8-bit DirectClass 31.2kb
13
6
  filename, format, geometry, geometry_2, depth, image_class, size = details.split(' ')
@@ -15,44 +8,29 @@ def image_properties(image)
15
8
  {
16
9
  :filename => filename,
17
10
  :format => format.downcase,
18
- :width => width,
19
- :height => height,
11
+ :width => width.to_i,
12
+ :height => height.to_i,
20
13
  :depth => depth,
21
14
  :image_class => image_class,
22
- :size => size
15
+ :size => size.to_i
23
16
  }
24
17
  end
25
18
 
26
- RSpec::Matchers.define :have_width do |width|
27
- match do |given|
28
- width.should === image_properties(given)[:width].to_i
29
- end
30
- end
31
-
32
- RSpec::Matchers.define :have_height do |height|
33
- match do |given|
34
- height.should === image_properties(given)[:height].to_i
35
- end
36
- end
19
+ [:width, :height, :format, :size].each do |property|
37
20
 
38
- RSpec::Matchers.define :have_format do |format|
39
- match do |given|
40
- image_properties(given)[:format].should == format
21
+ RSpec::Matchers.define "have_#{property}" do |value|
22
+ match do |actual|
23
+ value.should === image_properties(actual)[property]
24
+ end
25
+ failure_message_for_should do |actual|
26
+ "expected image to have #{property} #{value.inspect}, but it had #{image_properties(actual)[property].inspect}"
27
+ end
41
28
  end
42
- end
43
29
 
44
- RSpec::Matchers.define :have_size do |size|
45
- match do |given|
46
- image_properties(given)[:size].should == size
47
- end
48
30
  end
49
31
 
50
32
  RSpec::Matchers.define :equal_image do |other|
51
33
  match do |given|
52
- image_data = given.open.read
53
- other_image_data = other.open.read
54
- given.close
55
- other.close
56
- image_data == other_image_data
34
+ given.data == other.data
57
35
  end
58
36
  end
@@ -0,0 +1,97 @@
1
+ require 'active_model'
2
+ require 'dragonfly/model/validations'
3
+
4
+ # Generic activemodel model
5
+ class MyModel
6
+
7
+ extend Dragonfly::Model
8
+
9
+ # Callbacks
10
+ extend ActiveModel::Callbacks
11
+ define_model_callbacks :save, :destroy
12
+
13
+ include ActiveModel::Dirty
14
+
15
+ class << self
16
+ attr_writer :attribute_names
17
+ def attribute_names
18
+ @attribute_names ||= (superclass.attribute_names if superclass.respond_to?(:attribute_names))
19
+ end
20
+
21
+ attr_accessor :name
22
+
23
+ def create!(attrs={})
24
+ new(attrs).save!
25
+ end
26
+
27
+ def find(id)
28
+ new(instances[id])
29
+ end
30
+
31
+ def instances
32
+ @instances ||= {}
33
+ end
34
+ end
35
+
36
+ def initialize(attrs={})
37
+ attrs.each do |key, value|
38
+ send("#{key}=", value)
39
+ end
40
+ end
41
+
42
+ attr_accessor :id
43
+
44
+ def to_hash
45
+ self.class.attribute_names.inject({}) do |hash, attr|
46
+ hash[attr] = send(attr)
47
+ hash
48
+ end
49
+ end
50
+
51
+ def save
52
+ run_save_callbacks {
53
+ self.id ||= rand(1000)
54
+ self.class.instances[id] = self.to_hash
55
+ }
56
+ end
57
+ def save!
58
+ save
59
+ self
60
+ end
61
+
62
+ def destroy
63
+ run_destroy_callbacks {}
64
+ end
65
+
66
+ private
67
+
68
+ def run_save_callbacks(&block)
69
+ if respond_to?(:run_callbacks) # Rails 4
70
+ run_callbacks :save, &block
71
+ else
72
+ _run_save_callbacks(&block)
73
+ end
74
+ end
75
+
76
+ def run_destroy_callbacks(&block)
77
+ if respond_to?(:run_callbacks) # Rails 4
78
+ run_callbacks :destroy, &block
79
+ else
80
+ _run_destroy_callbacks(&block)
81
+ end
82
+ end
83
+ end
84
+
85
+ module ModelHelpers
86
+ def new_model_class(name="TestModel", *attribute_names, &block)
87
+ klass = Class.new(MyModel) do
88
+ self.name = name
89
+ include ActiveModel::Validations # Doing this here because it needs 'name' to be set
90
+ self.attribute_names = attribute_names
91
+ define_attribute_methods attribute_names
92
+ attr_accessor *attribute_names
93
+ end
94
+ klass.class_eval(&block) if block
95
+ klass
96
+ end
97
+ end
@@ -51,3 +51,15 @@ RSpec::Matchers.define :be_a_text_response do
51
51
  given_response.content_type.should == 'text/plain'
52
52
  end
53
53
  end
54
+
55
+ RSpec::Matchers.define :have_keys do |*keys|
56
+ match do |given|
57
+ given.keys.map{|sym| sym.to_s }.sort == keys.map{|sym| sym.to_s }.sort
58
+ end
59
+ end
60
+
61
+ RSpec::Matchers.define :match_steps do |steps|
62
+ match do |given|
63
+ given.map{|step| step.class } == steps
64
+ end
65
+ end
metadata CHANGED
@@ -1,36 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dragonfly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.15
5
- prerelease:
4
+ version: '1.0'
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mark Evans
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-04 00:00:00.000000000 Z
11
+ date: 2013-11-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rack
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: :runtime
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: multi_json
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,175 +34,27 @@ dependencies:
38
34
  type: :runtime
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: '1.0'
46
41
  - !ruby/object:Gem::Dependency
47
- name: capybara
42
+ name: activemodel
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: cucumber
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: 1.2.1
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 1.2.1
78
- - !ruby/object:Gem::Dependency
79
- name: cucumber-rails
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ~>
84
- - !ruby/object:Gem::Version
85
- version: 1.3.0
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 1.3.0
94
- - !ruby/object:Gem::Dependency
95
- name: database_cleaner
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: fog
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
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
- none: false
122
- requirements:
123
- - - ! '>='
124
- - !ruby/object:Gem::Version
125
- version: '0'
126
- - !ruby/object:Gem::Dependency
127
- name: github-markup
128
- requirement: !ruby/object:Gem::Requirement
129
- none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
- - !ruby/object:Gem::Dependency
143
- name: mongo
144
- requirement: !ruby/object:Gem::Requirement
145
- none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
149
- version: '0'
150
- type: :development
151
- prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
158
- - !ruby/object:Gem::Dependency
159
- name: couchrest
160
- requirement: !ruby/object:Gem::Requirement
161
- none: false
162
- requirements:
163
- - - ~>
164
- - !ruby/object:Gem::Version
165
- version: '1.0'
166
- type: :development
167
- prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
- requirements:
171
- - - ~>
172
- - !ruby/object:Gem::Version
173
- version: '1.0'
174
- - !ruby/object:Gem::Dependency
175
- name: rack-cache
176
- requirement: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ! '>='
180
- - !ruby/object:Gem::Version
181
- version: '0'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
- requirements:
187
- - - ! '>='
188
- - !ruby/object:Gem::Version
189
- version: '0'
190
- - !ruby/object:Gem::Dependency
191
- name: rails
192
- requirement: !ruby/object:Gem::Requirement
193
- none: false
194
- requirements:
195
- - - ~>
196
- - !ruby/object:Gem::Version
197
- version: 3.2.0
198
- type: :development
199
- prerelease: false
200
- version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
- requirements:
203
- - - ~>
204
- - !ruby/object:Gem::Version
205
- version: 3.2.0
206
55
  - !ruby/object:Gem::Dependency
207
56
  name: rspec
208
57
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
58
  requirements:
211
59
  - - ~>
212
60
  - !ruby/object:Gem::Version
@@ -214,7 +62,6 @@ dependencies:
214
62
  type: :development
215
63
  prerelease: false
216
64
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
65
  requirements:
219
66
  - - ~>
220
67
  - !ruby/object:Gem::Version
@@ -222,102 +69,20 @@ dependencies:
222
69
  - !ruby/object:Gem::Dependency
223
70
  name: webmock
224
71
  requirement: !ruby/object:Gem::Requirement
225
- none: false
226
- requirements:
227
- - - ! '>='
228
- - !ruby/object:Gem::Version
229
- version: '0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- none: false
234
- requirements:
235
- - - ! '>='
236
- - !ruby/object:Gem::Version
237
- version: '0'
238
- - !ruby/object:Gem::Dependency
239
- name: yard
240
- requirement: !ruby/object:Gem::Requirement
241
- none: false
242
- requirements:
243
- - - ! '>='
244
- - !ruby/object:Gem::Version
245
- version: '0'
246
- type: :development
247
- prerelease: false
248
- version_requirements: !ruby/object:Gem::Requirement
249
- none: false
250
- requirements:
251
- - - ! '>='
252
- - !ruby/object:Gem::Version
253
- version: '0'
254
- - !ruby/object:Gem::Dependency
255
- name: redcarpet
256
- requirement: !ruby/object:Gem::Requirement
257
- none: false
258
- requirements:
259
- - - ~>
260
- - !ruby/object:Gem::Version
261
- version: '1.0'
262
- type: :development
263
- prerelease: false
264
- version_requirements: !ruby/object:Gem::Requirement
265
- none: false
266
- requirements:
267
- - - ~>
268
- - !ruby/object:Gem::Version
269
- version: '1.0'
270
- - !ruby/object:Gem::Dependency
271
- name: bluecloth
272
- requirement: !ruby/object:Gem::Requirement
273
- none: false
274
- requirements:
275
- - - ! '>='
276
- - !ruby/object:Gem::Version
277
- version: '0'
278
- type: :development
279
- prerelease: false
280
- version_requirements: !ruby/object:Gem::Requirement
281
- none: false
282
- requirements:
283
- - - ! '>='
284
- - !ruby/object:Gem::Version
285
- version: '0'
286
- - !ruby/object:Gem::Dependency
287
- name: bson_ext
288
- requirement: !ruby/object:Gem::Requirement
289
- none: false
290
- requirements:
291
- - - ! '>='
292
- - !ruby/object:Gem::Version
293
- version: '0'
294
- type: :development
295
- prerelease: false
296
- version_requirements: !ruby/object:Gem::Requirement
297
- none: false
298
- requirements:
299
- - - ! '>='
300
- - !ruby/object:Gem::Version
301
- version: '0'
302
- - !ruby/object:Gem::Dependency
303
- name: sqlite3
304
- requirement: !ruby/object:Gem::Requirement
305
- none: false
306
72
  requirements:
307
- - - ! '>='
73
+ - - '>='
308
74
  - !ruby/object:Gem::Version
309
75
  version: '0'
310
76
  type: :development
311
77
  prerelease: false
312
78
  version_requirements: !ruby/object:Gem::Requirement
313
- none: false
314
79
  requirements:
315
- - - ! '>='
80
+ - - '>='
316
81
  - !ruby/object:Gem::Version
317
82
  version: '0'
318
- description: ! "Dragonfly is a framework that enables on-the-fly processing for any
319
- content type.\n It is especially suited to image handling. Its uses range from
320
- image thumbnails to standard attachments to on-demand text generation."
83
+ description: |-
84
+ Dragonfly is a framework that enables on-the-fly processing for any content type.
85
+ It is especially suited to image handling. Its uses range from image thumbnails to standard attachments to on-demand text generation.
321
86
  email: mark@new-bamboo.co.uk
322
87
  executables: []
323
88
  extensions: []
@@ -327,162 +92,111 @@ extra_rdoc_files:
327
92
  files:
328
93
  - .gitignore
329
94
  - .rspec
330
- - .yardopts
95
+ - .travis.yml
331
96
  - Gemfile
332
97
  - History.md
333
98
  - LICENSE
334
99
  - README.md
335
- - Rakefile
336
- - config.ru
337
- - docs.watchr
100
+ - dev/grid.jpg
101
+ - dev/irbrc.rb
102
+ - dev/rails_template.rb
103
+ - dev/test.ru
104
+ - dev/test_rails
338
105
  - dragonfly.gemspec
339
- - extra_docs/Analysers.md
340
- - extra_docs/Caching.md
341
- - extra_docs/Configuration.md
342
- - extra_docs/Couch.md
343
- - extra_docs/DataStorage.md
344
- - extra_docs/Encoding.md
345
- - extra_docs/ExampleUseCases.md
346
- - extra_docs/GeneralUsage.md
347
- - extra_docs/Generators.md
348
- - extra_docs/Heroku.md
349
- - extra_docs/ImageMagick.md
350
- - extra_docs/Index.md
351
- - extra_docs/MimeTypes.md
352
- - extra_docs/Models.md
353
- - extra_docs/Mongo.md
354
- - extra_docs/Processing.md
355
- - extra_docs/Rack.md
356
- - extra_docs/Rails2.md
357
- - extra_docs/Rails3.md
358
- - extra_docs/ServingRemotely.md
359
- - extra_docs/Sinatra.md
360
- - extra_docs/URLs.md
361
- - features/images.feature
362
- - features/no_processing.feature
363
- - features/rails.feature
364
- - features/steps/common_steps.rb
365
- - features/steps/dragonfly_steps.rb
366
- - features/steps/rails_steps.rb
367
- - features/support/env.rb
368
- - features/support/setup.rb
369
- - fixtures/rails/files/app/models/album.rb
370
- - fixtures/rails/files/app/views/albums/new.html.erb
371
- - fixtures/rails/files/app/views/albums/show.html.erb
372
- - fixtures/rails/files/config/initializers/dragonfly.rb
373
- - fixtures/rails/files/features/manage_album_images.feature
374
- - fixtures/rails/files/features/step_definitions/helper_steps.rb
375
- - fixtures/rails/files/features/step_definitions/image_steps.rb
376
- - fixtures/rails/files/features/step_definitions/web_steps.rb
377
- - fixtures/rails/files/features/support/paths.rb
378
- - fixtures/rails/files/features/text_images.feature
379
- - fixtures/rails/template.rb
380
- - irbrc.rb
381
106
  - lib/dragonfly.rb
382
- - lib/dragonfly/active_model_extensions.rb
383
- - lib/dragonfly/active_model_extensions/attachment.rb
384
- - lib/dragonfly/active_model_extensions/attachment_class_methods.rb
385
- - lib/dragonfly/active_model_extensions/class_methods.rb
386
- - lib/dragonfly/active_model_extensions/instance_methods.rb
387
- - lib/dragonfly/active_model_extensions/validations.rb
388
- - lib/dragonfly/analyser.rb
389
- - lib/dragonfly/analysis/file_command_analyser.rb
390
- - lib/dragonfly/analysis/image_magick_analyser.rb
391
107
  - lib/dragonfly/app.rb
392
- - lib/dragonfly/config/heroku.rb
393
- - lib/dragonfly/config/image_magick.rb
394
- - lib/dragonfly/config/rails.rb
395
108
  - lib/dragonfly/configurable.rb
109
+ - lib/dragonfly/content.rb
396
110
  - lib/dragonfly/cookie_monster.rb
397
111
  - lib/dragonfly/core_ext/array.rb
398
112
  - lib/dragonfly/core_ext/hash.rb
399
113
  - lib/dragonfly/core_ext/object.rb
400
- - lib/dragonfly/data_storage.rb
401
- - lib/dragonfly/data_storage/couch_data_store.rb
402
- - lib/dragonfly/data_storage/file_data_store.rb
403
- - lib/dragonfly/data_storage/mongo_data_store.rb
404
- - lib/dragonfly/data_storage/s3data_store.rb
405
- - lib/dragonfly/encoder.rb
406
- - lib/dragonfly/encoding/image_magick_encoder.rb
407
- - lib/dragonfly/function_manager.rb
408
- - lib/dragonfly/generation/image_magick_generator.rb
409
- - lib/dragonfly/generator.rb
114
+ - lib/dragonfly/file_data_store.rb
410
115
  - lib/dragonfly/has_filename.rb
411
116
  - lib/dragonfly/hash_with_css_style_keys.rb
412
- - lib/dragonfly/image_magick/analyser.rb
413
- - lib/dragonfly/image_magick/config.rb
414
- - lib/dragonfly/image_magick/encoder.rb
415
- - lib/dragonfly/image_magick/generator.rb
416
- - lib/dragonfly/image_magick/processor.rb
417
- - lib/dragonfly/image_magick/utils.rb
418
- - lib/dragonfly/image_magick_utils.rb
117
+ - lib/dragonfly/image_magick/analysers/image_properties.rb
118
+ - lib/dragonfly/image_magick/generators/convert.rb
119
+ - lib/dragonfly/image_magick/generators/plain.rb
120
+ - lib/dragonfly/image_magick/generators/plasma.rb
121
+ - lib/dragonfly/image_magick/generators/text.rb
122
+ - lib/dragonfly/image_magick/plugin.rb
123
+ - lib/dragonfly/image_magick/processors/convert.rb
124
+ - lib/dragonfly/image_magick/processors/encode.rb
125
+ - lib/dragonfly/image_magick/processors/thumb.rb
419
126
  - lib/dragonfly/job.rb
420
- - lib/dragonfly/job_builder.rb
421
- - lib/dragonfly/job_definitions.rb
422
127
  - lib/dragonfly/job_endpoint.rb
423
- - lib/dragonfly/loggable.rb
128
+ - lib/dragonfly/memory_data_store.rb
424
129
  - lib/dragonfly/middleware.rb
425
- - lib/dragonfly/processing/image_magick_processor.rb
426
- - lib/dragonfly/processor.rb
427
- - lib/dragonfly/rails/images.rb
130
+ - lib/dragonfly/model.rb
131
+ - lib/dragonfly/model/attachment.rb
132
+ - lib/dragonfly/model/attachment_class_methods.rb
133
+ - lib/dragonfly/model/class_methods.rb
134
+ - lib/dragonfly/model/instance_methods.rb
135
+ - lib/dragonfly/model/validations.rb
428
136
  - lib/dragonfly/railtie.rb
137
+ - lib/dragonfly/register.rb
429
138
  - lib/dragonfly/response.rb
430
139
  - lib/dragonfly/routed_endpoint.rb
431
140
  - lib/dragonfly/serializer.rb
432
141
  - lib/dragonfly/server.rb
433
142
  - lib/dragonfly/shell.rb
434
- - lib/dragonfly/simple_cache.rb
143
+ - lib/dragonfly/spec/data_store_examples.rb
435
144
  - lib/dragonfly/temp_object.rb
436
145
  - lib/dragonfly/url_attributes.rb
437
146
  - lib/dragonfly/url_mapper.rb
438
147
  - lib/dragonfly/utils.rb
439
148
  - lib/dragonfly/version.rb
149
+ - lib/dragonfly/whitelist.rb
150
+ - lib/rails/generators/dragonfly/USAGE
151
+ - lib/rails/generators/dragonfly/dragonfly_generator.rb
152
+ - lib/rails/generators/dragonfly/templates/initializer.rb.erb
440
153
  - samples/DSC02119.JPG
441
154
  - samples/a.jp2
442
155
  - samples/beach.jpg
443
156
  - samples/beach.png
444
157
  - samples/egg.png
158
+ - samples/gif.gif
445
159
  - samples/round.gif
446
160
  - samples/sample.docx
447
161
  - samples/taj.jpg
448
162
  - samples/white pixel.png
449
- - spec/dragonfly/active_model_extensions/model_spec.rb
450
- - spec/dragonfly/active_model_extensions/spec_helper.rb
451
- - spec/dragonfly/analyser_spec.rb
452
- - spec/dragonfly/analysis/file_command_analyser_spec.rb
453
163
  - spec/dragonfly/app_spec.rb
454
164
  - spec/dragonfly/configurable_spec.rb
165
+ - spec/dragonfly/content_spec.rb
455
166
  - spec/dragonfly/cookie_monster_spec.rb
456
167
  - spec/dragonfly/core_ext/array_spec.rb
457
168
  - spec/dragonfly/core_ext/hash_spec.rb
458
- - spec/dragonfly/data_storage/couch_data_store_spec.rb
459
- - spec/dragonfly/data_storage/file_data_store_spec.rb
460
- - spec/dragonfly/data_storage/mongo_data_store_spec.rb
461
- - spec/dragonfly/data_storage/s3_data_store_spec.rb
462
- - spec/dragonfly/data_storage/shared_data_store_examples.rb
463
- - spec/dragonfly/function_manager_spec.rb
169
+ - spec/dragonfly/file_data_store_spec.rb
464
170
  - spec/dragonfly/has_filename_spec.rb
465
171
  - spec/dragonfly/hash_with_css_style_keys_spec.rb
466
- - spec/dragonfly/image_magick/analyser_spec.rb
467
- - spec/dragonfly/image_magick/encoder_spec.rb
468
- - spec/dragonfly/image_magick/generator_spec.rb
469
- - spec/dragonfly/image_magick/processor_spec.rb
470
- - spec/dragonfly/job_builder_spec.rb
471
- - spec/dragonfly/job_definitions_spec.rb
172
+ - spec/dragonfly/image_magick/analysers/image_properties_spec.rb
173
+ - spec/dragonfly/image_magick/generators/convert_spec.rb
174
+ - spec/dragonfly/image_magick/generators/plain_spec.rb
175
+ - spec/dragonfly/image_magick/generators/plasma_spec.rb
176
+ - spec/dragonfly/image_magick/generators/text_spec.rb
177
+ - spec/dragonfly/image_magick/plugin_spec.rb
178
+ - spec/dragonfly/image_magick/processors/convert_spec.rb
179
+ - spec/dragonfly/image_magick/processors/thumb_spec.rb
472
180
  - spec/dragonfly/job_endpoint_spec.rb
473
181
  - spec/dragonfly/job_spec.rb
474
- - spec/dragonfly/loggable_spec.rb
182
+ - spec/dragonfly/memory_data_store_spec.rb
475
183
  - spec/dragonfly/middleware_spec.rb
184
+ - spec/dragonfly/model/model_spec.rb
185
+ - spec/dragonfly/model/validations_spec.rb
186
+ - spec/dragonfly/register_spec.rb
476
187
  - spec/dragonfly/routed_endpoint_spec.rb
477
188
  - spec/dragonfly/serializer_spec.rb
478
189
  - spec/dragonfly/server_spec.rb
479
190
  - spec/dragonfly/shell_spec.rb
480
- - spec/dragonfly/simple_cache_spec.rb
481
191
  - spec/dragonfly/temp_object_spec.rb
482
- - spec/dragonfly/url_attributes.rb
192
+ - spec/dragonfly/url_attributes_spec.rb
483
193
  - spec/dragonfly/url_mapper_spec.rb
484
- - spec/functional/deprecations_spec.rb
485
- - spec/functional/image_magick_app_spec.rb
194
+ - spec/dragonfly/utils_spec.rb
195
+ - spec/dragonfly/whitelist_spec.rb
196
+ - spec/dragonfly_spec.rb
197
+ - spec/fixtures/deprecated_stored_content/eggs.bonus
198
+ - spec/fixtures/deprecated_stored_content/eggs.bonus.meta
199
+ - spec/functional/configuration_spec.rb
486
200
  - spec/functional/model_urls_spec.rb
487
201
  - spec/functional/remote_on_the_fly_spec.rb
488
202
  - spec/functional/shell_commands_spec.rb
@@ -491,86 +205,71 @@ files:
491
205
  - spec/spec_helper.rb
492
206
  - spec/support/argument_matchers.rb
493
207
  - spec/support/image_matchers.rb
208
+ - spec/support/model_helpers.rb
494
209
  - spec/support/simple_matchers.rb
495
- - spec/test_imagemagick.ru
496
210
  - tmp/.gitignore
497
- - yard/handlers/configurable_attr_handler.rb
498
- - yard/setup.rb
499
- - yard/templates/default/fulldoc/html/css/common.css
500
- - yard/templates/default/layout/html/layout.erb
501
- - yard/templates/default/module/html/configuration_summary.erb
502
- - yard/templates/default/module/setup.rb
503
211
  homepage: http://github.com/markevans/dragonfly
504
212
  licenses:
505
213
  - MIT
214
+ metadata: {}
506
215
  post_install_message:
507
216
  rdoc_options: []
508
217
  require_paths:
509
218
  - lib
510
219
  required_ruby_version: !ruby/object:Gem::Requirement
511
- none: false
512
220
  requirements:
513
- - - ! '>='
221
+ - - '>='
514
222
  - !ruby/object:Gem::Version
515
223
  version: '0'
516
224
  required_rubygems_version: !ruby/object:Gem::Requirement
517
- none: false
518
225
  requirements:
519
- - - ! '>='
226
+ - - '>='
520
227
  - !ruby/object:Gem::Version
521
228
  version: '0'
522
229
  requirements: []
523
230
  rubyforge_project:
524
- rubygems_version: 1.8.24
231
+ rubygems_version: 2.0.0
525
232
  signing_key:
526
- specification_version: 3
233
+ specification_version: 4
527
234
  summary: Ideal gem for handling attachments in Rails, Sinatra and Rack applications.
528
235
  test_files:
529
- - features/images.feature
530
- - features/no_processing.feature
531
- - features/rails.feature
532
- - features/steps/common_steps.rb
533
- - features/steps/dragonfly_steps.rb
534
- - features/steps/rails_steps.rb
535
- - features/support/env.rb
536
- - features/support/setup.rb
537
- - spec/dragonfly/active_model_extensions/model_spec.rb
538
- - spec/dragonfly/active_model_extensions/spec_helper.rb
539
- - spec/dragonfly/analyser_spec.rb
540
- - spec/dragonfly/analysis/file_command_analyser_spec.rb
541
236
  - spec/dragonfly/app_spec.rb
542
237
  - spec/dragonfly/configurable_spec.rb
238
+ - spec/dragonfly/content_spec.rb
543
239
  - spec/dragonfly/cookie_monster_spec.rb
544
240
  - spec/dragonfly/core_ext/array_spec.rb
545
241
  - spec/dragonfly/core_ext/hash_spec.rb
546
- - spec/dragonfly/data_storage/couch_data_store_spec.rb
547
- - spec/dragonfly/data_storage/file_data_store_spec.rb
548
- - spec/dragonfly/data_storage/mongo_data_store_spec.rb
549
- - spec/dragonfly/data_storage/s3_data_store_spec.rb
550
- - spec/dragonfly/data_storage/shared_data_store_examples.rb
551
- - spec/dragonfly/function_manager_spec.rb
242
+ - spec/dragonfly/file_data_store_spec.rb
552
243
  - spec/dragonfly/has_filename_spec.rb
553
244
  - spec/dragonfly/hash_with_css_style_keys_spec.rb
554
- - spec/dragonfly/image_magick/analyser_spec.rb
555
- - spec/dragonfly/image_magick/encoder_spec.rb
556
- - spec/dragonfly/image_magick/generator_spec.rb
557
- - spec/dragonfly/image_magick/processor_spec.rb
558
- - spec/dragonfly/job_builder_spec.rb
559
- - spec/dragonfly/job_definitions_spec.rb
245
+ - spec/dragonfly/image_magick/analysers/image_properties_spec.rb
246
+ - spec/dragonfly/image_magick/generators/convert_spec.rb
247
+ - spec/dragonfly/image_magick/generators/plain_spec.rb
248
+ - spec/dragonfly/image_magick/generators/plasma_spec.rb
249
+ - spec/dragonfly/image_magick/generators/text_spec.rb
250
+ - spec/dragonfly/image_magick/plugin_spec.rb
251
+ - spec/dragonfly/image_magick/processors/convert_spec.rb
252
+ - spec/dragonfly/image_magick/processors/thumb_spec.rb
560
253
  - spec/dragonfly/job_endpoint_spec.rb
561
254
  - spec/dragonfly/job_spec.rb
562
- - spec/dragonfly/loggable_spec.rb
255
+ - spec/dragonfly/memory_data_store_spec.rb
563
256
  - spec/dragonfly/middleware_spec.rb
257
+ - spec/dragonfly/model/model_spec.rb
258
+ - spec/dragonfly/model/validations_spec.rb
259
+ - spec/dragonfly/register_spec.rb
564
260
  - spec/dragonfly/routed_endpoint_spec.rb
565
261
  - spec/dragonfly/serializer_spec.rb
566
262
  - spec/dragonfly/server_spec.rb
567
263
  - spec/dragonfly/shell_spec.rb
568
- - spec/dragonfly/simple_cache_spec.rb
569
264
  - spec/dragonfly/temp_object_spec.rb
570
- - spec/dragonfly/url_attributes.rb
265
+ - spec/dragonfly/url_attributes_spec.rb
571
266
  - spec/dragonfly/url_mapper_spec.rb
572
- - spec/functional/deprecations_spec.rb
573
- - spec/functional/image_magick_app_spec.rb
267
+ - spec/dragonfly/utils_spec.rb
268
+ - spec/dragonfly/whitelist_spec.rb
269
+ - spec/dragonfly_spec.rb
270
+ - spec/fixtures/deprecated_stored_content/eggs.bonus
271
+ - spec/fixtures/deprecated_stored_content/eggs.bonus.meta
272
+ - spec/functional/configuration_spec.rb
574
273
  - spec/functional/model_urls_spec.rb
575
274
  - spec/functional/remote_on_the_fly_spec.rb
576
275
  - spec/functional/shell_commands_spec.rb
@@ -579,6 +278,6 @@ test_files:
579
278
  - spec/spec_helper.rb
580
279
  - spec/support/argument_matchers.rb
581
280
  - spec/support/image_matchers.rb
281
+ - spec/support/model_helpers.rb
582
282
  - spec/support/simple_matchers.rb
583
- - spec/test_imagemagick.ru
584
283
  has_rdoc: