rails-ext 0.3.25 → 0.3.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/.git/COMMIT_EDITMSG +1 -1
  2. data/.git/index +0 -0
  3. data/.git/logs/HEAD +7 -0
  4. data/.git/logs/refs/heads/master +7 -0
  5. data/.git/logs/refs/remotes/origin/master +7 -0
  6. data/.git/objects/00/bf4a522eac0d76b365a78e115d32e9198bd894 +0 -0
  7. data/.git/objects/02/201f97a6274a90d8808006f474d04ac2b7fb23 +0 -0
  8. data/.git/objects/04/e0575d6cccb2f508b6caf6dc20480788d3b547 +0 -0
  9. data/.git/objects/07/a10d899d45eed94d2f303586053fa61beafba1 +2 -0
  10. data/.git/objects/09/8ec7592a82eddbac50ef9fd8edb44ba758fe32 +0 -0
  11. data/.git/objects/11/a4de82c8d6af37cc1032eca2e57d7bb4de9384 +0 -0
  12. data/.git/objects/12/127234370ddcb15014e711b82aef450ab00d0d +0 -0
  13. data/.git/objects/22/c3512536772afc65a3ce25c6c2b9374b2f0e58 +0 -0
  14. data/.git/objects/23/4d88009c0701a6dd53692f67251dd845a10e63 +0 -0
  15. data/.git/objects/26/f7780cd6f6f06c9986ee53443de25c3f96d40e +0 -0
  16. data/.git/objects/27/f5ff81806eb8da0e533f523963643f99d1ea7d +0 -0
  17. data/.git/objects/2a/a47868a74cd3eea9d22e179f7ebc76d939e3ad +0 -0
  18. data/.git/objects/3b/be86ba70627688a94f1897174afbd99339e297 +0 -0
  19. data/.git/objects/3c/23cdf25978c195d357f91e54a7dc7c165e5a57 +0 -0
  20. data/.git/objects/40/74d7518299342d4346c61a6fd23e9e87839ea0 +0 -0
  21. data/.git/objects/41/c17f87ed699a01d5bc552eb47adf56a00de1fb +0 -0
  22. data/.git/objects/44/62549bcdf9eae0d06886f777206e979d54bffa +0 -0
  23. data/.git/objects/46/ac5f699b680a7e1c54e742dbb485fbba2df0e2 +0 -0
  24. data/.git/objects/4a/696c97f649964a036903659667d19b70d53b62 +2 -0
  25. data/.git/objects/4c/36ce020eb0c8bfdf4900fafe219a2609d64fbd +0 -0
  26. data/.git/objects/4c/4a3c997d99c07fe156316cc70a81186620d49d +0 -0
  27. data/.git/objects/51/e82f783374e237392eda5b01a0268f9d2270b6 +0 -0
  28. data/.git/objects/55/a7e031d478f021eec6f63eb3e5a588da774879 +0 -0
  29. data/.git/objects/59/d97817c069c7e19d5777eb1774d2b066b5d946 +0 -0
  30. data/.git/objects/5b/8b0f2f737c66de86a23c38a1dff88d84f3ee9e +0 -0
  31. data/.git/objects/5c/dbc050a65b83d22571c263ea693a8141ec1f6d +3 -0
  32. data/.git/objects/60/49dde81cf339fc0f75cea08d63421a38bef831 +0 -0
  33. data/.git/objects/61/952915ec910a5245397a04f260b7ba7f0f25e0 +0 -0
  34. data/.git/objects/62/090b14c3261e8416df1e9e7bb80dae3e75d8ae +0 -0
  35. data/.git/objects/64/e2372a55c22f98229481c0b192c764e5fc488e +0 -0
  36. data/.git/objects/65/eced9e4a4c78e60c8383e66621d76c12845bb7 +0 -0
  37. data/.git/objects/71/2aa2c2ef44c499b0251dbe46eee1c90afbdeb6 +0 -0
  38. data/.git/objects/74/8ffcbd337026e3b7b91f35211cdf31fe810f99 +0 -0
  39. data/.git/objects/74/98bab6bdbe90a4a8b5d9cd3a60da65c95c6a43 +0 -0
  40. data/.git/objects/78/f4a053308c275e870a4681a712673c38d115c3 +0 -0
  41. data/.git/objects/7c/584105e7588c3801b61f37046540882f7633e3 +0 -0
  42. data/.git/objects/7c/68e6b44005fe3d1f1c50a07fcbb6585ef8a44c +0 -0
  43. data/.git/objects/7e/925e74fd94ee0fee84788646a1eea8752350a2 +2 -0
  44. data/.git/objects/7f/2f1e8e10a6b78b831b5f9a07e538db8f15104e +0 -0
  45. data/.git/objects/83/839239f8aad0d146d422976139ebac5d35dfad +0 -0
  46. data/.git/objects/84/8c16510c848c64594c8df6a423757513ba6e33 +0 -0
  47. data/.git/objects/85/013aed579984acc4cf2aecab48fa398a2084a9 +0 -0
  48. data/.git/objects/89/6399765b9325bfc3509fe7af5940560cf7742f +0 -0
  49. data/.git/objects/8f/a693bbfa557035aa4cc0c024d1b035d9959b0b +0 -0
  50. data/.git/objects/90/d2e27f1563b3d0bf912f602318d0bca8e1fdf2 +0 -0
  51. data/.git/objects/9c/356fa968ee88fb38a4129fcfbef3eb1b1ba50e +0 -0
  52. data/.git/objects/ab/d21160410b690a5e5e4676a5b84dc1d9e2cd73 +0 -0
  53. data/.git/objects/b0/4717e7fbfb49465723ce213cb05e001142afc1 +0 -0
  54. data/.git/objects/b2/a135cb8023def22524c4f6094d94cbc0c16c69 +0 -0
  55. data/.git/objects/c3/b3be4285d544277181eb2b22f367a6f496a50a +0 -0
  56. data/.git/objects/c5/1b776d4635d2566cb593bd296e65254a23032f +0 -0
  57. data/.git/objects/cb/7b4abf40aef7a56c4e74e101978bf7d58794c3 +0 -0
  58. data/.git/objects/ce/efc114c8fd5ad31b82e1cf19c5c143e6e4ed84 +0 -0
  59. data/.git/objects/d1/94406d71c5484b42f5124142f92c54dac1bef7 +0 -0
  60. data/.git/objects/df/8eb64c4656a48e34f62665ade1f434a3f0e298 +2 -0
  61. data/.git/objects/e2/77b1c4ae5c4f7908061499cf3ea346476c1552 +0 -0
  62. data/.git/objects/f6/1b2020cae7004d97b849c7a58a691ad39d125f +0 -0
  63. data/.git/objects/fc/f17b13f109f3a2d9e9e9bd20d61d38b535a612 +3 -0
  64. data/.git/objects/ff/f82869b9facb77c5c27264f3d585efe2302b5a +0 -0
  65. data/.git/refs/heads/master +1 -1
  66. data/.git/refs/remotes/origin/master +1 -1
  67. data/Rakefile +1 -1
  68. data/lib/interface_builder/controller_helper.rb +30 -0
  69. data/lib/interface_builder/haml_builder.rb +28 -16
  70. data/lib/interface_builder/theme.rb +12 -0
  71. data/lib/interface_builder/view_builder.rb +53 -21
  72. data/lib/interface_builder/view_helper.rb +4 -8
  73. data/lib/interface_builder.rb +26 -0
  74. data/lib/mongo_mapper_ext/mongo_mapper.rb +12 -2
  75. data/public/rails_ext/rails_ext.js +13 -1
  76. data/spec/mongo_mapper_ext/micelaneous_spec.rb +2 -2
  77. data/spec/mongo_mapper_ext/scope_spec.rb +9 -2
  78. data/spec/rails_ext/haml_builder_spec.rb +136 -0
  79. metadata +73 -4
data/.git/COMMIT_EDITMSG CHANGED
@@ -1 +1 @@
1
- upd
1
+ upd theme
data/.git/index CHANGED
Binary file
data/.git/logs/HEAD CHANGED
@@ -79,3 +79,10 @@ e68bedbf8dd4dacaa7f0a681fe083d4b754cb1f7 83e57169d9640366e3a95806fc2c73c98d68603
79
79
  120612cf1c0a44c1433355a4155c1aede0bbceef 911c11ff0ad81999f73c5dee56c8f6241d3ac346 alex <alex@amac.local> 1272821766 +0400 commit: fix
80
80
  911c11ff0ad81999f73c5dee56c8f6241d3ac346 b411eba25774a9466a267e7fcad5b9c238fdada8 alex <alex@amac.local> 1272869285 +0400 commit: fix
81
81
  b411eba25774a9466a267e7fcad5b9c238fdada8 e1ad002c21830c161db252c85fe01b18cd910281 alex <alex@amac.local> 1273155885 +0400 commit: upd
82
+ e1ad002c21830c161db252c85fe01b18cd910281 4a696c97f649964a036903659667d19b70d53b62 alex <alex@amac.local> 1274240399 +0400 commit: add spec for hamlbuilder
83
+ 4a696c97f649964a036903659667d19b70d53b62 7f2f1e8e10a6b78b831b5f9a07e538db8f15104e alex <alex@amac.local> 1274241406 +0400 commit: add custom themes support
84
+ 7f2f1e8e10a6b78b831b5f9a07e538db8f15104e fcf17b13f109f3a2d9e9e9bd20d61d38b535a612 alex <alex@amac.local> 1274254772 +0400 commit: upd theme
85
+ fcf17b13f109f3a2d9e9e9bd20d61d38b535a612 ceefc114c8fd5ad31b82e1cf19c5c143e6e4ed84 alex <alex@amac.local> 1274280592 +0400 commit: tmp theme
86
+ ceefc114c8fd5ad31b82e1cf19c5c143e6e4ed84 07a10d899d45eed94d2f303586053fa61beafba1 alex <alex@amac.local> 1274343288 +0400 commit: tmp theme
87
+ 07a10d899d45eed94d2f303586053fa61beafba1 712aa2c2ef44c499b0251dbe46eee1c90afbdeb6 alex <alex@amac.local> 1274515487 +0400 commit: spec fixes
88
+ 712aa2c2ef44c499b0251dbe46eee1c90afbdeb6 c51b776d4635d2566cb593bd296e65254a23032f alex <alex@amac.local> 1274527321 +0400 commit: upd theme
@@ -79,3 +79,10 @@ e68bedbf8dd4dacaa7f0a681fe083d4b754cb1f7 83e57169d9640366e3a95806fc2c73c98d68603
79
79
  120612cf1c0a44c1433355a4155c1aede0bbceef 911c11ff0ad81999f73c5dee56c8f6241d3ac346 alex <alex@amac.local> 1272821766 +0400 commit: fix
80
80
  911c11ff0ad81999f73c5dee56c8f6241d3ac346 b411eba25774a9466a267e7fcad5b9c238fdada8 alex <alex@amac.local> 1272869285 +0400 commit: fix
81
81
  b411eba25774a9466a267e7fcad5b9c238fdada8 e1ad002c21830c161db252c85fe01b18cd910281 alex <alex@amac.local> 1273155885 +0400 commit: upd
82
+ e1ad002c21830c161db252c85fe01b18cd910281 4a696c97f649964a036903659667d19b70d53b62 alex <alex@amac.local> 1274240399 +0400 commit: add spec for hamlbuilder
83
+ 4a696c97f649964a036903659667d19b70d53b62 7f2f1e8e10a6b78b831b5f9a07e538db8f15104e alex <alex@amac.local> 1274241406 +0400 commit: add custom themes support
84
+ 7f2f1e8e10a6b78b831b5f9a07e538db8f15104e fcf17b13f109f3a2d9e9e9bd20d61d38b535a612 alex <alex@amac.local> 1274254772 +0400 commit: upd theme
85
+ fcf17b13f109f3a2d9e9e9bd20d61d38b535a612 ceefc114c8fd5ad31b82e1cf19c5c143e6e4ed84 alex <alex@amac.local> 1274280592 +0400 commit: tmp theme
86
+ ceefc114c8fd5ad31b82e1cf19c5c143e6e4ed84 07a10d899d45eed94d2f303586053fa61beafba1 alex <alex@amac.local> 1274343288 +0400 commit: tmp theme
87
+ 07a10d899d45eed94d2f303586053fa61beafba1 712aa2c2ef44c499b0251dbe46eee1c90afbdeb6 alex <alex@amac.local> 1274515487 +0400 commit: spec fixes
88
+ 712aa2c2ef44c499b0251dbe46eee1c90afbdeb6 c51b776d4635d2566cb593bd296e65254a23032f alex <alex@amac.local> 1274527321 +0400 commit: upd theme
@@ -64,3 +64,10 @@ e68bedbf8dd4dacaa7f0a681fe083d4b754cb1f7 83e57169d9640366e3a95806fc2c73c98d68603
64
64
  120612cf1c0a44c1433355a4155c1aede0bbceef 911c11ff0ad81999f73c5dee56c8f6241d3ac346 alex <alex@amac.local> 1272821772 +0400 update by push
65
65
  911c11ff0ad81999f73c5dee56c8f6241d3ac346 b411eba25774a9466a267e7fcad5b9c238fdada8 alex <alex@amac.local> 1272869293 +0400 update by push
66
66
  b411eba25774a9466a267e7fcad5b9c238fdada8 e1ad002c21830c161db252c85fe01b18cd910281 alex <alex@amac.local> 1273155894 +0400 update by push
67
+ e1ad002c21830c161db252c85fe01b18cd910281 4a696c97f649964a036903659667d19b70d53b62 alex <alex@amac.local> 1274240404 +0400 update by push
68
+ 4a696c97f649964a036903659667d19b70d53b62 7f2f1e8e10a6b78b831b5f9a07e538db8f15104e alex <alex@amac.local> 1274241410 +0400 update by push
69
+ 7f2f1e8e10a6b78b831b5f9a07e538db8f15104e fcf17b13f109f3a2d9e9e9bd20d61d38b535a612 alex <alex@amac.local> 1274254776 +0400 update by push
70
+ fcf17b13f109f3a2d9e9e9bd20d61d38b535a612 ceefc114c8fd5ad31b82e1cf19c5c143e6e4ed84 alex <alex@amac.local> 1274280597 +0400 update by push
71
+ ceefc114c8fd5ad31b82e1cf19c5c143e6e4ed84 07a10d899d45eed94d2f303586053fa61beafba1 alex <alex@amac.local> 1274343294 +0400 update by push
72
+ 07a10d899d45eed94d2f303586053fa61beafba1 712aa2c2ef44c499b0251dbe46eee1c90afbdeb6 alex <alex@amac.local> 1274515494 +0400 update by push
73
+ 712aa2c2ef44c499b0251dbe46eee1c90afbdeb6 c51b776d4635d2566cb593bd296e65254a23032f alex <alex@amac.local> 1274527328 +0400 update by push
@@ -0,0 +1,2 @@
1
+ x��K
2
+ �0 ��)�/�؆PzE~&�� ����t3��Z�w�֟����$��@r�.�1kKA������U�cM� R���G���8`�$6���v��x���M��e�T�+99p�)�ٲ�F_��������?�
@@ -0,0 +1,2 @@
1
+ x��K
2
+ B1 Ew� ���ӂ�[I��>�<+�|?+pr� ��,�L�o���y�4N�D�R3q��#��$�j��]6�upCdeJ�&��#k�#Jj��y�˺�4��gYDmUi' �0� {��~u��b��+�O�"K+�k3����C�
@@ -0,0 +1,3 @@
1
+ x�R���0�ܯ��Jh����+�.B�+ .Y�=i ��LZ�߱ӴZXT.��y�7��(u����G�ߦ����M7��O;ұX��4��#ѩ;۶
2
+ �� o��hۏE��,���|]����
3
+ �`dHy�vlsF���%Q��.�C,h_2p3F-�E�dŗ 7u�葺��:z��D�-�����ߕu��EJy,"?g��wmcM7Og��H!~�ǿ��N�M"���/RA�~����G$(�
@@ -0,0 +1,2 @@
1
+ x��? �@ ŝ�o����"u���%��Xȵr�!B?�wOh�$��{�SI_�x8�lo�0�N�5T�շb�a
2
+ �L�gM�%��XV2�4 X|���l��6����~.�9�@�h
@@ -0,0 +1,2 @@
1
+ x�S���@ �ܯ0�C%T��Rv,B�+ .���pf�=iwE�w�4-e�].��y�<��8W��ɳ��~�Q�1�=���H7��!����9;-}u/li���^��]���g�׾Ĝ��T$3��V���􌪎6�� &�} x�r?�j����x������l�#еT�`Uj)��DdGWQ���ͼ%|/B����$f�ν��� �����" X���VB]�2�� �'I�H�dq�d��VM!�5Ŝ,�^�TZ0y�
2
+ ՞�����`mr�*��`�Q�XC,�(i�۟�,[���Vh[r�ls�P��ueg�{j���݇#��T���ǁ���N��6Ĺkm�~���We������^��w}� �@�*�Y�.N�oj+a������x�
@@ -0,0 +1,3 @@
1
+ x���
2
+ !���>�� �qt"z�QG6X�X\�񣞠�����i�4wUK��8��9{�F�b�Nbo�5k��
3
+ ������;v�IH,�J򮄞X�O���R#�\��ʪo{��.C�eݪ�7� 1�=������0ǫٹ�P��D=�
@@ -1 +1 @@
1
- e1ad002c21830c161db252c85fe01b18cd910281
1
+ c51b776d4635d2566cb593bd296e65254a23032f
@@ -1 +1 @@
1
- e1ad002c21830c161db252c85fe01b18cd910281
1
+ c51b776d4635d2566cb593bd296e65254a23032f
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.25"
21
+ s.version = "0.3.27"
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"
@@ -0,0 +1,30 @@
1
+ module InterfaceBuilder
2
+ module ControllerHelper
3
+ TEMPLATE_EXTENSIONS = ['html.haml', 'html.erb']
4
+
5
+ def themed_partial_exist? partial
6
+ partial = partial + "_t"
7
+
8
+ partial_fname = if pos = partial.index('/')
9
+ partial.clone.insert(pos + 1, '_')
10
+ else
11
+ "_#{partial}"
12
+ end
13
+
14
+ TEMPLATE_EXTENSIONS.any?{|ext| File.exist? "#{InterfaceBuilder.themes_dir}/#{current_theme.name}/#{partial_fname}.#{ext}"}
15
+ end
16
+ cache_with_params! :themed_partial_exist? unless Rails.development?
17
+
18
+ def themed_partial partial
19
+ if themed_partial_exist? partial
20
+ "/themes/#{current_theme.name}/#{partial}_t"
21
+ else
22
+ "/themes/default/#{partial}_t"
23
+ end
24
+ end
25
+
26
+ def current_theme
27
+ @current_theme ||= InterfaceBuilder::Theme.new
28
+ end
29
+ end
30
+ end
@@ -1,17 +1,17 @@
1
1
  module InterfaceBuilder
2
2
  class HamlBuilder < BlankSlate
3
- def initialize template
3
+ def initialize template, hash = OpenObject.new
4
4
  @template = template
5
- @hash, @array = OpenObject.new, []
5
+ @hash, @array = hash, []
6
6
  end
7
7
 
8
8
  def method_missing m, value = nil, &block
9
- @hash[m] = get_input value, &block
9
+ @hash[m] = HamlBuilder.get_input @template, value, &block
10
10
  nil
11
11
  end
12
12
 
13
13
  def add value = nil, &block
14
- @array << get_input(value, &block)
14
+ @array << HamlBuilder.get_input(@template, value, &block)
15
15
  nil
16
16
  end
17
17
 
@@ -25,20 +25,32 @@ module InterfaceBuilder
25
25
  !@array.empty? ? @array : @hash
26
26
  end
27
27
 
28
- protected
29
- def get_input value, &block
30
- if block
31
- if block.arity <= 0
32
- @template.should_not! :be_nil
33
- @template.capture &block
34
- else
35
- b = HamlBuilder.new @template
36
- block.call b
37
- b.get_value
38
- end
28
+ def self.get_input template, value, &block
29
+ value = value.is_a?(Hash) ? value.to_openobject : value
30
+
31
+ block_value = if block
32
+ if block.arity <= 0
33
+ template.should_not! :be_nil
34
+ template.capture &block
35
+ else
36
+ b = HamlBuilder.new template
37
+ block.call b
38
+ b.get_value
39
+ end
40
+ else
41
+ nil
42
+ end
43
+
44
+ if value and block_value
45
+ if block_value.is_a? Hash
46
+ value = value.merge block_value
39
47
  else
40
- value.is_a?(Hash) ? value.to_openobject : value
48
+ raise "Invalid usage!" if value.include? :content
49
+ value.content = block_value
41
50
  end
42
51
  end
52
+
53
+ value || block_value
54
+ end
43
55
  end
44
56
  end
@@ -0,0 +1,12 @@
1
+ module InterfaceBuilder
2
+ class Theme
3
+ attr_writer :name, :layout_template, :layout
4
+ def name; @name || 'default' end
5
+ def layout_template; @layout_template || 'default' end
6
+ def layout; @layout || 'default' end
7
+
8
+ def metadata
9
+ InterfaceBuilder.theme_metadata(name)
10
+ end
11
+ end
12
+ end
@@ -26,7 +26,16 @@ end}
26
26
  #
27
27
  # Template methods
28
28
  #
29
- PROXY_METHODS = %w{render themed_partial themed_resource content_for capture concat}
29
+ PROXY_METHODS = %w{
30
+ capture
31
+ concat
32
+ content_for
33
+ content_tag
34
+ render
35
+ themed_partial
36
+ themed_partial_exist?
37
+ themed_resource
38
+ }
30
39
  PROXY_METHODS.each do |m|
31
40
  delegate m, :to => :template
32
41
  end
@@ -55,10 +64,12 @@ end}
55
64
 
56
65
  options = {}.to_openobject
57
66
  prepare_form! options, *args
58
-
59
- concat render(:partial => themed_partial('forms/begin'), :object => options)
60
- concat capture(b, &block)
61
- concat render(:partial => themed_partial('forms/end'), :object => options)
67
+
68
+ wrap_theme 'forms/begin', true do
69
+ concat render(:partial => themed_partial('forms/begin'), :object => options)
70
+ concat capture(b, &block)
71
+ concat render(:partial => themed_partial('forms/end'), :object => options)
72
+ end
62
73
  end
63
74
 
64
75
  def form_for(record_or_name_or_array, *args, &proc)
@@ -85,34 +96,55 @@ end}
85
96
  # Rendering Form
86
97
  renderer_options = {}.to_openobject
87
98
  prepare_form! renderer_options, options.delete(:url) || {}, options.delete(:html) || {}
99
+
100
+ wrap_theme 'forms/begin', true do
101
+ concat render(:partial => themed_partial('forms/begin'), :object => renderer_options)
88
102
 
89
- concat render(:partial => themed_partial('forms/begin'), :object => renderer_options)
90
-
91
- options[:builder] = FormBuilders::ThemedFormBuilder
92
- self.template.fields_for(object_name, *(args << options), &proc)
103
+ options[:builder] = FormBuilders::ThemedFormBuilder
104
+ self.template.fields_for(object_name, *(args << options), &proc)
93
105
 
94
- concat render(:partial => themed_partial('forms/end'), :object => renderer_options)
106
+ concat render(:partial => themed_partial('forms/end'), :object => renderer_options)
107
+ end
95
108
  end
96
109
 
97
110
 
98
111
  private
112
+ # We need to wrap top-level default templates (for non-existing templates for current theme) inside '_d' div.
113
+ def wrap_theme partial, concat = false, &block
114
+ unless themed_partial_exist? partial
115
+
116
+ # we don't need _theme_wrapper for dialog and popup, it should be invisible
117
+ classes = if InterfaceBuilder.dont_wrap_into_placeholder.include? partial
118
+ "_d"
119
+ else
120
+ "_d _theme_wrapper"
121
+ end
122
+
123
+ if concat
124
+ self.concat %{<div class="#{classes}">}
125
+ block.call
126
+ self.concat %{</div>}
127
+ else
128
+ html = block.call
129
+ content_tag :div, html, :class => classes
130
+ end
131
+ else
132
+ block.call
133
+ end
134
+ end
135
+
99
136
  def render_haml_builder folder, template, *args, &block
100
137
  opt = args.extract_options!
101
138
  args.size.should! :be_in, 0..1
102
139
  opt[:content] = args.first if args.size == 1
103
140
 
104
- if block
105
- if block.arity <= 0
106
- opt[:content] ||= self.template.capture &block
107
- else
108
- b = HamlBuilder.new self.template
109
- block.call b
110
- opt = opt.merge b.get_value
111
- end
141
+ opt = HamlBuilder.get_input self.template, opt, &block
142
+
143
+ partial = "#{folder}/#{template}"
144
+
145
+ html = wrap_theme partial do
146
+ render :partial => themed_partial(partial), :object => opt
112
147
  end
113
-
114
- opt = opt.to_openobject
115
- html = render :partial => themed_partial("#{folder}/#{template}"), :object => opt
116
148
 
117
149
  block ? self.concat(html) : html
118
150
  end
@@ -8,16 +8,12 @@ module InterfaceBuilder
8
8
  end
9
9
  alias_method :builder, :b
10
10
 
11
- def themed_partial partial
12
- raise "Theme not set!" unless @theme
13
- "/themes/#{@theme}/#{partial}_t"
14
- end
15
-
16
11
  def themed_resource resource
17
- raise "Theme not set!" unless @theme
18
- "/#{InterfaceBuilder.plugin_name.should_not_be!(:blank)}/themes/#{@theme}/#{resource}"
12
+ "/#{InterfaceBuilder.plugin_name.should_not_be!(:blank)}/themes/#{current_theme.name}/#{resource}"
19
13
  end
20
14
 
21
-
15
+ # def current_layout
16
+ # @current_layout || "default"
17
+ # end
22
18
  end
23
19
  end
@@ -4,7 +4,10 @@ require 'interface_builder/view_helper'
4
4
  require 'interface_builder/support'
5
5
 
6
6
  ActionController::Base.class_eval do
7
+ include InterfaceBuilder::ControllerHelper
7
8
  helper InterfaceBuilder::ViewHelper
9
+
10
+ helper_method :themed_partial_exist?, :themed_partial, :current_theme
8
11
  end
9
12
 
10
13
  ActionView::Base.field_error_proc = lambda do |html_tag, instance|
@@ -18,7 +21,30 @@ module InterfaceBuilder
18
21
  def generate_helper_methods *args
19
22
  InterfaceBuilder::ViewBuilder.generate_helper_methods *args
20
23
  end
24
+
25
+ def available_themes; @available_themes ||= [] end
26
+
27
+ # Templates that should be wrapped if it doesn't defined for current theme
28
+ def dont_wrap_into_placeholder; @dont_wrap_into_placeholder ||= Set.new end
29
+
30
+ # TODO 3 don't cache it becouse there's a lots of text data that will be reside in memory.
31
+ def theme_metadata theme
32
+ metadata = {}
33
+ fname = "#{InterfaceBuilder.themes_dir}/#{theme}/metadata.rb"
34
+ if File.exist? fname
35
+ code = File.read fname
36
+ metadata = eval code
37
+ metadata.should! :be_a, Hash
38
+ end
39
+ metadata.to_openobject
40
+ end
41
+ cache_with_params! :theme_metadata unless Rails.development?
42
+
43
+ def themes_dir
44
+ "#{RAILS_ROOT}/vendor/plugins/#{InterfaceBuilder.plugin_name.should_not_be!(:blank)}/app/views/themes"
45
+ end
21
46
  end
47
+
22
48
  end
23
49
 
24
50
  Rails.development{RailsExt.create_public_symlinks!} # rails_ext.css, rails_ext.js in development mode
@@ -3,8 +3,18 @@ MongoMapper.class_eval do
3
3
 
4
4
  def logger
5
5
  # return @logger ||= Logger.new(nil) if defined?(Spec)
6
-
7
- @logger ||= ("irb" == $0) ? Logger.new(STDOUT) : (defined?(Rails) ? Rails.logger : Logger.new(STDOUT))
6
+ unless @logger
7
+ @logger = if "irb" == $0
8
+ Logger.new(STDOUT)
9
+ else
10
+ if defined?(Rails)
11
+ Rails.test? ? Logger.new(nil) : Rails.logger
12
+ else
13
+ Logger.new(STDOUT)
14
+ end
15
+ end
16
+ end
17
+ @logger
8
18
  end
9
19
 
10
20
  def logger= logger
@@ -264,4 +264,16 @@ $.fn.extend({
264
264
  // it doesn't works
265
265
  // $(document).ajaxError(function (e, r, o, e) {
266
266
  // console.log(e);
267
- // });
267
+ // });
268
+
269
+
270
+ //
271
+ // Helpers
272
+ //
273
+ // AJAX for autosubmitting changes
274
+ $.callOnceForEvery('autosubmit', '._autosubmit', function() {
275
+ var e = $(this);
276
+ e.bind('change', function(){
277
+ $.post(e.dataAttr('action'), {value: e.val(), target: e.identify()})
278
+ });
279
+ });
@@ -1,12 +1,12 @@
1
1
  require 'spec'
2
2
  require 'ruby_ext'
3
- require "mongo"
4
3
  require 'mongo_mapper'
5
4
  require "#{File.dirname __FILE__}/../../lib/mongo_mapper_ext/micelaneous"
6
5
 
7
- describe "MongoMapper Default Scope" do
6
+ describe "MongoMapper micelaneous" do
8
7
  before :all do
9
8
  @db = Mongo::Connection.new.db('test')
9
+ MongoMapper.database = 'test'
10
10
  end
11
11
 
12
12
  before :each do
@@ -14,6 +14,7 @@ describe "MongoMapper Default Scope" do
14
14
  plugin MongoMapper::Plugins::DefaultScope
15
15
 
16
16
  key :name, String
17
+ key :_type, String
17
18
  end
18
19
 
19
20
  ScopeSample.delete_all
@@ -46,11 +47,14 @@ describe "MongoMapper Default Scope" do
46
47
  ScopeSample.first.name.should == 'a'
47
48
  end
48
49
 
49
- it "default_scope should be inherited" do
50
+ it "default_scope should be inherited" do
50
51
  ScopeSample.send :default_scope, :name => 'a'
51
52
  class ScopeSampleAncestor < ScopeSample
52
53
  end
53
-
54
+
55
+ ScopeSampleAncestor.create! :name => 'a'
56
+ ScopeSampleAncestor.create! :name => 'b'
57
+
54
58
  ScopeSampleAncestor.count.should == 1
55
59
  ScopeSampleAncestor.all.count.should == 1
56
60
  ScopeSampleAncestor.first.name.should == 'a'
@@ -61,6 +65,9 @@ describe "MongoMapper Default Scope" do
61
65
  class ScopeSampleAncestor2 < ScopeSample
62
66
  default_scope :name => 'b'
63
67
  end
68
+
69
+ ScopeSampleAncestor2.create! :name => 'a'
70
+ ScopeSampleAncestor2.create! :name => 'b'
64
71
 
65
72
  ScopeSampleAncestor2.count.should == 1
66
73
  ScopeSampleAncestor2.all.count.should == 1
@@ -0,0 +1,136 @@
1
+ require 'spec'
2
+
3
+ require 'ruby_ext'
4
+ require 'active_support'
5
+ require "#{File.dirname __FILE__}/../../lib/interface_builder/haml_builder"
6
+
7
+ require 'facets/openobject'
8
+
9
+
10
+ #
11
+ # Don't use should ==, it doesn't works with OpenObject
12
+ #
13
+ describe "HamlBuilder use cases" do
14
+ class TemplateStub
15
+ def self.capture &block
16
+ block.call
17
+ self.output
18
+ end
19
+
20
+ class << self
21
+ attr_accessor :output
22
+ end
23
+ end
24
+
25
+ def build *args, &block
26
+ opt = args.extract_options!
27
+ args.size.should! :be_in, 0..1
28
+ opt[:content] = args.first if args.size == 1
29
+
30
+ r = InterfaceBuilder::HamlBuilder.get_input(TemplateStub, opt, &block)
31
+ convert_to_hashes r
32
+ end
33
+
34
+ def convert_to_hashes value
35
+ if value.is_a? OpenObject
36
+ r = {}
37
+ value.each do |k, v|
38
+ r[k] = convert_to_hashes v
39
+ end
40
+ r
41
+ else
42
+ value
43
+ end
44
+ end
45
+
46
+ it "hash" do
47
+ (build do |o|
48
+ o.a :b
49
+ end).should == {:a => :b}
50
+
51
+ build(:a => :b).should == {:a => :b}
52
+ end
53
+
54
+ it "array" do
55
+ (build do |a|
56
+ a.add 1
57
+ a.add 2
58
+ end).should == {:content => [1, 2]}
59
+
60
+ (build do |o|
61
+ o.a :b
62
+ o.ar do |a|
63
+ a.add 1
64
+ a.add 2
65
+ end
66
+ end).should == {:a => :b, :ar => [1, 2]}
67
+ end
68
+
69
+ it "capture" do
70
+ build("value").should == {:content => "value"}
71
+
72
+ (build do
73
+ TemplateStub.output = "value"
74
+ end).should == {:content => "value"}
75
+
76
+ (build do |o|
77
+ o.content do
78
+ TemplateStub.output = "value"
79
+ end
80
+ end).should == {:content => "value"}
81
+
82
+ (build do |o|
83
+ o.value do
84
+ TemplateStub.output = "value"
85
+ end
86
+ end).should == {:value => "value"}
87
+ end
88
+
89
+ it "invalid usage" do
90
+ lambda{
91
+ build "value" do
92
+ TemplateStub.output = "value"
93
+ end
94
+ }.should raise_error(/Invalid usage!/)
95
+ end
96
+
97
+ it "merge" do
98
+ (build :a => :b do
99
+ TemplateStub.output = "value"
100
+ end).should == {:a => :b, :content => "value"}
101
+
102
+ (build :a => :b do |o|
103
+ o.c :d
104
+ end).should == {:a => :b, :c => :d}
105
+ end
106
+
107
+ it "nested" do
108
+ (build :a => :b do |o|
109
+ o.a do |o|
110
+ o.b :c
111
+ end
112
+ end).should == {
113
+ :a => {:b => :c}
114
+ }
115
+ end
116
+
117
+ it "complex" do
118
+ (build :a => :b do |o|
119
+ o.hs do |h|
120
+ h.c :d
121
+ end
122
+ o.ar do |a|
123
+ a.add 1
124
+ a.add 2
125
+ end
126
+ o.html do
127
+ TemplateStub.output = "value"
128
+ end
129
+ end).should == {
130
+ :a => :b,
131
+ :hs => {:c => :d},
132
+ :ar => [1, 2],
133
+ :html => 'value'
134
+ }
135
+ end
136
+ end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-ext
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 37
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 3
8
- - 25
9
- version: 0.3.25
9
+ - 27
10
+ version: 0.3.27
10
11
  platform: ruby
11
12
  authors:
12
13
  - Alexey Petrushin
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-06 00:00:00 +04:00
18
+ date: 2010-05-22 00:00:00 +04:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: ruby-ext
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -61,16 +64,19 @@ files:
61
64
  - .git/logs/HEAD
62
65
  - .git/logs/refs/heads/master
63
66
  - .git/logs/refs/remotes/origin/master
67
+ - .git/objects/00/bf4a522eac0d76b365a78e115d32e9198bd894
64
68
  - .git/objects/00/cc0fab85c28c827b7489c092c7fdfacaab2c15
65
69
  - .git/objects/00/e06caeaae19732437b0181b5dbdf916c2c59e3
66
70
  - .git/objects/00/e127e49ab0f08a8190bf5a95777c972603de9a
67
71
  - .git/objects/00/fd8045e0953bb11a521248dc27d4af2336c6d5
68
72
  - .git/objects/02/12d2da342b1ab3c0e7a7f2770686a7bb5d7806
73
+ - .git/objects/02/201f97a6274a90d8808006f474d04ac2b7fb23
69
74
  - .git/objects/02/469b717b4bd61ad27a3fe664ce0646a8325399
70
75
  - .git/objects/03/3c38dc100f22a049c8be12ab9209245c9bd91e
71
76
  - .git/objects/03/9e318355ab5ab32c3b6bc634d3d8e64f444ef8
72
77
  - .git/objects/04/63ea30a2d07f0934d75e4001c6614a2ee046b3
73
78
  - .git/objects/04/cd62e7f8158fe54d21e6f63617c43b593b8b59
79
+ - .git/objects/04/e0575d6cccb2f508b6caf6dc20480788d3b547
74
80
  - .git/objects/05/0098e3b05f41a672127d5e730d322cec84e21c
75
81
  - .git/objects/05/38f41ddebf7fa8c71ebe99c5288d5e11c3fb86
76
82
  - .git/objects/05/73ef490a937cd853c8d8d6affb63851451e0a3
@@ -79,11 +85,13 @@ files:
79
85
  - .git/objects/06/c3225bad9d5b80e7b3bde79ff3c2da591722bf
80
86
  - .git/objects/06/dbd9b08e58e2a56239d39680e2ff47fb1ae157
81
87
  - .git/objects/07/9ef6b10f536af792f4cf5d131857baa28751e7
88
+ - .git/objects/07/a10d899d45eed94d2f303586053fa61beafba1
82
89
  - .git/objects/07/f7d26527e58caa2fa99e33b29a7791b9eb8b3e
83
90
  - .git/objects/08/657a1cfcf74f1f82d863b1c8ca6e9a3e94cc61
84
91
  - .git/objects/08/bba6f68e3626f05fcfa8bcd10714aac9943407
85
92
  - .git/objects/08/f5dafa9123b7f8d1f22a796c4cba4a4063ad0d
86
93
  - .git/objects/09/20505d42c0044b31ff7b1f86cec6e282e13414
94
+ - .git/objects/09/8ec7592a82eddbac50ef9fd8edb44ba758fe32
87
95
  - .git/objects/0a/5bba4be8673937b54e32f349c32ec984838a11
88
96
  - .git/objects/0b/1a882513f514fe05177cc54f4480141b195956
89
97
  - .git/objects/0b/3b3d1048f25fdc0de3f680cdbbd867a42b5a95
@@ -105,7 +113,9 @@ files:
105
113
  - .git/objects/10/bfe1230b9d96e23600091cc8b4b9d378068101
106
114
  - .git/objects/11/7c771659caad8e7095366a541ab4ed0f4443df
107
115
  - .git/objects/11/9db1e92a2d4c7ff2c6d9a58940aa25d8bd4bc3
116
+ - .git/objects/11/a4de82c8d6af37cc1032eca2e57d7bb4de9384
108
117
  - .git/objects/12/0612cf1c0a44c1433355a4155c1aede0bbceef
118
+ - .git/objects/12/127234370ddcb15014e711b82aef450ab00d0d
109
119
  - .git/objects/13/882df4f2ef911454bf3b69a85742b372723366
110
120
  - .git/objects/13/a8efff96c74f758b770a3d6825e8ede1163130
111
121
  - .git/objects/13/d5e53963c37e20ff517035b00f6b404c0e8056
@@ -148,6 +158,8 @@ files:
148
158
  - .git/objects/20/e9be8cac4e5edec77718e3578fd718f2bc3706
149
159
  - .git/objects/21/8b2cb256a71b42e9acbe53e4768c227ac2528e
150
160
  - .git/objects/21/e143c036491275aaa7d6e45ed4683f5defdae2
161
+ - .git/objects/22/c3512536772afc65a3ce25c6c2b9374b2f0e58
162
+ - .git/objects/23/4d88009c0701a6dd53692f67251dd845a10e63
151
163
  - .git/objects/23/5220c01211d9f16a21f2526ceade3459259cf0
152
164
  - .git/objects/23/926daa53cee50268bd329a8b4cbd853cb3a45b
153
165
  - .git/objects/23/e505621c5c822c481e179a47d23c523101fc20
@@ -161,8 +173,10 @@ files:
161
173
  - .git/objects/25/fa15d9a065f0d6e7ff2756b369c6a81799b03e
162
174
  - .git/objects/26/0e9c6d3781e3ea13d10067398a51a2d5d7bf51
163
175
  - .git/objects/26/8fe011dd9d01aa6e05c2004280b78e149ea29e
176
+ - .git/objects/26/f7780cd6f6f06c9986ee53443de25c3f96d40e
164
177
  - .git/objects/27/37bd94ff477fad57bb86f0a3e37110f6a75cb5
165
178
  - .git/objects/27/c51d8db9f25b7b6596dceb626252c90fd26b57
179
+ - .git/objects/27/f5ff81806eb8da0e533f523963643f99d1ea7d
166
180
  - .git/objects/27/f64dfbca8c6e228425b7e63b48eed190d29780
167
181
  - .git/objects/27/f8a63386b8acf5edba3ed9334644455045acd8
168
182
  - .git/objects/28/0d2d83eb4aa5fb48fefa1a8ceab6761cd9288d
@@ -175,6 +189,7 @@ files:
175
189
  - .git/objects/29/b1f8abaed4aea1da8f8bd5f1bd81c26058c41a
176
190
  - .git/objects/2a/04524c8458b2d0cd9bcec579f9d54368a9d35f
177
191
  - .git/objects/2a/0ababefe6746dc4b945e3054349c31dcdd816c
192
+ - .git/objects/2a/a47868a74cd3eea9d22e179f7ebc76d939e3ad
178
193
  - .git/objects/2b/0fbe9a4022a4a112d2fa583f79dc6221ef2baf
179
194
  - .git/objects/2c/21f9d1b567c0d8f3d74e71b38beee67a53afdc
180
195
  - .git/objects/2c/633c11fb72405c6646493bc6c4d8c4fed0b9a6
@@ -210,8 +225,10 @@ files:
210
225
  - .git/objects/3a/9e689945632d5c0a5e2c99096a2c66d79b17dc
211
226
  - .git/objects/3a/ff2a7bfdf3a677812899ede62d084369c7c5f4
212
227
  - .git/objects/3b/354d07a5bb5780eeffa4c12968214b1edb8b24
228
+ - .git/objects/3b/be86ba70627688a94f1897174afbd99339e297
213
229
  - .git/objects/3b/cebd028c4b8312b2c36b14eddb57836c328a67
214
230
  - .git/objects/3b/da284efc6c07900db7dd00a9f3082d2c13d55e
231
+ - .git/objects/3c/23cdf25978c195d357f91e54a7dc7c165e5a57
215
232
  - .git/objects/3c/2d2112bcfaab44b4c9385a1e57a9fa74e4dab1
216
233
  - .git/objects/3c/994e760012127915c1494a073cea51ef3b43e8
217
234
  - .git/objects/3d/5b84167d35cb75647f38a6d475a452ba3c6178
@@ -225,12 +242,16 @@ files:
225
242
  - .git/objects/3f/e10909f96a9d6dc6dcf762e6e236fbbd5cea51
226
243
  - .git/objects/40/01df088dada11d1dc4f0a197f3ee74db62a376
227
244
  - .git/objects/40/215c0554202fc46dc2fca94ed21e2920ce1e84
245
+ - .git/objects/40/74d7518299342d4346c61a6fd23e9e87839ea0
228
246
  - .git/objects/40/7adfb7f6188b0bb0b88cf9391943e1aaa32374
229
247
  - .git/objects/40/b5d1a81a061ce0e2f315b7e741ec70e0defe1d
230
248
  - .git/objects/40/f31192acfd64b4f9526c4c254e8b82c79975b5
249
+ - .git/objects/41/c17f87ed699a01d5bc552eb47adf56a00de1fb
231
250
  - .git/objects/43/6b9b73da4632657be4800b250741f37fdbb505
251
+ - .git/objects/44/62549bcdf9eae0d06886f777206e979d54bffa
232
252
  - .git/objects/44/c96e2a778dcc62c10b3c329ab0211115a9f546
233
253
  - .git/objects/46/3353505eed0c799d05f025788437decbabafec
254
+ - .git/objects/46/ac5f699b680a7e1c54e742dbb485fbba2df0e2
234
255
  - .git/objects/46/d12e0420cd6341a2720730cc45703fc835efb6
235
256
  - .git/objects/47/28fde4426b545c73552bd5e0f79296a2b4be19
236
257
  - .git/objects/47/468bfa5f120e264ca0217c72702928dbf01511
@@ -241,6 +262,7 @@ files:
241
262
  - .git/objects/49/66cd792ea3e03d5091aa7a332f2a082e479a76
242
263
  - .git/objects/49/b7ee2b8f19ff0639d351fd5f3616c1360ff700
243
264
  - .git/objects/49/ca132451f70ee989ff7a7cf487b029fe706b28
265
+ - .git/objects/4a/696c97f649964a036903659667d19b70d53b62
244
266
  - .git/objects/4a/7160238a500fa567412510e6a26ea5e7ca6a03
245
267
  - .git/objects/4a/80705702f499ef1278630257a33c6088238ba3
246
268
  - .git/objects/4a/be35eba6ed159578e3f43f6ffa8ea7541598e2
@@ -248,6 +270,8 @@ files:
248
270
  - .git/objects/4b/3094a73ceac394879934124956e84c39892fe4
249
271
  - .git/objects/4b/679db9ab667a78890277de9a35c46250f14c7f
250
272
  - .git/objects/4b/dc08eafe8a2047b95f3c83dbfc3bcdc149506b
273
+ - .git/objects/4c/36ce020eb0c8bfdf4900fafe219a2609d64fbd
274
+ - .git/objects/4c/4a3c997d99c07fe156316cc70a81186620d49d
251
275
  - .git/objects/4c/c50af870afc44ad7a42ae722e74cab60d65af9
252
276
  - .git/objects/4d/991a018b0c697fa119efe7aaf55df0a1c7af8e
253
277
  - .git/objects/4d/b378ba37f16ac1172ed36b47659e765ac4f7ba
@@ -261,6 +285,7 @@ files:
261
285
  - .git/objects/51/11b97bb02d8fedbfa591f64a82c27ea2204a22
262
286
  - .git/objects/51/30873e42295a8890810ec77fd65050280901b5
263
287
  - .git/objects/51/bc541de1a4c2a516eeefbb2ba1467d9e415de2
288
+ - .git/objects/51/e82f783374e237392eda5b01a0268f9d2270b6
264
289
  - .git/objects/52/5fcb274029ec36780b264166ea3d487d968997
265
290
  - .git/objects/52/ae6e30a63029fc7b67e3eba6efbe4edade7b9c
266
291
  - .git/objects/53/2ff954f947901011d76dcc1e335c2d52e5706c
@@ -272,6 +297,7 @@ files:
272
297
  - .git/objects/55/45d0d521bb723db8feae0223fa838a183e38b7
273
298
  - .git/objects/55/4e8e5d25f1c00fb3743766532d9324e623b0a3
274
299
  - .git/objects/55/6c13b26b6cecd286427a7f16c60c86c7df7885
300
+ - .git/objects/55/a7e031d478f021eec6f63eb3e5a588da774879
275
301
  - .git/objects/55/d1f1efc344266d472094b1fd2f247b97de1c8b
276
302
  - .git/objects/56/b49aebdec66032571751e38f82d3ce550ccddf
277
303
  - .git/objects/56/d4d25c979129176da0f447726f3eecf611973b
@@ -282,28 +308,36 @@ files:
282
308
  - .git/objects/58/afb8f5e23412a42d4ccf5699bcd8c3048d5494
283
309
  - .git/objects/59/0ef6ba9931d75fbddc7a940044dbaaa50efc76
284
310
  - .git/objects/59/7b19d2ba6f1d46f75f702cbacf8828b7b506f9
311
+ - .git/objects/59/d97817c069c7e19d5777eb1774d2b066b5d946
285
312
  - .git/objects/5a/35fa85474278f3c817aa59d07b725428c41a28
286
313
  - .git/objects/5a/c5589c8e02ab34cd516e172250c80d4ded5ce6
314
+ - .git/objects/5b/8b0f2f737c66de86a23c38a1dff88d84f3ee9e
287
315
  - .git/objects/5c/95be85f2a2a984454fed4941a5ae00062634c5
288
316
  - .git/objects/5c/d7e89f2b29ed92fd51e2c6b2ee74db376d17d7
317
+ - .git/objects/5c/dbc050a65b83d22571c263ea693a8141ec1f6d
289
318
  - .git/objects/5c/e57246e73624ffb1eb0eee1375f42d8f8b8764
290
319
  - .git/objects/5d/c38b1f2d3893c8e41b05de2d121b525f888e5c
291
320
  - .git/objects/5e/2b259a6488f50b8720ba1a4218ceb389f15341
292
321
  - .git/objects/5f/483b0c41645f8882f549c1c6d0274bb592140a
293
322
  - .git/objects/60/2f24a20e697369f97c5c20a77b3c713dab59d4
323
+ - .git/objects/60/49dde81cf339fc0f75cea08d63421a38bef831
294
324
  - .git/objects/60/74f4e0c668417e06938cb77640240e9c2b6e0e
295
325
  - .git/objects/60/a42d757f842f6ce1a27284630ffd3deb867857
296
326
  - .git/objects/60/a681e873ca0ae0b7da3f37dbc5701f6e42b970
297
327
  - .git/objects/61/16fb26eb219d3ac6926221d57a0342aa2a8d56
298
328
  - .git/objects/61/32f3f8005ce5b88165162ac5542e54d0472a82
329
+ - .git/objects/61/952915ec910a5245397a04f260b7ba7f0f25e0
330
+ - .git/objects/62/090b14c3261e8416df1e9e7bb80dae3e75d8ae
299
331
  - .git/objects/62/2e59d90f16452aeeaadc01b1cacfda6c9c7160
300
332
  - .git/objects/62/881631df674271b3880d9ca46bd76401e1a42e
301
333
  - .git/objects/63/7824b973d490697b068edb60a4a644f992301c
302
334
  - .git/objects/63/e3ecfd9b00f7111c9d9bb8e734e0c04ab44583
303
335
  - .git/objects/64/96d7c4cc0c824e706bf757f9ec63b5553c9caf
336
+ - .git/objects/64/e2372a55c22f98229481c0b192c764e5fc488e
304
337
  - .git/objects/65/51094fa3b996ff25b88d7ddb21d21a811d53fc
305
338
  - .git/objects/65/e77ca17328dfeb3477287af40fb834284c8f61
306
339
  - .git/objects/65/eb5981a1bac28b5f171c36dfbfeaae3e985a50
340
+ - .git/objects/65/eced9e4a4c78e60c8383e66621d76c12845bb7
307
341
  - .git/objects/66/37f98202acb1895cb347d7c5fb5c414dd9e6db
308
342
  - .git/objects/66/95d9ac4648cdadd9922d3b355a1d6f56547f4c
309
343
  - .git/objects/66/be69882c43c5642f6af459e1748f4e8971491d
@@ -335,6 +369,7 @@ files:
335
369
  - .git/objects/6e/b67e3ad9f44898acced6d861f9743dad07e49c
336
370
  - .git/objects/6f/72c276ac50a5731aa5f7e7e01dd2793113fe5b
337
371
  - .git/objects/6f/8c62387c94fbb7639a1c1f25df92cab15d2154
372
+ - .git/objects/71/2aa2c2ef44c499b0251dbe46eee1c90afbdeb6
338
373
  - .git/objects/71/3ef09968f2aa2abf7a0e908286ec5c80d3b9e9
339
374
  - .git/objects/71/8629a1ac1903b2e69404a365610df5e249cee8
340
375
  - .git/objects/71/e6b43e9d41f9903992fd86d483b7d3e4dd28cd
@@ -343,6 +378,8 @@ files:
343
378
  - .git/objects/73/667b7ae341d478513ba0bd6ec8af0aa1f62f0d
344
379
  - .git/objects/74/4d46a654ae9e0867055184f2011668c7e1acd2
345
380
  - .git/objects/74/8b7f980add2fb559bddc507a233426ec2880c4
381
+ - .git/objects/74/8ffcbd337026e3b7b91f35211cdf31fe810f99
382
+ - .git/objects/74/98bab6bdbe90a4a8b5d9cd3a60da65c95c6a43
346
383
  - .git/objects/74/cbd0ceb2fd02c8b0db831b969c490e92c0ae99
347
384
  - .git/objects/74/ce4a58ebf96006e1e9be0980b99ac3b5b820c7
348
385
  - .git/objects/74/d8411c7276b4e1c1f614606af7f69ab4526d30
@@ -354,6 +391,7 @@ files:
354
391
  - .git/objects/77/6e03ab9139aab1e0e8d551a75c3c0145fd9322
355
392
  - .git/objects/78/cfbab8bbda08337c77019743e6b22575bfba1f
356
393
  - .git/objects/78/dfe98fd2685e6fd0b937d866e5dfb1c83ae589
394
+ - .git/objects/78/f4a053308c275e870a4681a712673c38d115c3
357
395
  - .git/objects/79/0a80b72f6f6f214ece6a3e71e818effc5c9e6e
358
396
  - .git/objects/79/4750e930e297c9616e902898f684967c2760c7
359
397
  - .git/objects/79/b917ac5d56e3bffb0f63a9e3119ed32d638d42
@@ -365,12 +403,16 @@ files:
365
403
  - .git/objects/7b/5c4d98eb195890b76abb20b73014d23554e655
366
404
  - .git/objects/7b/797f342ba8dfa60c25492c142ddd7499243de0
367
405
  - .git/objects/7b/f12fa27542b09a968ac9b1ceedc1a71bfd6ce8
406
+ - .git/objects/7c/584105e7588c3801b61f37046540882f7633e3
407
+ - .git/objects/7c/68e6b44005fe3d1f1c50a07fcbb6585ef8a44c
368
408
  - .git/objects/7c/d6496ed2dbb6dc550d2080954a5485bff16e7f
369
409
  - .git/objects/7c/ecdf8b52167f490bafb6948b0413855923e3d4
370
410
  - .git/objects/7d/156826045e2eef7611f3fcad3adee9c17c2c02
371
411
  - .git/objects/7d/6cd855bdf8661fab653f9f2de1195a6552e458
372
412
  - .git/objects/7d/978ee312ca2119dc84e40431182b8f68e42f53
413
+ - .git/objects/7e/925e74fd94ee0fee84788646a1eea8752350a2
373
414
  - .git/objects/7e/ca6f113845c2dcdf536daa084349445d608879
415
+ - .git/objects/7f/2f1e8e10a6b78b831b5f9a07e538db8f15104e
374
416
  - .git/objects/7f/5a29b185109286dba66581a28bcbe2ec398f9a
375
417
  - .git/objects/80/1343ae84fe604b9fb93fb2265d2e3a49f25d3e
376
418
  - .git/objects/80/4a20e92f38623945cdb50ed8864d014632cf44
@@ -381,12 +423,15 @@ files:
381
423
  - .git/objects/82/03c2c6cdd29e1e20e88fbb81e63b7ea1ec2899
382
424
  - .git/objects/82/4ac01aecaa766ea8a7b10ef9d9f67810fdff40
383
425
  - .git/objects/83/6f33959bcf517b9952aefb3fdfdd7ff3c1f207
426
+ - .git/objects/83/839239f8aad0d146d422976139ebac5d35dfad
384
427
  - .git/objects/83/acf31cf1fc7e0e97878d11b2f5c1172bf2d0b2
385
428
  - .git/objects/83/b834761b24c759d71e6fb8121dcf127290454e
386
429
  - .git/objects/83/e57169d9640366e3a95806fc2c73c98d686033
387
430
  - .git/objects/83/fa8aa3ad64de1003adc5a1c7c31c3d98a7abf4
431
+ - .git/objects/84/8c16510c848c64594c8df6a423757513ba6e33
388
432
  - .git/objects/84/a211c6a73f57c4bb5e04e4abbb21ccd36fb18f
389
433
  - .git/objects/84/bfc21516dfc947e9aa64a47000b46da2c801d9
434
+ - .git/objects/85/013aed579984acc4cf2aecab48fa398a2084a9
390
435
  - .git/objects/85/eee9f4c1a6f710ed87bf28a0531275777f8848
391
436
  - .git/objects/85/fd531f7352ad8f5ac030eed2204a662dd10a66
392
437
  - .git/objects/86/23de615f686de621ca23cbbff6a07885101df9
@@ -396,6 +441,7 @@ files:
396
441
  - .git/objects/87/fc827fd223cac6b4e55d823a9ea86bb0726a3b
397
442
  - .git/objects/88/b888ea16fb14478c659390ce54e980b86198ef
398
443
  - .git/objects/89/2697494eb70fdccaf26bf547bb8d7428c0e5ff
444
+ - .git/objects/89/6399765b9325bfc3509fe7af5940560cf7742f
399
445
  - .git/objects/8a/aab49eba03e27c96ee9b67f91404e33687679a
400
446
  - .git/objects/8a/d2c8f5ee0627cf48aa39d5f10578f929bfc2c5
401
447
  - .git/objects/8b/7fd3b87e0f2fce82705c50e7c48f9496b7666e
@@ -411,12 +457,14 @@ files:
411
457
  - .git/objects/8e/fa16421582098dd9791648690ad67b30217f72
412
458
  - .git/objects/8f/53b7b2ab88b130763bc42b3ded7983d27bff7a
413
459
  - .git/objects/8f/5465ea782955ad019122d92a0f162945339f8e
460
+ - .git/objects/8f/a693bbfa557035aa4cc0c024d1b035d9959b0b
414
461
  - .git/objects/90/57dd59aea225dd8f4b1dfa3e10c6096671fab9
415
462
  - .git/objects/90/5fe8a081a30b8d3d198590c434e8d0e3b0a4a2
416
463
  - .git/objects/90/8c06f1a239ced6b5784c851e30c8df6780fcce
417
464
  - .git/objects/90/a3187c0cfd6ae0de236633da361820a4cf1b19
418
465
  - .git/objects/90/ad7b150bde29d3a30f4a8ddd2463249e6c4418
419
466
  - .git/objects/90/ca84ea326afab5fcc92a50469c2052ebc46f11
467
+ - .git/objects/90/d2e27f1563b3d0bf912f602318d0bca8e1fdf2
420
468
  - .git/objects/91/1c11ff0ad81999f73c5dee56c8f6241d3ac346
421
469
  - .git/objects/92/86350a9f88f0c2583294fa8319dd2d425e153b
422
470
  - .git/objects/92/dc044f4d69a5cb3a6a3109c2ce6b7f90bac2ab
@@ -445,6 +493,7 @@ files:
445
493
  - .git/objects/9b/8d018e85ce2ef1c2797cea4bf739426a767a02
446
494
  - .git/objects/9b/a1a0e6e5050444fc8743a18341ae219c54aa9b
447
495
  - .git/objects/9c/20b1616810e3d1d5951ea6251ff2d28322dc16
496
+ - .git/objects/9c/356fa968ee88fb38a4129fcfbef3eb1b1ba50e
448
497
  - .git/objects/9d/23038fb44baa1cf819d782b731f77e281f2e06
449
498
  - .git/objects/9d/3f16cdc12f32c4fa10b7df80eb6e8a09e96a84
450
499
  - .git/objects/9d/66146c5013029dfe26de7404c6fb65c7fd4288
@@ -483,6 +532,7 @@ files:
483
532
  - .git/objects/ab/0e1583c7a54431f8c4789a7f284cdc30ebb67c
484
533
  - .git/objects/ab/6b7d6c5c5fee246e184a58448682b73b574d6b
485
534
  - .git/objects/ab/825cde00e626431c6045e6886d470327c63001
535
+ - .git/objects/ab/d21160410b690a5e5e4676a5b84dc1d9e2cd73
486
536
  - .git/objects/ab/d27aa19a08f7a172d66da7ab0125838c09317e
487
537
  - .git/objects/ac/92bcf6c74d23824c3c7ce341f667507592c7f9
488
538
  - .git/objects/ac/a1ad63cec98e0b3dae23fbe088f5a5d2125a7a
@@ -496,10 +546,12 @@ files:
496
546
  - .git/objects/b0/2d1be335e81533c7385970b28ea3b2a0ac5436
497
547
  - .git/objects/b0/39fcd38009980eb74d6bcef22d11e02639a530
498
548
  - .git/objects/b0/426bd4d76304278e6af43ce2d708ad26335514
549
+ - .git/objects/b0/4717e7fbfb49465723ce213cb05e001142afc1
499
550
  - .git/objects/b1/0d2b27582bb0d779efe6e17c45aaa671d32f3a
500
551
  - .git/objects/b1/2623653bc803aeab5b77efdc72f79fb8f9c80e
501
552
  - .git/objects/b1/8a3c6bf39b910b9805973578074e6d6b692a4a
502
553
  - .git/objects/b2/99ac9d0ac730461d7610161b99ee4191c7c2b8
554
+ - .git/objects/b2/a135cb8023def22524c4f6094d94cbc0c16c69
503
555
  - .git/objects/b2/cd852090540d0b2450b901397edd924d8c0ba9
504
556
  - .git/objects/b3/c029798d5af50b4ab725aee6cf66ee11c4ff7a
505
557
  - .git/objects/b4/0345153922bfcdbbc4785cc3146e9e7c60dbbd
@@ -537,12 +589,14 @@ files:
537
589
  - .git/objects/c2/4bcd795ec0e5c301b9e3006f4bba8079926d4b
538
590
  - .git/objects/c2/9192909f54c615ab98c9489815a02a26457ff4
539
591
  - .git/objects/c3/20b469c3e447a63e887cefac9c3b5c2b1fb304
592
+ - .git/objects/c3/b3be4285d544277181eb2b22f367a6f496a50a
540
593
  - .git/objects/c3/dd5ae1e005efb09ef758da1ec17781c616ae9d
541
594
  - .git/objects/c3/e12a8de544ec3ff9de16a8f6922d4c7ba42dfe
542
595
  - .git/objects/c4/0f87d366f511d03a513ece12232ce9787b9e6a
543
596
  - .git/objects/c4/3553ba14f97cbddefa4cf70bcc5b39c8e61933
544
597
  - .git/objects/c4/524d9d99c6072949bfc565f78b7a62577ffa3f
545
598
  - .git/objects/c4/7ead0b6604e6627e887f2f2e8909a8b409ae5a
599
+ - .git/objects/c5/1b776d4635d2566cb593bd296e65254a23032f
546
600
  - .git/objects/c5/208dea612df35fb84ceeda0649c103c32e2240
547
601
  - .git/objects/c5/3b27c9641ea1c2aed192672b67ba8c4034b2ad
548
602
  - .git/objects/c5/64ac68ebc8e0db7a6355a45f3299829ef2a825
@@ -557,6 +611,7 @@ files:
557
611
  - .git/objects/ca/a9edd4de82aa3abec99946e92da9225efb83bc
558
612
  - .git/objects/ca/c13b06411cdb70ac35d51ecf9efb0907645bd1
559
613
  - .git/objects/cb/52d0a9c9540d1d9aba011e8445d57236dafb74
614
+ - .git/objects/cb/7b4abf40aef7a56c4e74e101978bf7d58794c3
560
615
  - .git/objects/cc/526ac5557b0d8d6b94adbb6ef656cd68d3657d
561
616
  - .git/objects/cc/631f0ac75233f9984bbe8fadc701c3275edc20
562
617
  - .git/objects/cd/a2dd4b5ecbc69fa1b1ebf09c580ba17bf69656
@@ -564,11 +619,13 @@ files:
564
619
  - .git/objects/ce/558ace2912de6c83d5d7e9d49f3606af6babcf
565
620
  - .git/objects/ce/765d12145624d05ff844166237788fd200aa22
566
621
  - .git/objects/ce/9f57b27b6ce829b159d29b483e27976a431231
622
+ - .git/objects/ce/efc114c8fd5ad31b82e1cf19c5c143e6e4ed84
567
623
  - .git/objects/d0/a9b291d92a5e07655d57b9486579e56d126559
568
624
  - .git/objects/d0/ca1129a25def590908081d9dc166d5288fddf0
569
625
  - .git/objects/d1/38a420782e818f3f87c6c8c0a0a135639a30d9
570
626
  - .git/objects/d1/7ff61278b2c669eaab5f6d7f741c39f39e18f9
571
627
  - .git/objects/d1/8453475c9dfae46ee83dc7e7bd2a66bddfdffe
628
+ - .git/objects/d1/94406d71c5484b42f5124142f92c54dac1bef7
572
629
  - .git/objects/d2/85be6e2891e063625d4904c9bcca42bf6f0b83
573
630
  - .git/objects/d2/e6c5c581e53fce6c86bec58d60e7ede3ec4a52
574
631
  - .git/objects/d3/090290f6f317ca51efd4d2913bc079ba115078
@@ -601,6 +658,7 @@ files:
601
658
  - .git/objects/de/42e0639597129c9471918171ee5622c031dd19
602
659
  - .git/objects/de/513632cf9d7755d57fa2cde261bc6822335d40
603
660
  - .git/objects/de/57906fbec41c830adf724743fd20dba762acab
661
+ - .git/objects/df/8eb64c4656a48e34f62665ade1f434a3f0e298
604
662
  - .git/objects/df/f63029f32b25c2bf18d0f3f4e7907daa7c1bca
605
663
  - .git/objects/e0/444cc3908c5096319636ca42c403a78deda3f9
606
664
  - .git/objects/e0/7dd2a6b90bdde86477d621148f47bbba9e8427
@@ -609,6 +667,7 @@ files:
609
667
  - .git/objects/e1/323977dc6cda25967e6ec6166430c2c0f08e32
610
668
  - .git/objects/e1/ad002c21830c161db252c85fe01b18cd910281
611
669
  - .git/objects/e2/30f8b3acd20695be0a13fdd42aefa364ad1a4d
670
+ - .git/objects/e2/77b1c4ae5c4f7908061499cf3ea346476c1552
612
671
  - .git/objects/e2/bc2615d3aa154bba2897c562a15ed19136d518
613
672
  - .git/objects/e2/c37248908c561be703c405e237fbf0c743977a
614
673
  - .git/objects/e2/df18fc21e446588205694aef1de7d63ca31b4f
@@ -666,6 +725,7 @@ files:
666
725
  - .git/objects/f5/8ca6b23d3ab90715ea6ba514546a416e50064e
667
726
  - .git/objects/f5/91a5c39e03e2102c9101db957b48c8c76e194c
668
727
  - .git/objects/f6/0fd8c2582e0f7688877f12f78ddb97a291046c
728
+ - .git/objects/f6/1b2020cae7004d97b849c7a58a691ad39d125f
669
729
  - .git/objects/f6/3ad03a8daa1602df63aab3838947c18fa63797
670
730
  - .git/objects/f6/b9bcda0a6940c634c0ac0d6ac626028927e1da
671
731
  - .git/objects/f7/32b167a61d8db0328f0196af00b55147ebf756
@@ -684,6 +744,7 @@ files:
684
744
  - .git/objects/fc/269675339310e8f1ade1282978274f7da2713c
685
745
  - .git/objects/fc/57fb9c7c3071095af9657d1cca26afaf5f258e
686
746
  - .git/objects/fc/bf66b949d823f884d1aff2f3e192943cb195a2
747
+ - .git/objects/fc/f17b13f109f3a2d9e9e9bd20d61d38b535a612
687
748
  - .git/objects/fd/066ab33785d26d7c6728d2651bfd560da5bdd1
688
749
  - .git/objects/fd/25e0c8e44fb97a7c7d76280cec51886b51abf6
689
750
  - .git/objects/fd/3ef43acfe1fe6d70246df4b59524ebd7b58c49
@@ -692,6 +753,7 @@ files:
692
753
  - .git/objects/fe/ce95626cedcc0682e6fcc20fe019aab60938f2
693
754
  - .git/objects/ff/b170e96b4d79ff011c6aa5de53b588ebbab0fa
694
755
  - .git/objects/ff/e8b22107fbd64dc4d03a49f16a55ee5a0716dd
756
+ - .git/objects/ff/f82869b9facb77c5c27264f3d585efe2302b5a
695
757
  - .git/objects/pack/pack-c7edd4d292858ed6a37a55c1b6ceb35f65f4587e.idx
696
758
  - .git/objects/pack/pack-c7edd4d292858ed6a37a55c1b6ceb35f65f4587e.pack
697
759
  - .git/ORIG_HEAD
@@ -699,12 +761,14 @@ files:
699
761
  - .git/refs/heads/master
700
762
  - .git/refs/remotes/origin/HEAD
701
763
  - .git/refs/remotes/origin/master
764
+ - lib/interface_builder/controller_helper.rb
702
765
  - lib/interface_builder/form_builders/abstract_form_builder.rb
703
766
  - lib/interface_builder/form_builders/themed_form_builder.rb
704
767
  - lib/interface_builder/form_builders/themed_form_tag_builder.rb
705
768
  - lib/interface_builder/haml_builder.rb
706
769
  - lib/interface_builder/model_stub.rb
707
770
  - lib/interface_builder/support.rb
771
+ - lib/interface_builder/theme.rb
708
772
  - lib/interface_builder/view_builder.rb
709
773
  - lib/interface_builder/view_helper.rb
710
774
  - lib/interface_builder.rb
@@ -768,6 +832,7 @@ files:
768
832
  - spec/mongo_mapper_ext/micelaneous_spec.rb
769
833
  - spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb
770
834
  - spec/mongo_mapper_ext/scope_spec.rb
835
+ - spec/rails_ext/haml_builder_spec.rb
771
836
  - spec/rails_ext/safe_hash_spec.rb
772
837
  - spec/spec.opts
773
838
  - public/rails_ext/rails_ext.css
@@ -782,23 +847,27 @@ rdoc_options: []
782
847
  require_paths:
783
848
  - lib
784
849
  required_ruby_version: !ruby/object:Gem::Requirement
850
+ none: false
785
851
  requirements:
786
852
  - - ">="
787
853
  - !ruby/object:Gem::Version
854
+ hash: 3
788
855
  segments:
789
856
  - 0
790
857
  version: "0"
791
858
  required_rubygems_version: !ruby/object:Gem::Requirement
859
+ none: false
792
860
  requirements:
793
861
  - - ">="
794
862
  - !ruby/object:Gem::Version
863
+ hash: 3
795
864
  segments:
796
865
  - 0
797
866
  version: "0"
798
867
  requirements: []
799
868
 
800
869
  rubyforge_project:
801
- rubygems_version: 1.3.6
870
+ rubygems_version: 1.3.7
802
871
  signing_key:
803
872
  specification_version: 3
804
873
  summary: Set of common Ruby on Rails extensions