mm-attach-it 0.2.1 → 0.2.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.
data/README CHANGED
@@ -71,6 +71,23 @@ If you are using the file system to store files, you can specify the directory/f
71
71
 
72
72
  OBS: The default directory is ’/:rails_root/public/system/:attachment/:id/:style/:filename’
73
73
 
74
+
75
+ Also you can interpolate any method result of the model
76
+
77
+ class Foo
78
+ include MongoMapper::Document
79
+ plugin AttachIt
80
+ has_attachment :photo, { :url => '/:model.say_greet/users/:model.say_farewell/:id/:filename', :path => ':rails_root/public/:model.say_greet/:model.say_farewell/users/:id/:filename' }
81
+
82
+ def say_greet
83
+ 'hello'
84
+ end
85
+
86
+ def say_farewell
87
+ 'bye'
88
+ end
89
+ end
90
+
74
91
  Where:
75
92
  * :rails_root - is the root directory of your Rails application
76
93
  * :environment - can be "production", "test" or "development"
@@ -80,6 +97,7 @@ Where:
80
97
  * :style - if you specified the styles
81
98
  * :filename - the name of the file
82
99
  * :extension - the extension of the file
100
+ * :model.METHOD_NAME - where METHOD_NAME is any method of the model
83
101
 
84
102
  === View
85
103
 
data/README.rdoc CHANGED
@@ -71,6 +71,23 @@ If you are using the file system to store files, you can specify the directory/f
71
71
 
72
72
  OBS: The default directory is ’/:rails_root/public/system/:attachment/:id/:style/:filename’
73
73
 
74
+
75
+ Also you can interpolate any method result of the model
76
+
77
+ class Foo
78
+ include MongoMapper::Document
79
+ plugin AttachIt
80
+ has_attachment :photo, { :url => '/:model.say_greet/users/:model.say_farewell/:id/:filename', :path => ':rails_root/public/:model.say_greet/:model.say_farewell/users/:id/:filename' }
81
+
82
+ def say_greet
83
+ 'hello'
84
+ end
85
+
86
+ def say_farewell
87
+ 'bye'
88
+ end
89
+ end
90
+
74
91
  Where:
75
92
  * :rails_root - is the root directory of your Rails application
76
93
  * :environment - can be "production", "test" or "development"
@@ -80,6 +97,7 @@ Where:
80
97
  * :style - if you specified the styles
81
98
  * :filename - the name of the file
82
99
  * :extension - the extension of the file
100
+ * :model.METHOD_NAME - where METHOD_NAME is any method of the model
83
101
 
84
102
  === View
85
103
 
@@ -72,8 +72,10 @@ module AttachIt
72
72
  end
73
73
 
74
74
  def save_attachments
75
- @attachment_options.keys.each do |name|
76
- @attachment_options[name].save
75
+ unless @attachment_options.nil?
76
+ @attachment_options.keys.each do |name|
77
+ @attachment_options[name].save
78
+ end
77
79
  end
78
80
  end
79
81
 
@@ -114,6 +114,9 @@ class AttachmentOptions
114
114
  result.gsub!(/\:class/, @class_name)
115
115
  result.gsub!(/\:attachment/, @attachment)
116
116
  result.gsub!(/(\/){2,}/, '/')
117
+ while result.match(/:model\.([A-Za-z\_]+)/)
118
+ result.sub!(/:model\.[A-Za-z\_]+/, @model.send($1))
119
+ end
117
120
  result
118
121
  end
119
122
 
@@ -1,3 +1,3 @@
1
1
  module AttachIt
2
- Version = '0.2.1'
2
+ Version = '0.2.2'
3
3
  end
data/test/test_helper.rb CHANGED
@@ -116,6 +116,21 @@ class UserTwelve
116
116
  has_attachment :avatar, { :styles => { :small => '150x150>', :medium => '300x300>' }, :storage => 'gridfs' }
117
117
  end
118
118
 
119
+ class UserThirteen
120
+ include MongoMapper::Document
121
+ plugin AttachIt
122
+ key :name, String
123
+ has_attachment :avatar, { :url => '/:model.say_greet/users/:model.say_farewell/:id/:filename', :path => ':rails_root/public/:model.say_greet/:model.say_farewell/users/:id/:filename' }
124
+
125
+ def say_greet
126
+ 'hello'
127
+ end
128
+
129
+ def say_farewell
130
+ 'bye'
131
+ end
132
+ end
133
+
119
134
  class DocumentOne
120
135
  include MongoMapper::Document
121
136
  plugin AttachIt
@@ -284,4 +284,20 @@ class TestAttachIt < Test::Unit::TestCase
284
284
 
285
285
  end
286
286
 
287
+ context "Iterpolate model methods" do
288
+ setup do
289
+ @user = UserThirteen.new
290
+ @user.name = 'Myname'
291
+ @user.avatar = File.open(JpgImageFile, 'rb')
292
+ @user.save
293
+ end
294
+
295
+ should "show methods returns" do
296
+ assert_match('hello', @user.avatar.path)
297
+ assert_match('bye', @user.avatar.path)
298
+ assert_match('hello', @user.avatar.url)
299
+ assert_match('bye', @user.avatar.url)
300
+ end
301
+ end
302
+
287
303
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mm-attach-it
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
9
+ - 2
10
+ version: 0.2.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Adilson Chacon
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-14 00:00:00 Z
18
+ date: 2011-10-01 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: wand