mongoid-grid_fs 2.3.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- require "mongoid/grid_fs"
1
+ require 'mongoid/grid_fs'
data/test/helper.rb CHANGED
@@ -1,5 +1,3 @@
1
- # -*- encoding : utf-8 -*-
2
-
3
1
  require 'rails'
4
2
  require 'stringio'
5
3
 
@@ -22,6 +20,4 @@ end
22
20
  Mongo::Logger.logger.level = Logger::INFO if defined?(Mongo) == 'constant'
23
21
 
24
22
  # Avoid annoying deprecation warning
25
- if I18n.respond_to?(:enforce_available_locales=)
26
- I18n.enforce_available_locales = false
27
- end
23
+ I18n.enforce_available_locales = false if I18n.respond_to?(:enforce_available_locales=)
@@ -1,8 +1,8 @@
1
1
  require_relative 'helper'
2
2
 
3
- Testing Mongoid::GridFs do
4
- ##
5
- #
3
+ _testing Mongoid::GridFs do
4
+ ##
5
+ #
6
6
  GridFs = Mongoid::GridFs
7
7
 
8
8
  prepare do
@@ -10,239 +10,228 @@ Testing Mongoid::GridFs do
10
10
  GridFs::Chunk.delete_all
11
11
  end
12
12
 
13
- ##
14
- #
13
+ ##
14
+ #
15
15
  context '#put' do
16
-
17
16
  test 'default' do
18
17
  filename = __FILE__
19
18
  basename = File.basename(filename)
20
19
 
21
- g = assert{ GridFs.put(filename) }
20
+ g = assert { GridFs.put(filename) }
22
21
 
23
- assert{ g.filename =~ %r| #{ object_id_re } / #{ basename } \Z|imox }
24
- assert{ g.content_type == "application/x-ruby" }
25
- assert{ g.data == IO.read(filename) }
22
+ assert { g.filename =~ %r{ #{ object_id_re } / #{ basename } \Z}imox }
23
+ assert { g.content_type == 'application/x-ruby' }
24
+ assert { g.data == IO.read(filename) }
26
25
  end
27
26
 
28
27
  test 'with a :filename' do
29
28
  filename = 'path/info/a.rb'
30
29
 
31
- g = assert{ GridFs.put(__FILE__, :filename => filename) }
30
+ g = assert { GridFs.put(__FILE__, filename: filename) }
32
31
 
33
- assert{ g.filename == filename }
32
+ assert { g.filename == filename }
34
33
  end
35
34
 
36
35
  test 'with your own attributes' do
37
- my_value = "my_value"
36
+ my_value = 'my_value'
38
37
 
39
- g = assert{ GridFs.put(__FILE__, :my_value => my_value) }
38
+ g = assert { GridFs.put(__FILE__, my_value: my_value) }
40
39
 
41
- assert{ g.my_value == my_value }
40
+ assert { g.my_value == my_value }
42
41
  end
43
42
 
44
43
  test 'when error occurs (eg. missing file)' do
45
44
  file = '/path/to/missing'
46
45
 
47
- assert_raises(Errno::ENOENT){ GridFs.put(file) }
46
+ assert_raises(Errno::ENOENT) { GridFs.put(file) }
48
47
  end
49
-
50
48
  end
51
49
 
52
-
53
- ##
54
- #
50
+ ##
51
+ #
55
52
  context '#get' do
56
-
57
53
  test 'default' do
58
- id = assert{ GridFs::File.last.id }
59
- g = assert{ GridFs.get(id) }
54
+ id = assert { GridFs::File.last.id }
55
+ assert { GridFs.get(id) }
60
56
  end
61
-
62
57
  end
63
58
 
64
- ##
65
- #
59
+ ##
60
+ #
66
61
  context '#delete' do
67
-
68
62
  test 'default' do
69
- id = assert{ GridFs::File.last.id }
70
- g = assert{ GridFs.get(id) }
71
- assert{ GridFs.delete(id) }
72
- assert_raises(Mongoid::Errors::DocumentNotFound){ GridFs.get(id) }
63
+ id = assert { GridFs::File.last.id }
64
+ assert { GridFs.get(id) }
65
+ assert { GridFs.delete(id) }
66
+ assert_raises(Mongoid::Errors::DocumentNotFound) { GridFs.get(id) }
73
67
  end
74
-
75
68
  end
76
69
 
77
- ##
78
- #
70
+ ##
71
+ #
79
72
  context '[] and []=' do
80
-
81
73
  test 'default' do
82
74
  path = 'a.rb'
83
75
  data = IO.read(__FILE__)
84
76
 
85
77
  sio = SIO.new(path, data)
86
78
 
87
- g = assert{ GridFs[path] = sio and GridFs[path] }
79
+ g = assert { (GridFs[path] = sio) && GridFs[path] }
88
80
 
89
- assert{ g.data == data }
90
- assert{ g.content_type == "application/x-ruby" }
81
+ assert { g.data == data }
82
+ assert { g.content_type == 'application/x-ruby' }
91
83
 
92
84
  before = GridFs::File.count
93
85
 
94
- data = "#{ Time.now.to_f }-#{ rand }"
86
+ data = "#{Time.now.to_f}-#{rand}"
95
87
 
96
- assert{ GridFs[path] = SIO.new(path, data) }
97
- assert{ GridFs[path].data == data }
88
+ assert { GridFs[path] = SIO.new(path, data) }
89
+ assert { GridFs[path].data == data }
98
90
 
99
91
  after = GridFs::File.count
100
92
 
101
93
  created = after - before
102
94
 
103
- assert{ created == 1 }
95
+ assert { created == 1 }
104
96
  end
105
97
 
106
- ##
107
- #
108
- context 'data uris' do
109
-
110
- test 'default' do
111
- id = assert{ GridFs::File.last.id }
112
- g = assert{ GridFs.get(id) }
98
+ ##
99
+ #
100
+ context 'data uris' do
101
+ test 'default' do
102
+ id = assert { GridFs::File.last.id }
103
+ g = assert { GridFs.get(id) }
113
104
 
114
- content_type = g.content_type
115
- base64 = [g.to_s].pack('m').chomp
105
+ content_type = g.content_type
106
+ base64 = [g.to_s].pack('m').chomp
116
107
 
117
- data_uri = "data:#{ content_type };base64,".concat(base64)
108
+ data_uri = "data:#{content_type};base64,".concat(base64)
118
109
 
119
- assert{ g.data_uri == data_uri }
110
+ assert { g.data_uri == data_uri }
111
+ end
120
112
  end
121
113
 
122
- end
123
-
124
- ##
125
- #
126
- context 'slicing and dicing' do
127
-
128
- test 'range' do
129
- id = assert { GridFs::File.last.id }
130
- g = assert { GridFs.get(id) }
131
- assert { g.data[1..3] == g.slice(1..3) }
132
- end
114
+ ##
115
+ #
116
+ context 'slicing and dicing' do
117
+ test 'range' do
118
+ id = assert { GridFs::File.last.id }
119
+ g = assert { GridFs.get(id) }
120
+ assert { g.data[1..3] == g.slice(1..3) }
121
+ end
133
122
 
134
- test 'start and length' do
135
- id = assert { GridFs::File.last.id }
136
- g = assert { GridFs.get(id) }
137
- assert { g.data[1, 3] == g.slice(1, 3) }
138
- end
123
+ test 'start and length' do
124
+ id = assert { GridFs::File.last.id }
125
+ g = assert { GridFs.get(id) }
126
+ assert { g.data[1, 3] == g.slice(1, 3) }
127
+ end
139
128
 
140
- test 'just a single param' do
141
- id = assert { GridFs::File.last.id }
142
- g = assert {GridFs.get(id) }
129
+ test 'just a single param' do
130
+ id = assert { GridFs::File.last.id }
131
+ g = assert { GridFs.get(id) }
143
132
 
144
- assert {g.data[1] == g.slice(1) }
145
- end
133
+ assert { g.data[1] == g.slice(1) }
134
+ end
146
135
 
147
- test 'getting the last index' do
148
- id = assert { GridFs::File.last.id }
149
- g = assert {GridFs.get(id) }
150
- assert {g.data[-1] == g.slice(-1) }
151
- end
136
+ test 'getting the last index' do
137
+ id = assert { GridFs::File.last.id }
138
+ g = assert { GridFs.get(id) }
139
+ assert { g.data[-1] == g.slice(-1) }
140
+ end
152
141
 
153
- test 'yanking from the end of the data' do
154
- id = assert { GridFs::File.last.id }
155
- g = assert {GridFs.get(id) }
156
- assert {g.data[-3, 2] == g.slice(-3, 2) }
157
- end
142
+ test 'yanking from the end of the data' do
143
+ id = assert { GridFs::File.last.id }
144
+ g = assert { GridFs.get(id) }
145
+ assert { g.data[-3, 2] == g.slice(-3, 2) }
146
+ end
158
147
 
159
- test 'multiple chunks...' do
160
- path = 'slice_and_dice.txt'
148
+ test 'multiple chunks...' do
149
+ path = 'slice_and_dice.txt'
161
150
 
162
- assert { GridFs[path] = SIO.new(path, "foobar" * 256 * 1024) }
151
+ assert { GridFs[path] = SIO.new(path, 'foobar' * 256 * 1024) }
163
152
 
164
- g = GridFs[path]
153
+ g = GridFs[path]
165
154
 
166
- assert { g.chunks.count > 0 }
167
- assert { g.data[10, (256 * 1024 * 2)] == g.slice(10, (256 * 1024 * 2)) }
155
+ assert { g.chunks.count > 0 }
156
+ assert { g.data[10, (256 * 1024 * 2)] == g.slice(10, (256 * 1024 * 2)) }
157
+ end
168
158
  end
169
- end
170
159
 
171
- ##
172
- #
173
- context 'iterating each chunk' do
174
- test 'having file size more than 42mb' do
175
- require 'tempfile'
160
+ ##
161
+ #
162
+ context 'iterating each chunk' do
163
+ test 'having file size more than 42mb' do
164
+ require 'tempfile'
176
165
 
177
- orig, copy = %w{orig copy}.map do |suffix|
178
- Tempfile.new("mongoid-grid_fs~43mb.#{suffix}")
179
- end
166
+ orig, copy = %w[orig copy].map do |suffix|
167
+ Tempfile.new("mongoid-grid_fs~43mb.#{suffix}")
168
+ end
180
169
 
181
- kilobyte = "x" * 1024
182
- (43*1024).times { orig.write(kilobyte) }
170
+ kilobyte = 'x' * 1024
171
+ (43 * 1024).times { orig.write(kilobyte) }
183
172
 
184
- GridFs.get(GridFs.put(orig.path).id).each do |chunk|
185
- copy.print(chunk.to_s)
186
- end
173
+ GridFs.get(GridFs.put(orig.path).id).each do |chunk|
174
+ copy.print(chunk.to_s)
175
+ end
187
176
 
188
- assert { File.size(orig.path) == File.size(copy.path) }
177
+ assert { File.size(orig.path) == File.size(copy.path) }
178
+ end
189
179
  end
190
- end
191
180
 
192
- ##
193
- #
194
- context 'namespaces' do
195
- test 'default' do
196
- assert{ GridFs.namespace.prefix == 'fs' }
197
- assert{ GridFs.file_model.collection_name.to_s == 'fs.files' }
198
- assert{ GridFs.chunk_model.collection_name.to_s == 'fs.chunks' }
199
- end
181
+ ##
182
+ #
183
+ context 'namespaces' do
184
+ test 'default' do
185
+ assert { GridFs.namespace.prefix == 'fs' }
186
+ assert { GridFs.file_model.collection_name.to_s == 'fs.files' }
187
+ assert { GridFs.chunk_model.collection_name.to_s == 'fs.chunks' }
188
+ end
200
189
 
201
- test 'new' do
202
- ns = GridFs.namespace_for(:ns)
190
+ test 'new' do
191
+ ns = GridFs.namespace_for(:ns)
203
192
 
204
- assert{ ns.prefix == 'ns' }
193
+ assert { ns.prefix == 'ns' }
205
194
 
206
- assert{ ns.file_model < Mongoid::Document }
207
- assert{ ns.file_model.collection_name.to_s == 'ns.files' }
195
+ assert { ns.file_model < Mongoid::Document }
196
+ assert { ns.file_model.collection_name.to_s == 'ns.files' }
208
197
 
209
- assert{ ns.chunk_model < Mongoid::Document }
210
- assert{ ns.chunk_model.collection_name.to_s == 'ns.chunks' }
198
+ assert { ns.chunk_model < Mongoid::Document }
199
+ assert { ns.chunk_model.collection_name.to_s == 'ns.chunks' }
211
200
 
212
- assert{ ns.file_model.destroy_all }
201
+ assert { ns.file_model.destroy_all }
213
202
 
214
- count = GridFs::File.count
203
+ count = GridFs::File.count
215
204
 
216
- assert{ ns.file_model.count == 0}
217
- assert{ ns.put __FILE__ }
218
- assert{ ns.file_model.count == 1}
205
+ assert { ns.file_model.count.zero? }
206
+ assert { ns.put __FILE__ }
207
+ assert { ns.file_model.count == 1 }
219
208
 
220
- assert{ count == GridFs::File.count }
209
+ assert { count == GridFs::File.count }
210
+ end
221
211
  end
222
212
  end
223
213
 
224
- end
225
-
226
- ##
227
- #
214
+ ##
215
+ #
228
216
  context 'rails' do
229
217
  test 'paths' do
230
218
  testdir = File.dirname(__FILE__)
231
219
  gemdir = File.dirname(testdir)
232
220
  libdir = File.join(gemdir, 'lib')
233
221
 
234
- expanded = proc{|paths| Array(paths).map{|path| File.expand_path(path)}}
222
+ expanded = proc { |paths| Array(paths).map { |path| File.expand_path(path) } }
235
223
 
236
- assert{
237
- expanded[ Mongoid::GridFs::Engine.paths['app/models'] ] == expanded[ libdir ]
238
- }
224
+ assert do
225
+ expanded[Mongoid::GridFs::Engine.paths['app/models']] == expanded[libdir]
226
+ end
239
227
  end
240
228
  end
241
229
 
242
230
  protected
231
+
243
232
  def object_id_re
244
233
  object_id = defined?(Moped::BSON) ? Moped::BSON::ObjectId.new : BSON::ObjectId.new
245
234
 
246
- %r| \w{#{ object_id.to_s.size }} |iomx
235
+ / \w{#{ object_id.to_s.size }} /iomx
247
236
  end
248
237
  end
data/test/testing.rb CHANGED
@@ -1,23 +1,23 @@
1
- # -*- encoding : utf-8 -*-
1
+
2
2
  require 'minitest/autorun'
3
3
 
4
- testdir = File.expand_path(File.dirname(__FILE__))
4
+ testdir = __dir__
5
5
  rootdir = File.dirname(testdir)
6
6
  libdir = File.join(rootdir, 'lib')
7
7
 
8
8
  STDOUT.sync = true
9
9
 
10
- $:.unshift(testdir) unless $:.include?(testdir)
11
- $:.unshift(libdir) unless $:.include?(libdir)
12
- $:.unshift(rootdir) unless $:.include?(rootdir)
10
+ $LOAD_PATH.unshift(testdir) unless $LOAD_PATH.include?(testdir)
11
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
12
+ $LOAD_PATH.unshift(rootdir) unless $LOAD_PATH.include?(rootdir)
13
13
 
14
14
  class Testing
15
15
  class Slug < ::String
16
- def Slug.for(*args)
16
+ def self.for(*args)
17
17
  string = args.flatten.compact.join('-')
18
- words = string.to_s.scan(%r/\w+/)
19
- words.map!{|word| word.gsub %r/[^0-9a-zA-Z_-]/, ''}
20
- words.delete_if{|word| word.nil? or word.strip.empty?}
18
+ words = string.to_s.scan(/\w+/)
19
+ words.map! { |word| word.gsub(/[^0-9a-zA-Z_-]/, '') }
20
+ words.delete_if { |word| word.nil? || word.strip.empty? }
21
21
  new(words.join('-').downcase)
22
22
  end
23
23
  end
@@ -25,7 +25,7 @@ class Testing
25
25
  class Context
26
26
  attr_accessor :name
27
27
 
28
- def initialize(name, *args)
28
+ def initialize(name, *_args)
29
29
  @name = name
30
30
  end
31
31
 
@@ -35,25 +35,25 @@ class Testing
35
35
  end
36
36
  end
37
37
 
38
- def Testing(*args, &block)
38
+ def _testing(*args, &block)
39
39
  Class.new(::Minitest::Test) do
40
40
  i_suck_and_my_tests_are_order_dependent!
41
41
 
42
- ## class methods
43
- #
42
+ ## class methods
43
+ #
44
44
  class << self
45
45
  def contexts
46
46
  @contexts ||= []
47
47
  end
48
48
 
49
49
  def context(*args, &block)
50
- return contexts.last if(args.empty? and block.nil?)
50
+ return contexts.last if args.empty? && block.nil?
51
51
 
52
52
  context = Testing::Context.new(*args)
53
53
  contexts.push(context)
54
54
 
55
55
  begin
56
- block.call(context)
56
+ yield(context)
57
57
  ensure
58
58
  contexts.pop
59
59
  end
@@ -61,22 +61,24 @@ def Testing(*args, &block)
61
61
 
62
62
  def slug_for(*args)
63
63
  string = [context, args].flatten.compact.join('-')
64
- words = string.to_s.scan(%r/\w+/)
65
- words.map!{|word| word.gsub %r/[^0-9a-zA-Z_-]/, ''}
66
- words.delete_if{|word| word.nil? or word.strip.empty?}
64
+ words = string.to_s.scan(/\w+/)
65
+ words.map! { |word| word.gsub(/[^0-9a-zA-Z_-]/, '') }
66
+ words.delete_if { |word| word.nil? || word.strip.empty? }
67
67
  words.join('-').downcase.sub(/_$/, '')
68
68
  end
69
69
 
70
- def name() const_get(:Name) end
70
+ def name
71
+ const_get(:Name)
72
+ end
71
73
 
72
- def testno()
73
- '%05d' % (@testno ||= 0)
74
+ def testno
75
+ format('%05d', (@testno ||= 0))
74
76
  ensure
75
77
  @testno += 1
76
78
  end
77
79
 
78
80
  def testing(*args, &block)
79
- method = ["test", testno, slug_for(*args)].delete_if{|part| part.empty?}.join('_')
81
+ method = ['test', testno, slug_for(*args)].delete_if(&:empty?).join('_')
80
82
  define_method(method, &block)
81
83
  end
82
84
 
@@ -105,44 +107,40 @@ def Testing(*args, &block)
105
107
  end
106
108
  end
107
109
 
108
- ## configure the subclass!
109
- #
110
+ ## configure the subclass!
111
+ #
110
112
  const_set(:Testno, '0')
111
- slug = slug_for(*args).gsub(%r/-/,'_')
112
- name = ['TESTING', '%03d' % const_get(:Testno), slug].delete_if{|part| part.empty?}.join('_')
113
+ slug = slug_for(*args).tr('-', '_')
114
+ name = ['TESTING', format('%03d', const_get(:Testno)), slug].delete_if(&:empty?).join('_')
113
115
  name = name.upcase!
114
116
  const_set(:Name, name)
115
117
  const_set(:Missing, Object.new.freeze)
116
118
 
117
- ## instance methods
118
- #
119
+ ## instance methods
120
+ #
119
121
  alias_method('__assert__', 'assert')
120
122
 
121
123
  def assert(*args, &block)
122
- if args.size == 1 and args.first.is_a?(Hash)
124
+ if (args.size == 1) && args.first.is_a?(Hash)
123
125
  options = args.first
124
- expected = getopt(:expected, options){ missing }
125
- actual = getopt(:actual, options){ missing }
126
- if expected == missing and actual == missing
127
- actual, expected, *ignored = options.to_a.flatten
128
- end
129
- expected = expected.call() if expected.respond_to?(:call)
130
- actual = actual.call() if actual.respond_to?(:call)
126
+ expected = getopt(:expected, options) { missing }
127
+ actual = getopt(:actual, options) { missing }
128
+ actual, expected, = options.to_a.flatten if (expected == missing) && (actual == missing)
129
+ expected = expected.call if expected.respond_to?(:call)
130
+ actual = actual.call if actual.respond_to?(:call)
131
131
  assert_equal(expected, actual)
132
132
  end
133
133
 
134
- if block
135
- label = "assert(#{ args.join(' ') })"
136
- result = nil
137
- result = block.call
138
- __assert__(result, label)
139
- result
140
- else
141
- result = args.shift
142
- label = "assert(#{ args.join(' ') })"
143
- __assert__(result, label)
144
- result
145
- end
134
+ result = if block
135
+ label = "assert(#{args.join(' ')})"
136
+ yield
137
+ else
138
+ result = args.shift
139
+ label = "assert(#{args.join(' ')})"
140
+ result
141
+ end
142
+ __assert__(result, label)
143
+ result
146
144
  end
147
145
 
148
146
  def missing
@@ -151,46 +149,47 @@ def Testing(*args, &block)
151
149
 
152
150
  def getopt(opt, hash, options = nil, &block)
153
151
  [opt.to_s, opt.to_s.to_sym].each do |key|
154
- return hash[key] if hash.has_key?(key)
152
+ return hash[key] if hash.key?(key)
155
153
  end
156
154
  default =
157
155
  if block
158
- block.call
156
+ yield
159
157
  else
160
158
  options.is_a?(Hash) ? options[:default] : nil
161
159
  end
162
- return default
160
+ default
163
161
  end
164
162
 
165
- def subclass_of exception
163
+ def subclass_of(exception)
166
164
  class << exception
167
- def ==(other) super or self > other end
165
+ def ==(other)
166
+ super || self > other
167
+ end
168
168
  end
169
169
  exception
170
170
  end
171
171
 
172
- ##
173
- #
172
+ ##
173
+ #
174
174
  module_eval(&block)
175
175
 
176
- self.setup()
177
- self.prepare.each{|b| b.call()}
176
+ setup
177
+ prepare.each(&:call)
178
178
 
179
- at_exit{
180
- self.teardown()
181
- self.cleanup.each{|b| b.call()}
182
- }
179
+ at_exit do
180
+ teardown
181
+ cleanup.each(&:call)
182
+ end
183
183
 
184
184
  self
185
185
  end
186
186
  end
187
187
 
188
+ if $PROGRAM_NAME == __FILE__
188
189
 
189
- if $0 == __FILE__
190
-
191
- Testing 'Testing' do
192
- testing('foo'){ assert true }
193
- test{ assert true }
190
+ _testing 'Testing' do
191
+ testing('foo') { assert true }
192
+ test { assert true }
194
193
  p instance_methods.grep(/test/)
195
194
  end
196
195