rails-ext 0.3.8 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. data/.git/index +0 -0
  2. data/.git/logs/HEAD +1 -0
  3. data/.git/logs/refs/heads/master +1 -0
  4. data/.git/logs/refs/remotes/origin/master +1 -0
  5. data/.git/objects/05/0098e3b05f41a672127d5e730d322cec84e21c +0 -0
  6. data/.git/objects/0b/68897860be3a4a765d6f1788ea4a0e91ff8c6c +0 -0
  7. data/.git/objects/19/c7ed2568bccfa8a745c4d32550ea5e9e47e6f8 +0 -0
  8. data/.git/objects/3f/e10909f96a9d6dc6dcf762e6e236fbbd5cea51 +0 -0
  9. data/.git/objects/55/4e8e5d25f1c00fb3743766532d9324e623b0a3 +0 -0
  10. data/.git/objects/5c/e57246e73624ffb1eb0eee1375f42d8f8b8764 +1 -0
  11. data/.git/objects/71/8629a1ac1903b2e69404a365610df5e249cee8 +0 -0
  12. data/.git/objects/82/4ac01aecaa766ea8a7b10ef9d9f67810fdff40 +2 -0
  13. data/.git/objects/8c/b356ae2ff8011edfa68c9683ffeca358213d12 +0 -0
  14. data/.git/objects/9d/3f16cdc12f32c4fa10b7df80eb6e8a09e96a84 +0 -0
  15. data/.git/objects/9f/9e3b465a61007276d8fb8246f19fb9700a2667 +0 -0
  16. data/.git/objects/a3/98e3f7678f774648fd43e667f958901ba9ee49 +0 -0
  17. data/.git/objects/a4/17e44df78b565923200675742481c9c46af5f4 +0 -0
  18. data/.git/objects/ab/0e1583c7a54431f8c4789a7f284cdc30ebb67c +0 -0
  19. data/.git/objects/c1/fb376eb3ec3001d492ed32ce7d40019e11d2c2 +0 -0
  20. data/.git/objects/e8/827e07c9fdeec964594877faa9aaaf28839796 +0 -0
  21. data/.git/refs/heads/master +1 -1
  22. data/.git/refs/remotes/origin/master +1 -1
  23. data/Rakefile +1 -1
  24. data/lib/mongo_mapper_ext/plugins/micelaneous.rb +6 -0
  25. data/lib/rails_ext/action_controller/micelaneous.rb +18 -2
  26. data/lib/rails_ext/micelaneous/addressable_uri.rb +45 -0
  27. data/lib/rails_ext/micelaneous.rb +5 -1
  28. data/spec/mongo_mapper_ext/micelaneous_spec.rb +25 -2
  29. metadata +20 -3
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -59,3 +59,4 @@ a3ece30fb5827ed20d26a75253bb4854f657055a 0538f41ddebf7fa8c71ebe99c5288d5e11c3fb8
59
59
  0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 6a02fd5698264a4165c46af5175a39f5b130de9c alex <alex@amac.local> 1269956190 +0400 commit: update mongo scope
60
60
  6a02fd5698264a4165c46af5175a39f5b130de9c 8f53b7b2ab88b130763bc42b3ded7983d27bff7a alex <alex@amac.local> 1269956206 +0400 commit: update mongo scope
61
61
  8f53b7b2ab88b130763bc42b3ded7983d27bff7a b4343d9284a89e2971022f8d4acf7865d8341c6d alex <alex@amac.local> 1270054079 +0400 commit: upd
62
+ b4343d9284a89e2971022f8d4acf7865d8341c6d 824ac01aecaa766ea8a7b10ef9d9f67810fdff40 alex <alex@amac.local> 1270516451 +0400 commit: upd
@@ -59,3 +59,4 @@ a3ece30fb5827ed20d26a75253bb4854f657055a 0538f41ddebf7fa8c71ebe99c5288d5e11c3fb8
59
59
  0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 6a02fd5698264a4165c46af5175a39f5b130de9c alex <alex@amac.local> 1269956190 +0400 commit: update mongo scope
60
60
  6a02fd5698264a4165c46af5175a39f5b130de9c 8f53b7b2ab88b130763bc42b3ded7983d27bff7a alex <alex@amac.local> 1269956206 +0400 commit: update mongo scope
61
61
  8f53b7b2ab88b130763bc42b3ded7983d27bff7a b4343d9284a89e2971022f8d4acf7865d8341c6d alex <alex@amac.local> 1270054079 +0400 commit: upd
62
+ b4343d9284a89e2971022f8d4acf7865d8341c6d 824ac01aecaa766ea8a7b10ef9d9f67810fdff40 alex <alex@amac.local> 1270516451 +0400 commit: upd
@@ -45,3 +45,4 @@ d4faaed37686ae3ce16b636defd37eeacb38470d 161cacdd64a4f135d805f5a2f23d006592b8c83
45
45
  a3ece30fb5827ed20d26a75253bb4854f657055a 0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 alex <alex@amac.local> 1269866645 +0400 update by push
46
46
  0538f41ddebf7fa8c71ebe99c5288d5e11c3fb86 6a02fd5698264a4165c46af5175a39f5b130de9c alex <alex@amac.local> 1269956196 +0400 update by push
47
47
  6a02fd5698264a4165c46af5175a39f5b130de9c b4343d9284a89e2971022f8d4acf7865d8341c6d alex <alex@amac.local> 1270054087 +0400 update by push
48
+ b4343d9284a89e2971022f8d4acf7865d8341c6d 824ac01aecaa766ea8a7b10ef9d9f67810fdff40 alex <alex@amac.local> 1270516459 +0400 update by push
@@ -0,0 +1 @@
1
+ x+)JMU063c040031QHLI)J-.NL�I�/-��+Jb(l�\�F�yӳ),�Sy�>�<��:9?/-3=>-3'��T�Y<�i�ޛ/V�H5>X̵H��(5�$5��4)'39��27'3/��Ѷ�/5S��q�|����+�PM)�i�E��%�%@=Y�e���E�%`mߍ6�/���`��8m=��@���à�Rs3s�!�9k�y�u�QNY�M;P4�fC8Ti��E^|FjNAjH���꿟��7j�|�L��9���/P�E@3��R K3�RAj�J'ŶY\�SnU��Q�^3��81-5>#�8�n��E��;�ۿ?@��H��f/�t���
@@ -0,0 +1,2 @@
1
+ x��K
2
+ �0�a�9E��L��x�i2A������EO���}��uY�ÇOc7�"l٤��P�D�)�(���E� �ܦ������Z�̚�aI{n����e�Pcsz�Ǻ{������u�z�ת��L !�p��5�Ꭽ��:�
@@ -1 +1 @@
1
- b4343d9284a89e2971022f8d4acf7865d8341c6d
1
+ 824ac01aecaa766ea8a7b10ef9d9f67810fdff40
@@ -1 +1 @@
1
- b4343d9284a89e2971022f8d4acf7865d8341c6d
1
+ 824ac01aecaa766ea8a7b10ef9d9f67810fdff40
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ require 'fileutils'
18
18
 
19
19
  spec = Gem::Specification.new do |s|
20
20
  s.name = "rails-ext"
21
- s.version = "0.3.8"
21
+ s.version = "0.3.9"
22
22
  s.summary = "Set of common Ruby on Rails extensions"
23
23
  s.description = "Set of common Ruby on Rails extensions"
24
24
  s.author = "Alexey Petrushin"
@@ -2,6 +2,12 @@ module MongoMapper
2
2
  module Plugins
3
3
  module Micelaneous
4
4
 
5
+ module InstanceMethods
6
+ def upsert *args
7
+ self.class.upsert id, *args
8
+ end
9
+ end
10
+
5
11
  module ClassMethods
6
12
  #
7
13
  # Connect to database_alias specified in config
@@ -36,10 +36,25 @@ ActionController::Base.class_eval do
36
36
  else
37
37
  url = path
38
38
  end
39
- options = options.merge default_url_options
39
+
40
+ options = default_url_options.merge options
41
+
42
+ # Delete 'nil' parameters
43
+ to_delete = []
44
+ options.each{|k, v| to_delete << k if v.nil?}
45
+ to_delete.each{|k| options.delete k}
46
+
47
+ host = options.delete :host
48
+
40
49
  url << "?#{options.to_query}" unless options.empty?
41
- url._url_format = options[:format] if options[:format] # for links with ajax support
50
+ url._url_format = options[:format] if options[:format] # hack for links with ajax support
42
51
  url
52
+
53
+ if host.blank?
54
+ url
55
+ else
56
+ "http://#{host}#{url}"
57
+ end
43
58
  end
44
59
  helper_method :url_for_path
45
60
 
@@ -52,6 +67,7 @@ ActionController::Base.class_eval do
52
67
  yield
53
68
  rescue UserError => e
54
69
  flash[:error] = e.message
70
+ flash[:sticky_error] = e.message
55
71
  do_not_persist_params do
56
72
  if request.xhr? or request.format == 'js'
57
73
  render :inline => "", :layout => 'application'
@@ -0,0 +1,45 @@
1
+ Addressable::URI.class_eval do
2
+ def request_uri
3
+ return nil if self.absolute? && self.scheme !~ /^https?$/
4
+ return (
5
+ (self.path != "" ? self.path : "/") +
6
+ (self.query ? "?#{self.query}" : "")
7
+ )
8
+ end
9
+
10
+ def self.normalize_host host
11
+ host.gsub(/^www\./, "")
12
+ end
13
+
14
+ def normalized_host
15
+ host ? host : host.gsub(/^www\./, '')
16
+ end
17
+
18
+ # Delete 'nil' keys
19
+ def query_values_with_skip_nil= options
20
+ to_delete = []
21
+ options.each{|k, v| to_delete << k if v.nil?}
22
+ to_delete.each{|k| options.delete k}
23
+
24
+ self.query_values_without_skip_nil = options
25
+ end
26
+ alias_method_chain :query_values=, :skip_nil
27
+
28
+
29
+ # Override original to fix:
30
+ # - extra '?' sign (/some_path?) if there's empty but not-nil query
31
+ def to_s
32
+ @uri_string ||= (begin
33
+ uri_string = ""
34
+ uri_string << "#{self.scheme}:" if self.scheme != nil
35
+ uri_string << "//#{self.authority}" if self.authority != nil
36
+ uri_string << self.path.to_s
37
+ uri_string << "?#{self.query}" unless self.query.blank?
38
+ uri_string << "##{self.fragment}" if self.fragment != nil
39
+ if uri_string.respond_to?(:force_encoding)
40
+ uri_string.force_encoding(Encoding::UTF_8)
41
+ end
42
+ uri_string
43
+ end)
44
+ end
45
+ end
@@ -10,4 +10,8 @@ require 'rails_ext/micelaneous/email_config'
10
10
 
11
11
  require 'rails_ext/micelaneous/rails_require'
12
12
 
13
- require 'rails_ext/micelaneous/create_public_symlinks'
13
+ require 'rails_ext/micelaneous/create_public_symlinks'
14
+
15
+ require 'addressable/uri'
16
+ require 'rails_ext/micelaneous/addressable_uri'
17
+ Uri = Addressable::URI
@@ -14,15 +14,38 @@ describe "MongoMapper Default Scope" do
14
14
  @coll = @db.collection('test')
15
15
  end
16
16
 
17
- it "usert should update" do
17
+ it "upsert should update" do
18
18
  id = @coll.save :count => 2
19
19
  @coll.upsert id, :$inc => {:count => 1}
20
20
  @coll.find(:_id => id).first['count'].should == 3
21
21
  end
22
22
 
23
- it "usert should set" do
23
+ it "upsert should set" do
24
24
  id = @coll.save({})
25
25
  @coll.upsert id, :$inc => {:count => 1}
26
26
  @coll.find(:_id => id).first['count'].should == 1
27
27
  end
28
+
29
+ describe "Handy upsert" do
30
+ class ::UpsertSample
31
+ include MongoMapper::Document
32
+ key :counter, Integer, :default => 1
33
+ end
34
+
35
+ before :each do
36
+ @model = UpsertSample.create!
37
+ end
38
+
39
+ it "class upsert" do
40
+ UpsertSample.upsert @model.id, :$inc => {:counter => 1}
41
+ @model.reload
42
+ @model.counter.should == 2
43
+ end
44
+
45
+ it "model upsert" do
46
+ @model.upsert :$inc => {:counter => 1}
47
+ @model.reload
48
+ @model.counter.should == 2
49
+ end
50
+ end
28
51
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 8
9
- version: 0.3.8
8
+ - 9
9
+ version: 0.3.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Alexey Petrushin
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-31 00:00:00 +04:00
17
+ date: 2010-04-06 00:00:00 +04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -69,6 +69,7 @@ files:
69
69
  - .git/objects/02/469b717b4bd61ad27a3fe664ce0646a8325399
70
70
  - .git/objects/03/9e318355ab5ab32c3b6bc634d3d8e64f444ef8
71
71
  - .git/objects/04/cd62e7f8158fe54d21e6f63617c43b593b8b59
72
+ - .git/objects/05/0098e3b05f41a672127d5e730d322cec84e21c
72
73
  - .git/objects/05/38f41ddebf7fa8c71ebe99c5288d5e11c3fb86
73
74
  - .git/objects/05/9bdc20ed12957701f4b3931e2b1779de7adccf
74
75
  - .git/objects/06/c2384aa5f8b5614038b48a726d1d4f98a00f3b
@@ -81,6 +82,7 @@ files:
81
82
  - .git/objects/08/f5dafa9123b7f8d1f22a796c4cba4a4063ad0d
82
83
  - .git/objects/09/20505d42c0044b31ff7b1f86cec6e282e13414
83
84
  - .git/objects/0b/3b3d1048f25fdc0de3f680cdbbd867a42b5a95
85
+ - .git/objects/0b/68897860be3a4a765d6f1788ea4a0e91ff8c6c
84
86
  - .git/objects/0b/e101a0586410212b4ee5905881ad726b7b4907
85
87
  - .git/objects/0c/4df6bee8ffbfd79927b23a070a4c9a41991152
86
88
  - .git/objects/0d/aa3468e187093eff222b8094a6e702dea9ba4e
@@ -110,6 +112,7 @@ files:
110
112
  - .git/objects/18/77033b90ed3dd55a3034b7e3ca1c5c9f66868d
111
113
  - .git/objects/18/adbbbcd043a3ef3e19854df8476b02d69544d0
112
114
  - .git/objects/19/1f68644a3646d774f2546c4cd49ac7d66f4cc2
115
+ - .git/objects/19/c7ed2568bccfa8a745c4d32550ea5e9e47e6f8
113
116
  - .git/objects/1a/929bce5b1c62a0c863ddca593310376374c3bf
114
117
  - .git/objects/1a/ff7d3c3636d032e1245491ca5261355fa4a207
115
118
  - .git/objects/1b/83175202b0bdd9e8aac50c186533c1730aa220
@@ -187,6 +190,7 @@ files:
187
190
  - .git/objects/3e/f23cf310c5eebac930a19d36a0561dd362d3ee
188
191
  - .git/objects/3f/3db6bb5a5204ae58e303959c4c0da3a70d8b35
189
192
  - .git/objects/3f/8f2086049359d8b2b2500a7145afe3040e9c37
193
+ - .git/objects/3f/e10909f96a9d6dc6dcf762e6e236fbbd5cea51
190
194
  - .git/objects/40/215c0554202fc46dc2fca94ed21e2920ce1e84
191
195
  - .git/objects/40/7adfb7f6188b0bb0b88cf9391943e1aaa32374
192
196
  - .git/objects/40/b5d1a81a061ce0e2f315b7e741ec70e0defe1d
@@ -227,6 +231,7 @@ files:
227
231
  - .git/objects/54/713b018cb71a95e3f10510ea96b9f103ef0255
228
232
  - .git/objects/55/0dd68cd7e6918dd1473d609e8cafcde8f89009
229
233
  - .git/objects/55/45d0d521bb723db8feae0223fa838a183e38b7
234
+ - .git/objects/55/4e8e5d25f1c00fb3743766532d9324e623b0a3
230
235
  - .git/objects/55/6c13b26b6cecd286427a7f16c60c86c7df7885
231
236
  - .git/objects/55/d1f1efc344266d472094b1fd2f247b97de1c8b
232
237
  - .git/objects/56/b49aebdec66032571751e38f82d3ce550ccddf
@@ -239,6 +244,7 @@ files:
239
244
  - .git/objects/5a/c5589c8e02ab34cd516e172250c80d4ded5ce6
240
245
  - .git/objects/5c/95be85f2a2a984454fed4941a5ae00062634c5
241
246
  - .git/objects/5c/d7e89f2b29ed92fd51e2c6b2ee74db376d17d7
247
+ - .git/objects/5c/e57246e73624ffb1eb0eee1375f42d8f8b8764
242
248
  - .git/objects/5d/c38b1f2d3893c8e41b05de2d121b525f888e5c
243
249
  - .git/objects/5f/483b0c41645f8882f549c1c6d0274bb592140a
244
250
  - .git/objects/60/74f4e0c668417e06938cb77640240e9c2b6e0e
@@ -279,6 +285,7 @@ files:
279
285
  - .git/objects/6f/72c276ac50a5731aa5f7e7e01dd2793113fe5b
280
286
  - .git/objects/6f/8c62387c94fbb7639a1c1f25df92cab15d2154
281
287
  - .git/objects/71/3ef09968f2aa2abf7a0e908286ec5c80d3b9e9
288
+ - .git/objects/71/8629a1ac1903b2e69404a365610df5e249cee8
282
289
  - .git/objects/71/e6b43e9d41f9903992fd86d483b7d3e4dd28cd
283
290
  - .git/objects/72/48b407130933dbd9ce022836876a906f80cf02
284
291
  - .git/objects/72/4e5bdf19f7d485735b9eb8019d21aa63dcebd5
@@ -308,6 +315,7 @@ files:
308
315
  - .git/objects/81/d4aa3b627dfc7397ce3f71577a8307324b8289
309
316
  - .git/objects/82/0190b802ed213aab7a56a928a09db06e2a90a2
310
317
  - .git/objects/82/03c2c6cdd29e1e20e88fbb81e63b7ea1ec2899
318
+ - .git/objects/82/4ac01aecaa766ea8a7b10ef9d9f67810fdff40
311
319
  - .git/objects/83/6f33959bcf517b9952aefb3fdfdd7ff3c1f207
312
320
  - .git/objects/83/acf31cf1fc7e0e97878d11b2f5c1172bf2d0b2
313
321
  - .git/objects/83/fa8aa3ad64de1003adc5a1c7c31c3d98a7abf4
@@ -325,6 +333,7 @@ files:
325
333
  - .git/objects/8a/d2c8f5ee0627cf48aa39d5f10578f929bfc2c5
326
334
  - .git/objects/8b/7fd3b87e0f2fce82705c50e7c48f9496b7666e
327
335
  - .git/objects/8c/4648d7c914e9d60dc387ff801c97b2d19c97f7
336
+ - .git/objects/8c/b356ae2ff8011edfa68c9683ffeca358213d12
328
337
  - .git/objects/8d/4dcde8df4da8f53f5f5313757b907e9aa1af66
329
338
  - .git/objects/8e/3cfb391de711b5fecfbdf2860fa37b019e8036
330
339
  - .git/objects/8e/69b6cf3ec8b49270091b4a206ccf326679dc20
@@ -360,11 +369,13 @@ files:
360
369
  - .git/objects/9b/8d018e85ce2ef1c2797cea4bf739426a767a02
361
370
  - .git/objects/9b/a1a0e6e5050444fc8743a18341ae219c54aa9b
362
371
  - .git/objects/9c/20b1616810e3d1d5951ea6251ff2d28322dc16
372
+ - .git/objects/9d/3f16cdc12f32c4fa10b7df80eb6e8a09e96a84
363
373
  - .git/objects/9d/66146c5013029dfe26de7404c6fb65c7fd4288
364
374
  - .git/objects/9d/9f28ff50236f1e7f78cbd17b8aa25a0bf8b6fc
365
375
  - .git/objects/9e/a42bcef6b76af65d741384e13c24b8072637d1
366
376
  - .git/objects/9f/0f3e54458d429dd2a1c04e4671398cfa37d595
367
377
  - .git/objects/9f/91a2fdd59ecdfb4f8f5025fdbe590eb536e96f
378
+ - .git/objects/9f/9e3b465a61007276d8fb8246f19fb9700a2667
368
379
  - .git/objects/a0/90ab2a9e739787b6090c187acf95fdd763afef
369
380
  - .git/objects/a0/bb1699784ec98ece5761fb03b0493d68141293
370
381
  - .git/objects/a0/d595c78f280787659a2a4400f5d63578b53dce
@@ -374,7 +385,9 @@ files:
374
385
  - .git/objects/a3/5c311b625d863b50d51e2385259d487e277c90
375
386
  - .git/objects/a3/6956ff51b72b69d1ac2c1ad0d78bb9ad1ade75
376
387
  - .git/objects/a3/84715546f6a11dc7d56a32784dbdd5d7d92e8e
388
+ - .git/objects/a3/98e3f7678f774648fd43e667f958901ba9ee49
377
389
  - .git/objects/a3/ece30fb5827ed20d26a75253bb4854f657055a
390
+ - .git/objects/a4/17e44df78b565923200675742481c9c46af5f4
378
391
  - .git/objects/a4/c75ead5dcfe97a67d302464584be205e8c48b1
379
392
  - .git/objects/a5/4db1bec30f7dc8981c4d5ccf9c9a90c1e13662
380
393
  - .git/objects/a5/601da690031d212d8325b0c23655c6f1f24dcc
@@ -385,6 +398,7 @@ files:
385
398
  - .git/objects/a9/d2b84a743094002fef87a193e681ee721d76ed
386
399
  - .git/objects/aa/427601610df4f8f19f464184221873b4fdbb8d
387
400
  - .git/objects/aa/b7becd23c1123ec701737ae5329314aea3124f
401
+ - .git/objects/ab/0e1583c7a54431f8c4789a7f284cdc30ebb67c
388
402
  - .git/objects/ab/6b7d6c5c5fee246e184a58448682b73b574d6b
389
403
  - .git/objects/ab/825cde00e626431c6045e6886d470327c63001
390
404
  - .git/objects/ab/d27aa19a08f7a172d66da7ab0125838c09317e
@@ -429,6 +443,7 @@ files:
429
443
  - .git/objects/c0/724bc45e241d336d6376f14d9b258c2e4744d4
430
444
  - .git/objects/c1/3cf3c2ea85ec40544fe31702b2cfe6091aed6e
431
445
  - .git/objects/c1/424cadd8817a7e927742e52945f303b38e7222
446
+ - .git/objects/c1/fb376eb3ec3001d492ed32ce7d40019e11d2c2
432
447
  - .git/objects/c2/4bcd795ec0e5c301b9e3006f4bba8079926d4b
433
448
  - .git/objects/c3/20b469c3e447a63e887cefac9c3b5c2b1fb304
434
449
  - .git/objects/c3/dd5ae1e005efb09ef758da1ec17781c616ae9d
@@ -506,6 +521,7 @@ files:
506
521
  - .git/objects/e7/f4b26a3258b7788ffe2665773387e19c01095a
507
522
  - .git/objects/e8/0a14e4bfbbd08f0fee02bc492dc25d22dfed18
508
523
  - .git/objects/e8/0fdfb7dcc3e47a97e3400d4a66739e8c9816c2
524
+ - .git/objects/e8/827e07c9fdeec964594877faa9aaaf28839796
509
525
  - .git/objects/e8/8c08dea8850c34f14a6cb67660174d186f9e0a
510
526
  - .git/objects/e8/901c48443ed6999a3c1b86c435562d2ee54caf
511
527
  - .git/objects/e8/e3794adaa5886984bd0c0ff90980353de03c9b
@@ -611,6 +627,7 @@ files:
611
627
  - lib/rails_ext/hacks/merge_default_scope.rb
612
628
  - lib/rails_ext/hacks/persistent_params.rb
613
629
  - lib/rails_ext/hacks/rjs_layout.rb
630
+ - lib/rails_ext/micelaneous/addressable_uri.rb
614
631
  - lib/rails_ext/micelaneous/config_files.rb
615
632
  - lib/rails_ext/micelaneous/create_public_symlinks.rb
616
633
  - lib/rails_ext/micelaneous/defer_static_javascripts.rb