lolita 3.1.10 → 3.1.11

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.
Files changed (239) hide show
  1. data/.document +5 -5
  2. data/.rspec +2 -2
  3. data/GUIDELINES.rdoc +24 -24
  4. data/Gemfile +26 -26
  5. data/History.rdoc +162 -154
  6. data/LICENSE.txt +22 -22
  7. data/README.rdoc +98 -98
  8. data/Rakefile +40 -40
  9. data/VERSION +1 -1
  10. data/app/controllers/lolita/info_controller.rb +41 -41
  11. data/app/controllers/lolita/rest_controller.rb +130 -130
  12. data/app/helpers/components/lolita/configuration/list_component.rb +10 -10
  13. data/app/helpers/lolita_helper.rb +11 -11
  14. data/app/views/components/lolita/configuration/column/_display.html.erb +4 -4
  15. data/app/views/components/lolita/configuration/column/_header.html.erb +7 -7
  16. data/app/views/components/lolita/configuration/column/_sort.html.erb +4 -4
  17. data/app/views/components/lolita/configuration/columns/_body.html.erb +4 -4
  18. data/app/views/components/lolita/configuration/columns/_display.html.erb +1 -1
  19. data/app/views/components/lolita/configuration/columns/_first.html.erb +2 -2
  20. data/app/views/components/lolita/configuration/columns/_first_column_header.html.erb +3 -3
  21. data/app/views/components/lolita/configuration/columns/_header.html.erb +8 -8
  22. data/app/views/components/lolita/configuration/columns/_last.html.erb +4 -4
  23. data/app/views/components/lolita/configuration/columns/_last_column_header.html.erb +2 -2
  24. data/app/views/components/lolita/configuration/columns/_row.html.erb +7 -7
  25. data/app/views/components/lolita/configuration/field/_display.html.erb +9 -9
  26. data/app/views/components/lolita/configuration/field/_label.html.erb +1 -1
  27. data/app/views/components/lolita/configuration/field/_object.html.erb +1 -1
  28. data/app/views/components/lolita/configuration/field/array/_display.html.erb +4 -4
  29. data/app/views/components/lolita/configuration/field/array/habtm/_display.html.erb +26 -26
  30. data/app/views/components/lolita/configuration/field/array/select/_display.html.erb +5 -5
  31. data/app/views/components/lolita/configuration/field/boolean/filter/_display.html.erb +1 -1
  32. data/app/views/components/lolita/configuration/field/date/_display.html.erb +1 -1
  33. data/app/views/components/lolita/configuration/field/date_time/date/_display.html.erb +1 -1
  34. data/app/views/components/lolita/configuration/field/integer/_display.html.erb +1 -1
  35. data/app/views/components/lolita/configuration/field/string/_display.html.erb +4 -4
  36. data/app/views/components/lolita/configuration/field/string/disabled/_display.html.erb +1 -1
  37. data/app/views/components/lolita/configuration/field/string/password/_display.html.erb +3 -3
  38. data/app/views/components/lolita/configuration/field/string/text/_display.html.erb +18 -18
  39. data/app/views/components/lolita/configuration/field_set/_display.html.erb +5 -5
  40. data/app/views/components/lolita/configuration/list/_display.html.erb +10 -10
  41. data/app/views/components/lolita/configuration/list/_filter.html.erb +7 -7
  42. data/app/views/components/lolita/configuration/list/_new_resource.html.erb +4 -4
  43. data/app/views/components/lolita/configuration/list/_title.html.erb +4 -4
  44. data/app/views/components/lolita/configuration/tab/_display.html.erb +17 -17
  45. data/app/views/components/lolita/configuration/tab/_fields.html.erb +6 -6
  46. data/app/views/components/lolita/configuration/tab/content/_display.html.erb +1 -1
  47. data/app/views/components/lolita/configuration/tab/default/_display.html.erb +8 -8
  48. data/app/views/components/lolita/configuration/tabs/_display.html.erb +10 -10
  49. data/app/views/components/lolita/navigation/_display.html.erb +2 -2
  50. data/app/views/components/lolita/navigation/_tree.html.erb +38 -38
  51. data/app/views/components/lolita/shared/_flash.html.erb +5 -5
  52. data/app/views/components/lolita/shared/_header.html.erb +8 -8
  53. data/app/views/components/lolita/shared/_right_sidebar.html.erb +13 -13
  54. data/app/views/layouts/lolita/application.html.erb +44 -44
  55. data/app/views/lolita/info/index.html.erb +232 -232
  56. data/app/views/lolita/rest/form.html.erb +1 -1
  57. data/app/views/lolita/rest/index.html.erb +1 -1
  58. data/author +1 -1
  59. data/config/locales/default/lv.yml +180 -180
  60. data/config/locales/en.yml +20 -20
  61. data/config/locales/lv.yml +20 -20
  62. data/config/routes.rb +3 -3
  63. data/db/seed.rb +1 -1
  64. data/features/create_page.feature +19 -19
  65. data/features/step_definitions/lolita_steps.rb +7 -7
  66. data/features/step_definitions/web_steps.rb +219 -219
  67. data/features/support/env.rb +73 -73
  68. data/features/support/paths.rb +35 -35
  69. data/lib/generators/helpers/file_helper.rb +22 -22
  70. data/lib/generators/lolita/assets_generator.rb +18 -18
  71. data/lib/generators/lolita/install_generator.rb +28 -28
  72. data/lib/generators/templates/lolita.rb +19 -19
  73. data/lib/lolita.rb +184 -184
  74. data/lib/lolita/adapter/abstract_adapter.rb +13 -13
  75. data/lib/lolita/adapter/active_record.rb +148 -148
  76. data/lib/lolita/adapter/mongoid.rb +127 -127
  77. data/lib/lolita/base_configuration.rb +165 -165
  78. data/lib/lolita/builder.rb +249 -249
  79. data/lib/lolita/configuration/base.rb +76 -76
  80. data/lib/lolita/configuration/column.rb +93 -94
  81. data/lib/lolita/configuration/columns.rb +66 -66
  82. data/lib/lolita/configuration/factory.rb +55 -55
  83. data/lib/lolita/configuration/field.rb +216 -216
  84. data/lib/lolita/configuration/field/array.rb +75 -75
  85. data/lib/lolita/configuration/field/big_decimal.rb +12 -12
  86. data/lib/lolita/configuration/field/boolean.rb +12 -12
  87. data/lib/lolita/configuration/field/date.rb +12 -12
  88. data/lib/lolita/configuration/field/date_time.rb +13 -13
  89. data/lib/lolita/configuration/field/integer.rb +12 -12
  90. data/lib/lolita/configuration/field/string.rb +13 -13
  91. data/lib/lolita/configuration/field/time.rb +13 -13
  92. data/lib/lolita/configuration/field_set.rb +25 -25
  93. data/lib/lolita/configuration/fields.rb +35 -35
  94. data/lib/lolita/configuration/filter.rb +108 -108
  95. data/lib/lolita/configuration/list.rb +104 -104
  96. data/lib/lolita/configuration/page.rb +125 -124
  97. data/lib/lolita/configuration/tab.rb +187 -187
  98. data/lib/lolita/configuration/tab/content.rb +21 -21
  99. data/lib/lolita/configuration/tab/default.rb +25 -25
  100. data/lib/lolita/configuration/tabs.rb +132 -132
  101. data/lib/lolita/controllers/component_helpers.rb +127 -127
  102. data/lib/lolita/controllers/internal_helpers.rb +109 -109
  103. data/lib/lolita/controllers/url_helpers.rb +111 -111
  104. data/lib/lolita/controllers/user_helpers.rb +32 -32
  105. data/lib/lolita/controllers/view_user_helpers.rb +12 -12
  106. data/lib/lolita/dbi/base.rb +50 -50
  107. data/lib/lolita/errors.rb +12 -12
  108. data/lib/lolita/hooks.rb +355 -355
  109. data/lib/lolita/hooks/named_hook.rb +125 -125
  110. data/lib/lolita/lazy_loader.rb +46 -46
  111. data/lib/lolita/mapping.rb +55 -55
  112. data/lib/lolita/modules.rb +6 -6
  113. data/lib/lolita/modules/rest.rb +10 -10
  114. data/lib/lolita/navigation/branch.rb +132 -132
  115. data/lib/lolita/navigation/tree.rb +116 -116
  116. data/lib/lolita/observed_array.rb +74 -74
  117. data/lib/lolita/rails.rb +20 -20
  118. data/lib/lolita/rails/all.rb +10 -10
  119. data/lib/lolita/rails/routes.rb +133 -133
  120. data/lib/lolita/ruby_ext/accessors.rb +26 -26
  121. data/lib/lolita/support/formatter.rb +62 -62
  122. data/lib/lolita/support/formatter/rails.rb +56 -56
  123. data/lib/lolita/test/matchers.rb +77 -77
  124. data/lolita.gemspec +2 -2
  125. data/public/javascripts/jquery-1.6.min.js +15 -15
  126. data/public/javascripts/jquery-ui-1.8.13.min.js +407 -407
  127. data/public/javascripts/lolita/main.js +39 -39
  128. data/public/javascripts/lolita/tab.js +41 -41
  129. data/public/javascripts/modernizr-1.7.min.js +1 -1
  130. data/public/javascripts/rails.js +137 -137
  131. data/public/javascripts/tinymce/langs/en.js +221 -221
  132. data/public/javascripts/tinymce/license.txt +504 -504
  133. data/public/javascripts/tinymce/themes/advanced/about.htm +52 -52
  134. data/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -26
  135. data/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -51
  136. data/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -74
  137. data/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -1328
  138. data/public/javascripts/tinymce/themes/advanced/image.htm +80 -80
  139. data/public/javascripts/tinymce/themes/advanced/js/about.js +73 -73
  140. data/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -42
  141. data/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -354
  142. data/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -329
  143. data/public/javascripts/tinymce/themes/advanced/js/image.js +247 -247
  144. data/public/javascripts/tinymce/themes/advanced/js/link.js +153 -153
  145. data/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -56
  146. data/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -68
  147. data/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +53 -53
  148. data/public/javascripts/tinymce/themes/advanced/link.htm +57 -57
  149. data/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -47
  150. data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -66
  151. data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -117
  152. data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -988
  153. data/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -25
  154. data/public/javascripts/tinymce/tiny_mce_popup.js +4 -4
  155. data/public/javascripts/tinymce_config.js +15 -15
  156. data/public/stylesheets/lolita/default.css +169 -169
  157. data/public/stylesheets/lolita/style.css +253 -253
  158. data/spec/adapter_helper.rb +43 -43
  159. data/spec/builder_spec.rb +120 -120
  160. data/spec/configuration/base_spec.rb +44 -44
  161. data/spec/configuration/column_spec.rb +89 -89
  162. data/spec/configuration/columns_spec.rb +54 -54
  163. data/spec/configuration/field_set_spec.rb +12 -12
  164. data/spec/configuration/field_spec.rb +118 -118
  165. data/spec/configuration/filter_spec.rb +122 -122
  166. data/spec/configuration/list_spec.rb +76 -76
  167. data/spec/configuration/page_spec.rb +19 -19
  168. data/spec/configuration/tab_spec.rb +165 -165
  169. data/spec/configuration/tabs_spec.rb +106 -106
  170. data/spec/controllers/component_helpers_spec.rb +5 -5
  171. data/spec/controllers/internal_helpers_spec.rb +76 -76
  172. data/spec/controllers/lolita_rest_nested_resources_spec.rb +33 -33
  173. data/spec/controllers/lolita_rest_spec.rb +53 -53
  174. data/spec/dbi/base_spec.rb +44 -44
  175. data/spec/hooks_spec.rb +257 -257
  176. data/spec/lolita_spec.rb +13 -13
  177. data/spec/mapping_spec.rb +29 -29
  178. data/spec/navigation/branch_spec.rb +81 -81
  179. data/spec/navigation/tree_spec.rb +73 -73
  180. data/spec/orm/mongoid.rb +11 -11
  181. data/spec/rails_app/app/controllers/application_controller.rb +3 -3
  182. data/spec/rails_app/app/helpers/application_helper.rb +3 -3
  183. data/spec/rails_app/app/mongoid/address.rb +7 -7
  184. data/spec/rails_app/app/mongoid/category.rb +5 -5
  185. data/spec/rails_app/app/mongoid/comment.rb +5 -5
  186. data/spec/rails_app/app/mongoid/post.rb +18 -18
  187. data/spec/rails_app/app/mongoid/preference.rb +5 -5
  188. data/spec/rails_app/app/mongoid/profile.rb +13 -13
  189. data/spec/rails_app/app/mongoid/tag.rb +3 -3
  190. data/spec/rails_app/app/views/components/lolita/configuration/list/_body_cell.html.erb +1 -1
  191. data/spec/rails_app/config/application.rb +26 -26
  192. data/spec/rails_app/config/boot.rb +13 -13
  193. data/spec/rails_app/config/environment.rb +5 -5
  194. data/spec/rails_app/config/environments/development.rb +19 -19
  195. data/spec/rails_app/config/environments/production.rb +33 -33
  196. data/spec/rails_app/config/environments/test.rb +33 -33
  197. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -7
  198. data/spec/rails_app/config/initializers/inflections.rb +2 -2
  199. data/spec/rails_app/config/initializers/secret_token.rb +1 -1
  200. data/spec/rails_app/config/routes.rb +2 -2
  201. data/spec/rails_app/lib/lolita/configuration/field/my_custom_collection.rb +13 -13
  202. data/spec/rails_app/public/javascripts/jquery-1.5.1.min.js +15 -15
  203. data/spec/rails_app/public/javascripts/lolita/main.js +6 -6
  204. data/spec/rails_app/public/javascripts/lolita/tab.js +40 -40
  205. data/spec/rails_app/public/javascripts/modernizr-1.7.min.js +1 -1
  206. data/spec/rails_app/public/javascripts/rails.js +137 -137
  207. data/spec/rails_app/public/javascripts/tinymce/langs/en.js +221 -221
  208. data/spec/rails_app/public/javascripts/tinymce/license.txt +504 -504
  209. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/about.htm +52 -52
  210. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -26
  211. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -51
  212. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -74
  213. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -1328
  214. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/image.htm +80 -80
  215. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/about.js +73 -73
  216. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -42
  217. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -354
  218. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -329
  219. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/image.js +247 -247
  220. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/link.js +153 -153
  221. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -56
  222. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -68
  223. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +53 -53
  224. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/link.htm +57 -57
  225. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -47
  226. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -66
  227. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -117
  228. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -988
  229. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -25
  230. data/spec/rails_app/public/javascripts/tinymce/tiny_mce_popup.js +4 -4
  231. data/spec/rails_app/public/stylesheets/lolita/default.css +169 -169
  232. data/spec/rails_app/public/stylesheets/lolita/style.css +214 -214
  233. data/spec/routing/routes_spec.rb +15 -15
  234. data/spec/spec_helper.rb +46 -46
  235. data/spec/support/factories/category.rb +3 -3
  236. data/spec/support/factories/post.rb +4 -4
  237. data/spec/support/factories/tag.rb +2 -2
  238. data/spec/support/formatter_spec.rb +42 -42
  239. metadata +31 -31
@@ -1,76 +1,76 @@
1
- # Every class that include Lolita::Configuration this module assign
2
- # #lolita and #lolita= methods. First one is for normal Lolita configuration
3
- # definition, and the other one made to assing Lolita to class as a Lolita::Configuration::Base
4
- # object. You may want to do that to change configuration or for testing purpose.
5
- module Lolita
6
- module Configuration
7
- # Lolita could be defined inside of any class that is supported by Lolita::Adapter, for now that is
8
- # * ActiveRecord::Base
9
- # * Mongoid::Document
10
- # Main block can hold these methods:
11
- # <tt>list</tt> - List definition, see Lolitia::Configuration::List
12
- # <tt>tab</tt> - Tab definition, see Lolita::Configuration::Tab
13
- # <tt>tabs</tt> - Tabs definition, see Lolita::Configuration::Tabs
14
- class Base
15
-
16
- attr_reader :dbi,:klass
17
- @@generators=[:tabs,:list]
18
- class << self
19
- def add_generator(method)
20
- @@generators<<method.to_sym
21
- end
22
- end
23
- # When configuration is defined in class than you don't need to worry about
24
- # creating new object, because Lolita itself create it for that class.
25
- # New object is created like when you define it in class, but <i>parent_class</i>
26
- # must be given.
27
- # ====Example
28
- # class Person < ActiveRecord::Base
29
- # include Lolita::Configuration
30
- # lolita
31
- # end
32
- # Person.lolita.klass #=> Person
33
- # # Init Lolita by youself
34
- #
35
- # class Person < ActiveRecord::Base
36
- # include Lolita::Configuration
37
- # end
38
- # Person.lolita=Lolita::Configuration::Base.new(Person)
39
- # Person.lolita.klass #=> Person
40
- def initialize(orm_class,&block)
41
- @klass=orm_class
42
- @dbi=Lolita::DBI::Base.new(orm_class)
43
- block_given? ? self.instance_eval(&block) : self.generate!
44
- end
45
-
46
-
47
- # Create list variable for ::Base class and create lazy object of Lolita::LazyLoader.
48
- # See Lolita::Configuration::List for more information.
49
- def list &block
50
- Lolita::LazyLoader.lazy_load(self,:@list,Lolita::Configuration::List,@dbi,&block)
51
- end
52
-
53
- # Create collection of Lolita::Configuration::Tab, loading lazy.
54
- # See Lolita::Configuration::Tabs for details.
55
- def tabs &block
56
- Lolita::LazyLoader.lazy_load(self, :@tabs,Lolita::Configuration::Tabs,@dbi,&block)
57
- end
58
-
59
- # Shortcut for Lolita::Configuration::Tabs <<.
60
- # Tabs should not be defined in lolita block to create onew or more Lolita::Configuration::Tab
61
- # See Lolita::Configuration::Tab for details of defination.
62
- def tab *args, &block
63
- self.tabs<<Lolita::Configuration::Tab.add(@dbi,*args,&block)
64
- end
65
-
66
- # Call all supported instance metods to set needed variables and initialize object with them.
67
- def generate!
68
- @@generators.each{|generator|
69
- self.send(generator)
70
- }
71
- end
72
-
73
- end
74
- end
75
- end
76
-
1
+ # Every class that include Lolita::Configuration this module assign
2
+ # #lolita and #lolita= methods. First one is for normal Lolita configuration
3
+ # definition, and the other one made to assing Lolita to class as a Lolita::Configuration::Base
4
+ # object. You may want to do that to change configuration or for testing purpose.
5
+ module Lolita
6
+ module Configuration
7
+ # Lolita could be defined inside of any class that is supported by Lolita::Adapter, for now that is
8
+ # * ActiveRecord::Base
9
+ # * Mongoid::Document
10
+ # Main block can hold these methods:
11
+ # <tt>list</tt> - List definition, see Lolitia::Configuration::List
12
+ # <tt>tab</tt> - Tab definition, see Lolita::Configuration::Tab
13
+ # <tt>tabs</tt> - Tabs definition, see Lolita::Configuration::Tabs
14
+ class Base
15
+
16
+ attr_reader :dbi,:klass
17
+ @@generators=[:tabs,:list]
18
+ class << self
19
+ def add_generator(method)
20
+ @@generators<<method.to_sym
21
+ end
22
+ end
23
+ # When configuration is defined in class than you don't need to worry about
24
+ # creating new object, because Lolita itself create it for that class.
25
+ # New object is created like when you define it in class, but <i>parent_class</i>
26
+ # must be given.
27
+ # ====Example
28
+ # class Person < ActiveRecord::Base
29
+ # include Lolita::Configuration
30
+ # lolita
31
+ # end
32
+ # Person.lolita.klass #=> Person
33
+ # # Init Lolita by youself
34
+ #
35
+ # class Person < ActiveRecord::Base
36
+ # include Lolita::Configuration
37
+ # end
38
+ # Person.lolita=Lolita::Configuration::Base.new(Person)
39
+ # Person.lolita.klass #=> Person
40
+ def initialize(orm_class,&block)
41
+ @klass=orm_class
42
+ @dbi=Lolita::DBI::Base.new(orm_class)
43
+ block_given? ? self.instance_eval(&block) : self.generate!
44
+ end
45
+
46
+
47
+ # Create list variable for ::Base class and create lazy object of Lolita::LazyLoader.
48
+ # See Lolita::Configuration::List for more information.
49
+ def list &block
50
+ Lolita::LazyLoader.lazy_load(self,:@list,Lolita::Configuration::List,@dbi,&block)
51
+ end
52
+
53
+ # Create collection of Lolita::Configuration::Tab, loading lazy.
54
+ # See Lolita::Configuration::Tabs for details.
55
+ def tabs &block
56
+ Lolita::LazyLoader.lazy_load(self, :@tabs,Lolita::Configuration::Tabs,@dbi,&block)
57
+ end
58
+
59
+ # Shortcut for Lolita::Configuration::Tabs <<.
60
+ # Tabs should not be defined in lolita block to create onew or more Lolita::Configuration::Tab
61
+ # See Lolita::Configuration::Tab for details of defination.
62
+ def tab *args, &block
63
+ self.tabs<<Lolita::Configuration::Tab.add(@dbi,*args,&block)
64
+ end
65
+
66
+ # Call all supported instance metods to set needed variables and initialize object with them.
67
+ def generate!
68
+ @@generators.each{|generator|
69
+ self.send(generator)
70
+ }
71
+ end
72
+
73
+ end
74
+ end
75
+ end
76
+
@@ -1,94 +1,93 @@
1
- module Lolita
2
- module Configuration
3
- class Column
4
-
5
- include Lolita::Builder
6
-
7
- MAX_TEXT_SIZE=20
8
- lolita_accessor :name,:title,:type,:options,:sortable
9
-
10
- def initialize(dbi,*args,&block)
11
- @dbi=dbi
12
- self.set_attributes(*args)
13
- self.instance_eval(&block) if block_given?
14
- validate
15
- set_default_values
16
- end
17
-
18
- def title(value=nil)
19
- @title=value if value
20
- @title||=@dbi.klass.human_attribute_name(@name.to_s)
21
- @title
22
- end
23
-
24
- def sortable?
25
- @sortable
26
- end
27
-
28
- def currently_sorting?(params)
29
- @sortable && params[:sc].to_s==self.name.to_s
30
- end
31
-
32
- def sort_options(params)
33
- direction=if params[:sc].to_s==self.name.to_s
34
- params[:sd].to_s=="asc" ? "desc" : "asc"
35
- else
36
- "desc"
37
- end
38
- {:sc=>self.name,:sd=>direction}
39
- end
40
-
41
- # Define format, for details see Lolita::Support::Formatter and Lolita::Support::Formater::Rails
42
- def formatter(value=nil,&block)
43
- if block_given?
44
- @formatter=Lolita::Support::Formatter.new(value,&block)
45
- elsif value || !@formatter
46
- if value.kind_of?(Lolita::Support::Formatter)
47
- @formatter=value
48
- else
49
- @formatter=Lolita::Support::Formatter::Rails.new(value)
50
- end
51
- end
52
- @formatter
53
- end
54
-
55
- def formatter=(value)
56
- if value.kind_of?(Lolita::Support::Formatter)
57
- @formatter=value
58
- else
59
- @formatter=Lolita::Support::Formatter::Rails.new(value)
60
- end
61
- end
62
-
63
- def set_attributes(*args)
64
- if !args.empty?
65
- if args[0].is_a?(Hash)
66
- args[0].each{|m,value|
67
- self.send("#{m}=".to_sym,value)
68
- }
69
- elsif args[0].is_a?(Symbol) || args[0].is_a?(String)
70
- self.name=args[0].to_s
71
- if args[1].is_a?(Hash)
72
- args[1].each{|m,value|
73
- self.send("#{m}=".to_sym,value)
74
- }
75
- end
76
- else
77
- raise ArgumentError.new("Lolita::Configuration::Column arguments must be Hash or Symbol or String instead of #{args[0].class}")
78
- end
79
- end
80
- end
81
-
82
- private
83
-
84
- def set_default_values
85
- @sortable||=true
86
- @sort_direction||=:desc
87
- end
88
-
89
- def validate
90
- raise ArgumentError.new("Column must have name.") unless self.name
91
- end
92
- end
93
- end
94
- end
1
+ module Lolita
2
+ module Configuration
3
+ class Column
4
+
5
+ include Lolita::Builder
6
+
7
+ MAX_TEXT_SIZE=20
8
+ lolita_accessor :name,:title,:type,:options,:sortable
9
+
10
+ def initialize(dbi,*args,&block)
11
+ @dbi=dbi
12
+ self.set_attributes(*args)
13
+ self.instance_eval(&block) if block_given?
14
+ validate
15
+ set_default_values
16
+ end
17
+
18
+ def title(value=nil)
19
+ @title=value if value
20
+ @title||=@dbi.klass.human_attribute_name(@name.to_s)
21
+ @title
22
+ end
23
+
24
+ def sortable?
25
+ @sortable
26
+ end
27
+
28
+ def currently_sorting?(params)
29
+ @sortable && params[:sc].to_s==self.name.to_s
30
+ end
31
+
32
+ def sort_options(params)
33
+ direction=if params[:sc].to_s==self.name.to_s
34
+ params[:sd].to_s=="asc" ? "desc" : "asc"
35
+ else
36
+ "desc"
37
+ end
38
+ {:sc=>self.name,:sd=>direction}
39
+ end
40
+
41
+ # Define format, for details see Lolita::Support::Formatter and Lolita::Support::Formater::Rails
42
+ def formatter(value=nil,&block)
43
+ if block_given?
44
+ @formatter=Lolita::Support::Formatter.new(value,&block)
45
+ elsif value || !@formatter
46
+ if value.kind_of?(Lolita::Support::Formatter)
47
+ @formatter=value
48
+ else
49
+ @formatter=Lolita::Support::Formatter::Rails.new(value)
50
+ end
51
+ end
52
+ @formatter
53
+ end
54
+
55
+ def formatter=(value)
56
+ if value.kind_of?(Lolita::Support::Formatter)
57
+ @formatter=value
58
+ else
59
+ @formatter=Lolita::Support::Formatter::Rails.new(value)
60
+ end
61
+ end
62
+
63
+ def set_attributes(*args)
64
+ if !args.empty?
65
+ if args[0].is_a?(Hash)
66
+ args[0].each{|m,value|
67
+ self.send("#{m}=".to_sym,value)
68
+ }
69
+ elsif args[0].is_a?(Symbol) || args[0].is_a?(String)
70
+ self.name=args[0].to_s
71
+ if args[1].is_a?(Hash)
72
+ args[1].each{|m,value|
73
+ self.send("#{m}=".to_sym,value)
74
+ }
75
+ end
76
+ else
77
+ raise ArgumentError.new("Lolita::Configuration::Column arguments must be Hash or Symbol or String instead of #{args[0].class}")
78
+ end
79
+ end
80
+ end
81
+
82
+ private
83
+
84
+ def set_default_values
85
+ @sort_direction||=:desc
86
+ end
87
+
88
+ def validate
89
+ raise ArgumentError.new("Column must have name.") unless self.name
90
+ end
91
+ end
92
+ end
93
+ end
@@ -1,66 +1,66 @@
1
- module Lolita
2
- module Configuration
3
- class Columns
4
-
5
- include Enumerable
6
- include ObservedArray
7
- include Lolita::Builder
8
-
9
- attr_accessor :list
10
- attr_reader :dbi
11
-
12
- def initialize(list,dbi=nil)
13
- @list=list
14
- @dbi=dbi || list.dbi
15
- @columns=[]
16
- end
17
-
18
- def each
19
- @columns.each_with_index{|column,index|
20
- if column.is_a?(Lolita::Configuration::Column)
21
- yield column
22
- else
23
- raise "Any column must be Lolita::Configuratin::Column object instead of #{column.class}."
24
- end
25
- }
26
- end
27
-
28
- def generate!
29
- @columns.clear
30
- @dbi.fields.each_with_index{|field,index|
31
- @columns[index]=Lolita::Configuration::Column.new(@dbi,field)
32
- }
33
- end
34
-
35
- def add attributes={},&block
36
- if block_given?
37
- @columns<<build_element(&block)
38
- else
39
- @columns<<build_element(attributes)
40
- end
41
- self
42
- end
43
-
44
- private
45
-
46
- def collection_variable
47
- @columns
48
- end
49
-
50
- def build_element(column=nil,&block)
51
- if column.is_a?(Lolita::Configuration::Column)
52
- column
53
- elsif column.is_a?(Proc)
54
- Lolita::Configuration::Column.new(@dbi,&column)
55
- elsif block_given?
56
- Lolita::Configuration::Column.new(@dbi,&block)
57
- elsif [Symbol,String,Hash].include?(column.class)
58
- Lolita::Configuration::Column.new(@dbi,column)
59
- else
60
- raise ArgumentError.new("Column can not be defined with #{column.class}.")
61
- end
62
- end
63
-
64
- end
65
- end
66
- end
1
+ module Lolita
2
+ module Configuration
3
+ class Columns
4
+
5
+ include Enumerable
6
+ include ObservedArray
7
+ include Lolita::Builder
8
+
9
+ attr_accessor :list
10
+ attr_reader :dbi
11
+
12
+ def initialize(list,dbi=nil)
13
+ @list=list
14
+ @dbi=dbi || list.dbi
15
+ @columns=[]
16
+ end
17
+
18
+ def each
19
+ @columns.each_with_index{|column,index|
20
+ if column.is_a?(Lolita::Configuration::Column)
21
+ yield column
22
+ else
23
+ raise "Any column must be Lolita::Configuratin::Column object instead of #{column.class}."
24
+ end
25
+ }
26
+ end
27
+
28
+ def generate!
29
+ @columns.clear
30
+ @dbi.fields.each_with_index{|field,index|
31
+ @columns[index]=Lolita::Configuration::Column.new(@dbi,field)
32
+ }
33
+ end
34
+
35
+ def add attributes={},&block
36
+ if block_given?
37
+ @columns<<build_element(&block)
38
+ else
39
+ @columns<<build_element(attributes)
40
+ end
41
+ self
42
+ end
43
+
44
+ private
45
+
46
+ def collection_variable
47
+ @columns
48
+ end
49
+
50
+ def build_element(column=nil,&block)
51
+ if column.is_a?(Lolita::Configuration::Column)
52
+ column
53
+ elsif column.is_a?(Proc)
54
+ Lolita::Configuration::Column.new(@dbi,&column)
55
+ elsif block_given?
56
+ Lolita::Configuration::Column.new(@dbi,&block)
57
+ elsif [Symbol,String,Hash].include?(column.class)
58
+ Lolita::Configuration::Column.new(@dbi,column)
59
+ else
60
+ raise ArgumentError.new("Column can not be defined with #{column.class}.")
61
+ end
62
+ end
63
+
64
+ end
65
+ end
66
+ end