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.
- data/.document +5 -5
- data/.rspec +2 -2
- data/GUIDELINES.rdoc +24 -24
- data/Gemfile +26 -26
- data/History.rdoc +162 -154
- data/LICENSE.txt +22 -22
- data/README.rdoc +98 -98
- data/Rakefile +40 -40
- data/VERSION +1 -1
- data/app/controllers/lolita/info_controller.rb +41 -41
- data/app/controllers/lolita/rest_controller.rb +130 -130
- data/app/helpers/components/lolita/configuration/list_component.rb +10 -10
- data/app/helpers/lolita_helper.rb +11 -11
- data/app/views/components/lolita/configuration/column/_display.html.erb +4 -4
- data/app/views/components/lolita/configuration/column/_header.html.erb +7 -7
- data/app/views/components/lolita/configuration/column/_sort.html.erb +4 -4
- data/app/views/components/lolita/configuration/columns/_body.html.erb +4 -4
- data/app/views/components/lolita/configuration/columns/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/columns/_first.html.erb +2 -2
- data/app/views/components/lolita/configuration/columns/_first_column_header.html.erb +3 -3
- data/app/views/components/lolita/configuration/columns/_header.html.erb +8 -8
- data/app/views/components/lolita/configuration/columns/_last.html.erb +4 -4
- data/app/views/components/lolita/configuration/columns/_last_column_header.html.erb +2 -2
- data/app/views/components/lolita/configuration/columns/_row.html.erb +7 -7
- data/app/views/components/lolita/configuration/field/_display.html.erb +9 -9
- data/app/views/components/lolita/configuration/field/_label.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/_object.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/array/_display.html.erb +4 -4
- data/app/views/components/lolita/configuration/field/array/habtm/_display.html.erb +26 -26
- data/app/views/components/lolita/configuration/field/array/select/_display.html.erb +5 -5
- data/app/views/components/lolita/configuration/field/boolean/filter/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/date/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/date_time/date/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/integer/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/string/_display.html.erb +4 -4
- data/app/views/components/lolita/configuration/field/string/disabled/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/field/string/password/_display.html.erb +3 -3
- data/app/views/components/lolita/configuration/field/string/text/_display.html.erb +18 -18
- data/app/views/components/lolita/configuration/field_set/_display.html.erb +5 -5
- data/app/views/components/lolita/configuration/list/_display.html.erb +10 -10
- data/app/views/components/lolita/configuration/list/_filter.html.erb +7 -7
- data/app/views/components/lolita/configuration/list/_new_resource.html.erb +4 -4
- data/app/views/components/lolita/configuration/list/_title.html.erb +4 -4
- data/app/views/components/lolita/configuration/tab/_display.html.erb +17 -17
- data/app/views/components/lolita/configuration/tab/_fields.html.erb +6 -6
- data/app/views/components/lolita/configuration/tab/content/_display.html.erb +1 -1
- data/app/views/components/lolita/configuration/tab/default/_display.html.erb +8 -8
- data/app/views/components/lolita/configuration/tabs/_display.html.erb +10 -10
- data/app/views/components/lolita/navigation/_display.html.erb +2 -2
- data/app/views/components/lolita/navigation/_tree.html.erb +38 -38
- data/app/views/components/lolita/shared/_flash.html.erb +5 -5
- data/app/views/components/lolita/shared/_header.html.erb +8 -8
- data/app/views/components/lolita/shared/_right_sidebar.html.erb +13 -13
- data/app/views/layouts/lolita/application.html.erb +44 -44
- data/app/views/lolita/info/index.html.erb +232 -232
- data/app/views/lolita/rest/form.html.erb +1 -1
- data/app/views/lolita/rest/index.html.erb +1 -1
- data/author +1 -1
- data/config/locales/default/lv.yml +180 -180
- data/config/locales/en.yml +20 -20
- data/config/locales/lv.yml +20 -20
- data/config/routes.rb +3 -3
- data/db/seed.rb +1 -1
- data/features/create_page.feature +19 -19
- data/features/step_definitions/lolita_steps.rb +7 -7
- data/features/step_definitions/web_steps.rb +219 -219
- data/features/support/env.rb +73 -73
- data/features/support/paths.rb +35 -35
- data/lib/generators/helpers/file_helper.rb +22 -22
- data/lib/generators/lolita/assets_generator.rb +18 -18
- data/lib/generators/lolita/install_generator.rb +28 -28
- data/lib/generators/templates/lolita.rb +19 -19
- data/lib/lolita.rb +184 -184
- data/lib/lolita/adapter/abstract_adapter.rb +13 -13
- data/lib/lolita/adapter/active_record.rb +148 -148
- data/lib/lolita/adapter/mongoid.rb +127 -127
- data/lib/lolita/base_configuration.rb +165 -165
- data/lib/lolita/builder.rb +249 -249
- data/lib/lolita/configuration/base.rb +76 -76
- data/lib/lolita/configuration/column.rb +93 -94
- data/lib/lolita/configuration/columns.rb +66 -66
- data/lib/lolita/configuration/factory.rb +55 -55
- data/lib/lolita/configuration/field.rb +216 -216
- data/lib/lolita/configuration/field/array.rb +75 -75
- data/lib/lolita/configuration/field/big_decimal.rb +12 -12
- data/lib/lolita/configuration/field/boolean.rb +12 -12
- data/lib/lolita/configuration/field/date.rb +12 -12
- data/lib/lolita/configuration/field/date_time.rb +13 -13
- data/lib/lolita/configuration/field/integer.rb +12 -12
- data/lib/lolita/configuration/field/string.rb +13 -13
- data/lib/lolita/configuration/field/time.rb +13 -13
- data/lib/lolita/configuration/field_set.rb +25 -25
- data/lib/lolita/configuration/fields.rb +35 -35
- data/lib/lolita/configuration/filter.rb +108 -108
- data/lib/lolita/configuration/list.rb +104 -104
- data/lib/lolita/configuration/page.rb +125 -124
- data/lib/lolita/configuration/tab.rb +187 -187
- data/lib/lolita/configuration/tab/content.rb +21 -21
- data/lib/lolita/configuration/tab/default.rb +25 -25
- data/lib/lolita/configuration/tabs.rb +132 -132
- data/lib/lolita/controllers/component_helpers.rb +127 -127
- data/lib/lolita/controllers/internal_helpers.rb +109 -109
- data/lib/lolita/controllers/url_helpers.rb +111 -111
- data/lib/lolita/controllers/user_helpers.rb +32 -32
- data/lib/lolita/controllers/view_user_helpers.rb +12 -12
- data/lib/lolita/dbi/base.rb +50 -50
- data/lib/lolita/errors.rb +12 -12
- data/lib/lolita/hooks.rb +355 -355
- data/lib/lolita/hooks/named_hook.rb +125 -125
- data/lib/lolita/lazy_loader.rb +46 -46
- data/lib/lolita/mapping.rb +55 -55
- data/lib/lolita/modules.rb +6 -6
- data/lib/lolita/modules/rest.rb +10 -10
- data/lib/lolita/navigation/branch.rb +132 -132
- data/lib/lolita/navigation/tree.rb +116 -116
- data/lib/lolita/observed_array.rb +74 -74
- data/lib/lolita/rails.rb +20 -20
- data/lib/lolita/rails/all.rb +10 -10
- data/lib/lolita/rails/routes.rb +133 -133
- data/lib/lolita/ruby_ext/accessors.rb +26 -26
- data/lib/lolita/support/formatter.rb +62 -62
- data/lib/lolita/support/formatter/rails.rb +56 -56
- data/lib/lolita/test/matchers.rb +77 -77
- data/lolita.gemspec +2 -2
- data/public/javascripts/jquery-1.6.min.js +15 -15
- data/public/javascripts/jquery-ui-1.8.13.min.js +407 -407
- data/public/javascripts/lolita/main.js +39 -39
- data/public/javascripts/lolita/tab.js +41 -41
- data/public/javascripts/modernizr-1.7.min.js +1 -1
- data/public/javascripts/rails.js +137 -137
- data/public/javascripts/tinymce/langs/en.js +221 -221
- data/public/javascripts/tinymce/license.txt +504 -504
- data/public/javascripts/tinymce/themes/advanced/about.htm +52 -52
- data/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -26
- data/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -51
- data/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -74
- data/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -1328
- data/public/javascripts/tinymce/themes/advanced/image.htm +80 -80
- data/public/javascripts/tinymce/themes/advanced/js/about.js +73 -73
- data/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -42
- data/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -354
- data/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -329
- data/public/javascripts/tinymce/themes/advanced/js/image.js +247 -247
- data/public/javascripts/tinymce/themes/advanced/js/link.js +153 -153
- data/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -56
- data/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -68
- data/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +53 -53
- data/public/javascripts/tinymce/themes/advanced/link.htm +57 -57
- data/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -47
- data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -66
- data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -117
- data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -988
- data/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -25
- data/public/javascripts/tinymce/tiny_mce_popup.js +4 -4
- data/public/javascripts/tinymce_config.js +15 -15
- data/public/stylesheets/lolita/default.css +169 -169
- data/public/stylesheets/lolita/style.css +253 -253
- data/spec/adapter_helper.rb +43 -43
- data/spec/builder_spec.rb +120 -120
- data/spec/configuration/base_spec.rb +44 -44
- data/spec/configuration/column_spec.rb +89 -89
- data/spec/configuration/columns_spec.rb +54 -54
- data/spec/configuration/field_set_spec.rb +12 -12
- data/spec/configuration/field_spec.rb +118 -118
- data/spec/configuration/filter_spec.rb +122 -122
- data/spec/configuration/list_spec.rb +76 -76
- data/spec/configuration/page_spec.rb +19 -19
- data/spec/configuration/tab_spec.rb +165 -165
- data/spec/configuration/tabs_spec.rb +106 -106
- data/spec/controllers/component_helpers_spec.rb +5 -5
- data/spec/controllers/internal_helpers_spec.rb +76 -76
- data/spec/controllers/lolita_rest_nested_resources_spec.rb +33 -33
- data/spec/controllers/lolita_rest_spec.rb +53 -53
- data/spec/dbi/base_spec.rb +44 -44
- data/spec/hooks_spec.rb +257 -257
- data/spec/lolita_spec.rb +13 -13
- data/spec/mapping_spec.rb +29 -29
- data/spec/navigation/branch_spec.rb +81 -81
- data/spec/navigation/tree_spec.rb +73 -73
- data/spec/orm/mongoid.rb +11 -11
- data/spec/rails_app/app/controllers/application_controller.rb +3 -3
- data/spec/rails_app/app/helpers/application_helper.rb +3 -3
- data/spec/rails_app/app/mongoid/address.rb +7 -7
- data/spec/rails_app/app/mongoid/category.rb +5 -5
- data/spec/rails_app/app/mongoid/comment.rb +5 -5
- data/spec/rails_app/app/mongoid/post.rb +18 -18
- data/spec/rails_app/app/mongoid/preference.rb +5 -5
- data/spec/rails_app/app/mongoid/profile.rb +13 -13
- data/spec/rails_app/app/mongoid/tag.rb +3 -3
- data/spec/rails_app/app/views/components/lolita/configuration/list/_body_cell.html.erb +1 -1
- data/spec/rails_app/config/application.rb +26 -26
- data/spec/rails_app/config/boot.rb +13 -13
- data/spec/rails_app/config/environment.rb +5 -5
- data/spec/rails_app/config/environments/development.rb +19 -19
- data/spec/rails_app/config/environments/production.rb +33 -33
- data/spec/rails_app/config/environments/test.rb +33 -33
- data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -7
- data/spec/rails_app/config/initializers/inflections.rb +2 -2
- data/spec/rails_app/config/initializers/secret_token.rb +1 -1
- data/spec/rails_app/config/routes.rb +2 -2
- data/spec/rails_app/lib/lolita/configuration/field/my_custom_collection.rb +13 -13
- data/spec/rails_app/public/javascripts/jquery-1.5.1.min.js +15 -15
- data/spec/rails_app/public/javascripts/lolita/main.js +6 -6
- data/spec/rails_app/public/javascripts/lolita/tab.js +40 -40
- data/spec/rails_app/public/javascripts/modernizr-1.7.min.js +1 -1
- data/spec/rails_app/public/javascripts/rails.js +137 -137
- data/spec/rails_app/public/javascripts/tinymce/langs/en.js +221 -221
- data/spec/rails_app/public/javascripts/tinymce/license.txt +504 -504
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/about.htm +52 -52
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -26
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -51
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -74
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -1328
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/image.htm +80 -80
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/about.js +73 -73
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -42
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -354
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -329
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/image.js +247 -247
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/link.js +153 -153
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -56
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -68
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +53 -53
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/link.htm +57 -57
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -47
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -66
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -117
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -988
- data/spec/rails_app/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -25
- data/spec/rails_app/public/javascripts/tinymce/tiny_mce_popup.js +4 -4
- data/spec/rails_app/public/stylesheets/lolita/default.css +169 -169
- data/spec/rails_app/public/stylesheets/lolita/style.css +214 -214
- data/spec/routing/routes_spec.rb +15 -15
- data/spec/spec_helper.rb +46 -46
- data/spec/support/factories/category.rb +3 -3
- data/spec/support/factories/post.rb +4 -4
- data/spec/support/factories/tag.rb +2 -2
- data/spec/support/formatter_spec.rb +42 -42
- 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
|
-
@
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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
|