roachclip 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,6 +14,7 @@ begin
14
14
  gemspec.add_development_dependency 'shoulda', '2.11.0'
15
15
  gemspec.add_development_dependency 'mongo_mapper', '0.8.2'
16
16
  gemspec.add_development_dependency 'ruby-debug', '0.10.3'
17
+ gemspec.add_development_dependency 'mocha', '0.9.8'
17
18
  end
18
19
  Jeweler::GemcutterTasks.new
19
20
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.2.0
@@ -28,12 +28,24 @@ module Roachclip
28
28
 
29
29
  raise InvalidAttachment unless attachment_names.include?(name)
30
30
 
31
+ path = options.delete(:path) || "/gridfs/fs/%s-%s"
31
32
  self.roaches << {:name => name, :options => options}
32
-
33
+
34
+ options[:styles] ||= {}
33
35
  options[:styles].each { |k,v| self.attachment "#{name}_#{k}"}
34
36
 
35
37
  before_save :process_roaches
36
38
  before_save :destroy_nil_roaches
39
+
40
+ self.send(:define_method, "#{name}_path") do
41
+ (path % [self.send(name).id.to_s, Time.now.to_i]).chomp('-')
42
+ end
43
+
44
+ options[:styles].each do |k,v|
45
+ self.send(:define_method, "#{name}_#{k}_path") do
46
+ (path % [self.send(name).id.to_s, Time.now.to_i]).chomp('-')
47
+ end
48
+ end
37
49
  end
38
50
 
39
51
  def validates_roachclip(*args)
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{roachclip}
8
- s.version = "0.1.3"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ryan Angilly"]
12
- s.date = %q{2010-09-15}
12
+ s.date = %q{2010-09-17}
13
13
  s.description = %q{Let you upload images and have use paperclip's hotness to post process them}
14
14
  s.email = %q{ryan@angilly.com}
15
15
  s.extra_rdoc_files = [
@@ -52,12 +52,14 @@ Gem::Specification.new do |s|
52
52
  s.add_development_dependency(%q<shoulda>, ["= 2.11.0"])
53
53
  s.add_development_dependency(%q<mongo_mapper>, ["= 0.8.2"])
54
54
  s.add_development_dependency(%q<ruby-debug>, ["= 0.10.3"])
55
+ s.add_development_dependency(%q<mocha>, ["= 0.9.8"])
55
56
  else
56
57
  s.add_dependency(%q<joint>, ["= 0.3.2"])
57
58
  s.add_dependency(%q<paperclip>, ["= 2.3.3"])
58
59
  s.add_dependency(%q<shoulda>, ["= 2.11.0"])
59
60
  s.add_dependency(%q<mongo_mapper>, ["= 0.8.2"])
60
61
  s.add_dependency(%q<ruby-debug>, ["= 0.10.3"])
62
+ s.add_dependency(%q<mocha>, ["= 0.9.8"])
61
63
  end
62
64
  else
63
65
  s.add_dependency(%q<joint>, ["= 0.3.2"])
@@ -65,6 +67,7 @@ Gem::Specification.new do |s|
65
67
  s.add_dependency(%q<shoulda>, ["= 2.11.0"])
66
68
  s.add_dependency(%q<mongo_mapper>, ["= 0.8.2"])
67
69
  s.add_dependency(%q<ruby-debug>, ["= 0.10.3"])
70
+ s.add_dependency(%q<mocha>, ["= 0.9.8"])
68
71
  end
69
72
  end
70
73
 
@@ -3,6 +3,7 @@ require 'test/unit'
3
3
  require 'ruby-debug'
4
4
  require 'shoulda'
5
5
  require 'mongo_mapper'
6
+ require 'mocha'
6
7
 
7
8
  $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
8
9
 
@@ -72,6 +72,21 @@ class RoachclipTest < Test::Unit::TestCase
72
72
  assert d.respond_to?(:image_large=)
73
73
  end
74
74
 
75
+ context "with a custom path" do
76
+ setup do
77
+ Doc.roachclip :image, :path => "/gridfs/assets/%s"
78
+ @doc = Doc.new
79
+ @doc.image = File.open(test_file_path)
80
+
81
+ assert @doc.save
82
+ end
83
+
84
+ should "have image_path with custom path" do
85
+ i = @doc.image.id.to_s
86
+ assert_equal "/gridfs/assets/#{i}", @doc.image_path
87
+ end
88
+ end
89
+
75
90
  context "with a saved document w/ image" do
76
91
  setup do
77
92
  @doc = Doc.new
@@ -80,6 +95,14 @@ class RoachclipTest < Test::Unit::TestCase
80
95
  assert @doc.save
81
96
  end
82
97
 
98
+ should "have image_path default to fs collection" do
99
+ t = Time.now
100
+ Time.stubs(:now).returns t
101
+
102
+ i = @doc.image.id.to_s
103
+ assert_equal "/gridfs/fs/#{i}-#{t.to_i}", @doc.image_path
104
+ end
105
+
83
106
  should "still save documents w/ images" do
84
107
  d = Doc.find @doc.id
85
108
 
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 3
9
- version: 0.1.3
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ryan Angilly
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-15 00:00:00 -06:00
17
+ date: 2010-09-17 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -87,6 +87,20 @@ dependencies:
87
87
  version: 0.10.3
88
88
  type: :development
89
89
  version_requirements: *id005
90
+ - !ruby/object:Gem::Dependency
91
+ name: mocha
92
+ prerelease: false
93
+ requirement: &id006 !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "="
96
+ - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
99
+ - 9
100
+ - 8
101
+ version: 0.9.8
102
+ type: :development
103
+ version_requirements: *id006
90
104
  description: Let you upload images and have use paperclip's hotness to post process them
91
105
  email: ryan@angilly.com
92
106
  executables: []