browsercms 3.0.0 → 3.0.1
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/app/controllers/cms/connectors_controller.rb +1 -1
- data/app/helpers/cms/application_helper.rb +2 -19
- data/app/helpers/cms/form_builder.rb +8 -5
- data/app/helpers/cms/menu_helper.rb +19 -5
- data/app/helpers/cms/page_helper.rb +9 -1
- data/app/helpers/cms/template_support.rb +21 -0
- data/app/models/abstract_file_block.rb +4 -0
- data/app/models/connector.rb +7 -3
- data/app/models/dynamic_view.rb +2 -4
- data/app/models/portlet.rb +22 -9
- data/app/models/section.rb +7 -5
- data/app/views/cms/blocks/_toolbar_for_member.html.erb +4 -4
- data/app/views/cms/blocks/index.html.erb +1 -1
- data/app/views/cms/blocks/usages.html.erb +44 -34
- data/app/views/cms/connectors/new.html.erb +2 -2
- data/app/views/cms/dynamic_views/_form.html.erb +1 -1
- data/app/views/cms/dynamic_views/index.html.erb +7 -3
- data/app/views/cms/email_messages/index.html.erb +3 -5
- data/app/views/cms/form_builder/_cms_datetime_select.html.erb +12 -0
- data/app/views/cms/form_builder/_cms_text_editor.html.erb +2 -2
- data/app/views/cms/form_builder/_cms_text_field.html.erb +1 -2
- data/app/views/cms/groups/_permissions.html.erb +1 -0
- data/app/views/cms/groups/_sections.html.erb +1 -0
- data/app/views/cms/groups/index.html.erb +3 -5
- data/app/views/cms/page_routes/index.html.erb +13 -7
- data/app/views/cms/page_routes/show.html.erb +4 -4
- data/app/views/cms/pages/_edit_connector.html.erb +4 -1
- data/app/views/cms/pages/_edit_container.html.erb +4 -1
- data/app/views/cms/redirects/index.html.erb +12 -7
- data/app/views/cms/routes/index.html.erb +11 -7
- data/app/views/cms/sections/_form.html.erb +4 -5
- data/app/views/cms/users/_groups.html.erb +1 -0
- data/app/views/layouts/_cms_toolbar.html.erb +37 -4
- data/app/views/layouts/_page_toolbar.html.erb +2 -2
- data/browsercms.gemspec +381 -3
- data/db/demo/data.rb +2 -1
- data/doc/app/classes/AbstractFileBlock.html +146 -0
- data/doc/app/classes/ActiveRecord.html +105 -0
- data/doc/app/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html +242 -0
- data/doc/app/classes/ActiveSupport.html +111 -0
- data/doc/app/classes/ActiveSupport/Cache.html +111 -0
- data/doc/app/classes/ActiveSupport/Cache/FileStore.html +146 -0
- data/doc/app/classes/ActsAsList.html +147 -0
- data/doc/app/classes/ActsAsList/ClassMethods.html +202 -0
- data/doc/app/classes/ActsAsList/InstanceMethods.html +510 -0
- data/doc/app/classes/ApplicationController.html +119 -0
- data/doc/app/classes/ApplicationHelper.html +112 -0
- data/doc/app/classes/Attachment.html +726 -0
- data/doc/app/classes/Category.html +230 -0
- data/doc/app/classes/CategoryType.html +214 -0
- data/doc/app/classes/Cms.html +638 -0
- data/doc/app/classes/Cms/Acts.html +111 -0
- data/doc/app/classes/Cms/Acts/ContentBlock.html +146 -0
- data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods.html +165 -0
- data/doc/app/classes/Cms/Acts/ContentBlock/MacroMethods/InstanceMethods.html +140 -0
- data/doc/app/classes/Cms/ApplicationController.html +418 -0
- data/doc/app/classes/Cms/ApplicationHelper.html +814 -0
- data/doc/app/classes/Cms/AttachmentsController.html +154 -0
- data/doc/app/classes/Cms/Authentication.html +116 -0
- data/doc/app/classes/Cms/Authentication/Controller.html +702 -0
- data/doc/app/classes/Cms/Authentication/Model.html +165 -0
- data/doc/app/classes/Cms/Authentication/Model/ClassMethods.html +246 -0
- data/doc/app/classes/Cms/Authentication/Model/InstanceMethods.html +412 -0
- data/doc/app/classes/Cms/BaseController.html +113 -0
- data/doc/app/classes/Cms/Behaviors.html +235 -0
- data/doc/app/classes/Cms/Behaviors/Archiving.html +147 -0
- data/doc/app/classes/Cms/Behaviors/Archiving/InstanceMethods.html +220 -0
- data/doc/app/classes/Cms/Behaviors/Archiving/MacroMethods.html +175 -0
- data/doc/app/classes/Cms/Behaviors/Attaching.html +160 -0
- data/doc/app/classes/Cms/Behaviors/Attaching/InstanceMethods.html +670 -0
- data/doc/app/classes/Cms/Behaviors/Attaching/MacroMethods.html +188 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing/InstanceMethods.html +140 -0
- data/doc/app/classes/Cms/Behaviors/Categorizing/MacroMethods.html +178 -0
- data/doc/app/classes/Cms/Behaviors/ClassMethods.html +272 -0
- data/doc/app/classes/Cms/Behaviors/Connecting.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Connecting/ClassMethods.html +188 -0
- data/doc/app/classes/Cms/Behaviors/Connecting/InstanceMethods.html +312 -0
- data/doc/app/classes/Cms/Behaviors/Connecting/MacroMethods.html +184 -0
- data/doc/app/classes/Cms/Behaviors/DynamicAttributes.html +285 -0
- data/doc/app/classes/Cms/Behaviors/DynamicAttributes/InstanceMethods.html +181 -0
- data/doc/app/classes/Cms/Behaviors/DynamicAttributes/MacroMethods.html +243 -0
- data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange.html +178 -0
- data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/InstanceMethods.html +142 -0
- data/doc/app/classes/Cms/Behaviors/FlushCacheOnChange/MacroMethods.html +175 -0
- data/doc/app/classes/Cms/Behaviors/Hiding.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Hiding/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Hiding/InstanceMethods.html +220 -0
- data/doc/app/classes/Cms/Behaviors/Hiding/MacroMethods.html +176 -0
- data/doc/app/classes/Cms/Behaviors/InstanceMethods.html +234 -0
- data/doc/app/classes/Cms/Behaviors/Pagination.html +151 -0
- data/doc/app/classes/Cms/Behaviors/Pagination/ClassMethods.html +252 -0
- data/doc/app/classes/Cms/Behaviors/Pagination/Collection.html +437 -0
- data/doc/app/classes/Cms/Behaviors/Pagination/InvalidPage.html +146 -0
- data/doc/app/classes/Cms/Behaviors/Publishing.html +179 -0
- data/doc/app/classes/Cms/Behaviors/Publishing/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Publishing/InstanceMethods.html +333 -0
- data/doc/app/classes/Cms/Behaviors/Publishing/MacroMethods.html +180 -0
- data/doc/app/classes/Cms/Behaviors/Rendering.html +179 -0
- data/doc/app/classes/Cms/Behaviors/Rendering/MacroMethods.html +186 -0
- data/doc/app/classes/Cms/Behaviors/Searching.html +147 -0
- data/doc/app/classes/Cms/Behaviors/Searching/ClassMethods.html +164 -0
- data/doc/app/classes/Cms/Behaviors/Searching/MacroMethods.html +188 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting.html +148 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting/ClassMethods.html +217 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting/InstanceMethods.html +247 -0
- data/doc/app/classes/Cms/Behaviors/SoftDeleting/MacroMethods.html +205 -0
- data/doc/app/classes/Cms/Behaviors/Taggable.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Taggable/ClassMethods.html +164 -0
- data/doc/app/classes/Cms/Behaviors/Taggable/InstanceMethods.html +197 -0
- data/doc/app/classes/Cms/Behaviors/Taggable/MacroMethods.html +182 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping/ClassMethods.html +105 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping/InstanceMethods.html +143 -0
- data/doc/app/classes/Cms/Behaviors/Userstamping/MacroMethods.html +181 -0
- data/doc/app/classes/Cms/Behaviors/Versioning.html +148 -0
- data/doc/app/classes/Cms/Behaviors/Versioning/ClassMethods.html +237 -0
- data/doc/app/classes/Cms/Behaviors/Versioning/InstanceMethods.html +685 -0
- data/doc/app/classes/Cms/Behaviors/Versioning/MacroMethods.html +290 -0
- data/doc/app/classes/Cms/CacheController.html +174 -0
- data/doc/app/classes/Cms/Caching.html +171 -0
- data/doc/app/classes/Cms/CategoriesController.html +113 -0
- data/doc/app/classes/Cms/CategoryTypesController.html +148 -0
- data/doc/app/classes/Cms/ConnectorsController.html +215 -0
- data/doc/app/classes/Cms/ContentBlockController.html +1175 -0
- data/doc/app/classes/Cms/ContentController.html +313 -0
- data/doc/app/classes/Cms/ContentTypesController.html +148 -0
- data/doc/app/classes/Cms/DashboardController.html +151 -0
- data/doc/app/classes/Cms/DataLoader.html +182 -0
- data/doc/app/classes/Cms/DynamicViewsController.html +359 -0
- data/doc/app/classes/Cms/EmailMessagesController.html +172 -0
- data/doc/app/classes/Cms/ErrorHandling.html +172 -0
- data/doc/app/classes/Cms/Errors.html +111 -0
- data/doc/app/classes/Cms/Errors/AccessDenied.html +146 -0
- data/doc/app/classes/Cms/Extensions.html +140 -0
- data/doc/app/classes/Cms/Extensions/ActionView.html +111 -0
- data/doc/app/classes/Cms/Extensions/ActionView/Base.html +141 -0
- data/doc/app/classes/Cms/Extensions/ActiveRecord.html +116 -0
- data/doc/app/classes/Cms/Extensions/ActiveRecord/Base.html +144 -0
- data/doc/app/classes/Cms/Extensions/ActiveRecord/Errors.html +140 -0
- data/doc/app/classes/Cms/Extensions/Hash.html +175 -0
- data/doc/app/classes/Cms/Extensions/Integer.html +146 -0
- data/doc/app/classes/Cms/Extensions/NilClass.html +212 -0
- data/doc/app/classes/Cms/Extensions/String.html +212 -0
- data/doc/app/classes/Cms/FileBlocksController.html +113 -0
- data/doc/app/classes/Cms/FormBuilder.html +312 -0
- data/doc/app/classes/Cms/FormTagHelper.html +245 -0
- data/doc/app/classes/Cms/GroupsController.html +225 -0
- data/doc/app/classes/Cms/HomeController.html +148 -0
- data/doc/app/classes/Cms/HtmlBlocksController.html +113 -0
- data/doc/app/classes/Cms/ImageBlocksController.html +113 -0
- data/doc/app/classes/Cms/LinksController.html +341 -0
- data/doc/app/classes/Cms/MenuHelper.html +330 -0
- data/doc/app/classes/Cms/PageHelper.html +292 -0
- data/doc/app/classes/Cms/PageRouteConditionsController.html +113 -0
- data/doc/app/classes/Cms/PageRouteOptionsController.html +355 -0
- data/doc/app/classes/Cms/PageRouteRequirementsController.html +113 -0
- data/doc/app/classes/Cms/PageRoutesController.html +284 -0
- data/doc/app/classes/Cms/PagesController.html +331 -0
- data/doc/app/classes/Cms/PathHelper.html +268 -0
- data/doc/app/classes/Cms/PortletController.html +150 -0
- data/doc/app/classes/Cms/PortletsController.html +301 -0
- data/doc/app/classes/Cms/RedirectsController.html +172 -0
- data/doc/app/classes/Cms/ResourceController.html +616 -0
- data/doc/app/classes/Cms/Routes.html +303 -0
- data/doc/app/classes/Cms/RoutesController.html +164 -0
- data/doc/app/classes/Cms/SectionNodesController.html +272 -0
- data/doc/app/classes/Cms/SectionNodesHelper.html +145 -0
- data/doc/app/classes/Cms/SectionsController.html +542 -0
- data/doc/app/classes/Cms/SessionsController.html +270 -0
- data/doc/app/classes/Cms/TagsController.html +152 -0
- data/doc/app/classes/Cms/TasksController.html +221 -0
- data/doc/app/classes/Cms/ToolbarController.html +153 -0
- data/doc/app/classes/Cms/UsersController.html +405 -0
- data/doc/app/classes/Connector.html +350 -0
- data/doc/app/classes/ContentType.html +448 -0
- data/doc/app/classes/ContentTypeGroup.html +111 -0
- data/doc/app/classes/DynamicPortlet.html +148 -0
- data/doc/app/classes/DynamicView.html +411 -0
- data/doc/app/classes/EmailMessage.html +228 -0
- data/doc/app/classes/EmailMessageMailer.html +150 -0
- data/doc/app/classes/EmailPagePortlet.html +184 -0
- data/doc/app/classes/FileBlock.html +202 -0
- data/doc/app/classes/Group.html +170 -0
- data/doc/app/classes/GroupPermission.html +111 -0
- data/doc/app/classes/GroupSection.html +111 -0
- data/doc/app/classes/GroupType.html +111 -0
- data/doc/app/classes/GroupTypePermission.html +111 -0
- data/doc/app/classes/GuestUser.html +347 -0
- data/doc/app/classes/HtmlBlock.html +170 -0
- data/doc/app/classes/ImageBlock.html +202 -0
- data/doc/app/classes/InitialData.html +171 -0
- data/doc/app/classes/Link.html +249 -0
- data/doc/app/classes/LoginPortlet.html +151 -0
- data/doc/app/classes/Page.html +954 -0
- data/doc/app/classes/PagePartial.html +201 -0
- data/doc/app/classes/PageRoute.html +335 -0
- data/doc/app/classes/PageRouteCondition.html +113 -0
- data/doc/app/classes/PageRouteOption.html +111 -0
- data/doc/app/classes/PageRouteRequirement.html +113 -0
- data/doc/app/classes/PageTemplate.html +278 -0
- data/doc/app/classes/Permission.html +111 -0
- data/doc/app/classes/Portlet.html +738 -0
- data/doc/app/classes/Redirect.html +111 -0
- data/doc/app/classes/Section.html +580 -0
- data/doc/app/classes/SectionNode.html +410 -0
- data/doc/app/classes/Sequence.html +146 -0
- data/doc/app/classes/Site.html +253 -0
- data/doc/app/classes/Tag.html +292 -0
- data/doc/app/classes/TagCloudPortlet.html +176 -0
- data/doc/app/classes/Tagging.html +146 -0
- data/doc/app/classes/Task.html +288 -0
- data/doc/app/classes/User.html +618 -0
- data/doc/app/classes/UserGroupMembership.html +111 -0
- data/doc/app/created.rid +1 -0
- data/doc/app/files/app/controllers/application_controller_rb.html +109 -0
- data/doc/app/files/app/controllers/cms/application_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/attachments_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/base_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/cache_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/categories_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/category_types_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/connectors_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/content_block_controller_rb.html +107 -0
- data/doc/app/files/app/controllers/cms/content_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/content_types_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/dashboard_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/dynamic_views_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/email_messages_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/error_handling_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/file_blocks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/groups_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/home_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/html_blocks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/image_blocks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/links_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_route_conditions_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_route_options_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_route_requirements_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/page_routes_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/pages_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/portlet_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/portlets_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/redirects_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/resource_controller_rb.html +108 -0
- data/doc/app/files/app/controllers/cms/routes_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/section_nodes_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/sections_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/sessions_controller_rb.html +107 -0
- data/doc/app/files/app/controllers/cms/tags_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/tasks_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/toolbar_controller_rb.html +101 -0
- data/doc/app/files/app/controllers/cms/users_controller_rb.html +101 -0
- data/doc/app/files/app/helpers/application_helper_rb.html +108 -0
- data/doc/app/files/app/helpers/cms/application_helper_rb.html +107 -0
- data/doc/app/files/app/helpers/cms/form_builder_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/form_tag_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/menu_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/page_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/path_helper_rb.html +101 -0
- data/doc/app/files/app/helpers/cms/section_nodes_helper_rb.html +101 -0
- data/doc/app/files/app/models/abstract_file_block_rb.html +101 -0
- data/doc/app/files/app/models/attachment_rb.html +109 -0
- data/doc/app/files/app/models/category_rb.html +101 -0
- data/doc/app/files/app/models/category_type_rb.html +101 -0
- data/doc/app/files/app/models/connector_rb.html +101 -0
- data/doc/app/files/app/models/content_type_group_rb.html +101 -0
- data/doc/app/files/app/models/content_type_rb.html +101 -0
- data/doc/app/files/app/models/dynamic_view_rb.html +101 -0
- data/doc/app/files/app/models/email_message_mailer_rb.html +101 -0
- data/doc/app/files/app/models/email_message_rb.html +101 -0
- data/doc/app/files/app/models/file_block_rb.html +101 -0
- data/doc/app/files/app/models/group_permission_rb.html +101 -0
- data/doc/app/files/app/models/group_rb.html +101 -0
- data/doc/app/files/app/models/group_section_rb.html +101 -0
- data/doc/app/files/app/models/group_type_permission_rb.html +101 -0
- data/doc/app/files/app/models/group_type_rb.html +101 -0
- data/doc/app/files/app/models/guest_user_rb.html +101 -0
- data/doc/app/files/app/models/html_block_rb.html +101 -0
- data/doc/app/files/app/models/image_block_rb.html +101 -0
- data/doc/app/files/app/models/link_rb.html +101 -0
- data/doc/app/files/app/models/page_partial_rb.html +101 -0
- data/doc/app/files/app/models/page_rb.html +101 -0
- data/doc/app/files/app/models/page_route_condition_rb.html +101 -0
- data/doc/app/files/app/models/page_route_option_rb.html +101 -0
- data/doc/app/files/app/models/page_route_rb.html +101 -0
- data/doc/app/files/app/models/page_route_requirement_rb.html +101 -0
- data/doc/app/files/app/models/page_template_rb.html +101 -0
- data/doc/app/files/app/models/permission_rb.html +101 -0
- data/doc/app/files/app/models/portlet_rb.html +101 -0
- data/doc/app/files/app/models/redirect_rb.html +101 -0
- data/doc/app/files/app/models/section_node_rb.html +101 -0
- data/doc/app/files/app/models/section_rb.html +101 -0
- data/doc/app/files/app/models/site_rb.html +101 -0
- data/doc/app/files/app/models/tag_rb.html +101 -0
- data/doc/app/files/app/models/tagging_rb.html +101 -0
- data/doc/app/files/app/models/task_rb.html +101 -0
- data/doc/app/files/app/models/user_group_membership_rb.html +101 -0
- data/doc/app/files/app/models/user_rb.html +108 -0
- data/doc/app/files/app/portlets/dynamic_portlet_rb.html +101 -0
- data/doc/app/files/app/portlets/email_page_portlet_rb.html +101 -0
- data/doc/app/files/app/portlets/login_portlet_rb.html +101 -0
- data/doc/app/files/app/portlets/tag_cloud_portlet_rb.html +101 -0
- data/doc/app/files/doc/README_FOR_APP.html +127 -0
- data/doc/app/files/lib/acts_as_list_rb.html +101 -0
- data/doc/app/files/lib/browsercms_rb.html +113 -0
- data/doc/app/files/lib/cms/acts/content_block_rb.html +101 -0
- data/doc/app/files/lib/cms/authentication/controller_rb.html +101 -0
- data/doc/app/files/lib/cms/authentication/model_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/archiving_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/attaching_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/categorizing_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/connecting_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/dynamic_attributes_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/flush_cache_on_change_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/hiding_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/pagination_rb.html +107 -0
- data/doc/app/files/lib/cms/behaviors/publishing_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/rendering_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/searching_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/soft_deleting_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/taggable_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/userstamping_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors/versioning_rb.html +101 -0
- data/doc/app/files/lib/cms/behaviors_rb.html +147 -0
- data/doc/app/files/lib/cms/caching_rb.html +101 -0
- data/doc/app/files/lib/cms/data_loader_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/action_view/base_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_record/base_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_record/errors_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/active_support/cache/file_store_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/hash_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/integer_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/nil_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions/string_rb.html +101 -0
- data/doc/app/files/lib/cms/extensions_rb.html +101 -0
- data/doc/app/files/lib/cms/init_rb.html +101 -0
- data/doc/app/files/lib/cms/routes_rb.html +101 -0
- data/doc/app/files/lib/initial_data_rb.html +101 -0
- data/doc/app/files/lib/sequence_rb.html +101 -0
- data/doc/app/fr_class_index.html +205 -0
- data/doc/app/fr_file_index.html +152 -0
- data/doc/app/fr_method_index.html +738 -0
- data/doc/app/index.html +24 -0
- data/doc/app/rdoc-style.css +208 -0
- data/doc/guides/html/build_it_yourself.html +175 -0
- data/doc/guides/html/deployment_guide.html +181 -0
- data/doc/guides/html/designer_guide.html +153 -0
- data/doc/guides/html/developer_guide.html +266 -0
- data/doc/guides/html/files/javascripts/code_highlighter.js +188 -0
- data/doc/guides/html/files/javascripts/guides.js +7 -0
- data/doc/guides/html/files/javascripts/highlighters.js +90 -0
- data/doc/guides/html/files/stylesheets/main.css +441 -0
- data/doc/guides/html/files/stylesheets/reset.css +43 -0
- data/doc/guides/html/files/stylesheets/style.css +13 -0
- data/doc/guides/html/files/stylesheets/syntax.css +31 -0
- data/doc/guides/html/getting_started.html +181 -0
- data/doc/guides/html/images/bg.png +0 -0
- data/doc/guides/html/images/bottom_cap.png +0 -0
- data/doc/guides/html/images/browsercms_logo.png +0 -0
- data/doc/guides/html/images/dot.png +0 -0
- data/doc/guides/html/images/icons/README +5 -0
- data/doc/guides/html/images/icons/callouts/1.png +0 -0
- data/doc/guides/html/images/icons/callouts/10.png +0 -0
- data/doc/guides/html/images/icons/callouts/11.png +0 -0
- data/doc/guides/html/images/icons/callouts/12.png +0 -0
- data/doc/guides/html/images/icons/callouts/13.png +0 -0
- data/doc/guides/html/images/icons/callouts/14.png +0 -0
- data/doc/guides/html/images/icons/callouts/15.png +0 -0
- data/doc/guides/html/images/icons/callouts/2.png +0 -0
- data/doc/guides/html/images/icons/callouts/3.png +0 -0
- data/doc/guides/html/images/icons/callouts/4.png +0 -0
- data/doc/guides/html/images/icons/callouts/5.png +0 -0
- data/doc/guides/html/images/icons/callouts/6.png +0 -0
- data/doc/guides/html/images/icons/callouts/7.png +0 -0
- data/doc/guides/html/images/icons/callouts/8.png +0 -0
- data/doc/guides/html/images/icons/callouts/9.png +0 -0
- data/doc/guides/html/images/icons/caution.png +0 -0
- data/doc/guides/html/images/icons/example.png +0 -0
- data/doc/guides/html/images/icons/home.png +0 -0
- data/doc/guides/html/images/icons/important.png +0 -0
- data/doc/guides/html/images/icons/next.png +0 -0
- data/doc/guides/html/images/icons/note.png +0 -0
- data/doc/guides/html/images/icons/prev.png +0 -0
- data/doc/guides/html/images/icons/tip.png +0 -0
- data/doc/guides/html/images/icons/up.png +0 -0
- data/doc/guides/html/images/icons/warning.png +0 -0
- data/doc/guides/html/images/top_cap.png +0 -0
- data/doc/guides/html/images/top_cap_content.png +0 -0
- data/doc/guides/html/index.html +168 -0
- data/doc/guides/html/installing_modules.html +181 -0
- data/doc/guides/html/user_guide.html +266 -0
- data/lib/cms/behaviors/attaching.rb +1 -1
- data/lib/cms/behaviors/rendering.rb +1 -1
- data/lib/cms/behaviors/taggable.rb +2 -1
- data/lib/cms/behaviors/versioning.rb +1 -1
- data/lib/cms/init.rb +4 -4
- data/lib/tasks/cms.rake +16 -42
- data/public/images/cms/buttons/button_cap_off_middle.gif +0 -0
- data/public/images/cms/buttons/button_left_bg.png +0 -0
- data/public/images/cms/buttons/button_off_middle.png +0 -0
- data/public/images/cms/nav_admin.gif +0 -0
- data/public/images/cms/nav_admin_h.gif +0 -0
- data/public/images/cms/nav_admin_on.gif +0 -0
- data/public/images/cms/nav_content_library.gif +0 -0
- data/public/images/cms/nav_content_library_h.gif +0 -0
- data/public/images/cms/nav_content_library_on.gif +0 -0
- data/public/images/cms/nav_dash.gif +0 -0
- data/public/images/cms/nav_dash_h.gif +0 -0
- data/public/images/cms/nav_dash_on.gif +0 -0
- data/public/images/cms/nav_sitemap.gif +0 -0
- data/public/images/cms/nav_sitemap_h.gif +0 -0
- data/public/images/cms/nav_sitemap_on.gif +0 -0
- data/public/stylesheets/cms/administration.css +91 -91
- data/public/stylesheets/cms/block.css +25 -25
- data/public/stylesheets/cms/buttons.css +120 -111
- data/public/stylesheets/cms/content_library.css +2 -1
- data/public/stylesheets/cms/content_types.css +3 -3
- data/public/stylesheets/cms/dashboard.css +118 -118
- data/public/stylesheets/cms/data_table.css +155 -155
- data/public/stylesheets/cms/form_layout.css +269 -269
- data/public/stylesheets/cms/jquery.contextMenu.css +61 -61
- data/public/stylesheets/cms/login.css +77 -77
- data/public/stylesheets/cms/menu.css +116 -116
- data/public/stylesheets/cms/nav.css +98 -111
- data/public/stylesheets/cms/page_toolbar.css +134 -134
- data/public/stylesheets/cms/sitemap.css +31 -15
- data/rails_generators/content_block/content_block_generator.rb +4 -9
- data/rails_generators/content_block/templates/_form.html.erb +3 -1
- data/rails_generators/portlet/portlet_generator.rb +2 -6
- data/rails_generators/portlet/templates/_form.html.erb +1 -0
- data/templates/blank.rb +30 -0
- data/templates/demo.rb +28 -0
- data/templates/module.rb +945 -0
- data/test/functional/cms/connectors_controller_test.rb +12 -1
- data/test/functional/cms/portlets_controller_test.rb +10 -0
- data/test/unit/behaviors/taggable_test.rb +19 -0
- data/test/unit/helpers/menu_helper_test.rb +72 -1
- data/test/unit/lib/generators_test.rb +21 -3
- data/test/unit/models/connector_test.rb +16 -0
- data/test/unit/models/sections_test.rb +4 -0
- metadata +380 -2
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Module: Cms::Behaviors::InstanceMethods</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Module</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Cms::Behaviors::InstanceMethods</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../../files/lib/cms/behaviors/rendering_rb.html">
|
|
59
|
+
lib/cms/behaviors/rendering.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
</table>
|
|
66
|
+
</div>
|
|
67
|
+
<!-- banner header -->
|
|
68
|
+
|
|
69
|
+
<div id="bodyContent">
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<div id="contextContent">
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div id="method-list">
|
|
80
|
+
<h3 class="section-bar">Methods</h3>
|
|
81
|
+
|
|
82
|
+
<div class="name-list">
|
|
83
|
+
<a href="#M000408">assigns_for_view</a>
|
|
84
|
+
<a href="#M000407">copy_instance_variables_from_controller!</a>
|
|
85
|
+
<a href="#M000406">perform_render</a>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
<!-- if includes -->
|
|
93
|
+
|
|
94
|
+
<div id="section">
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<!-- if method_list -->
|
|
104
|
+
<div id="methods">
|
|
105
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
106
|
+
|
|
107
|
+
<div id="method-M000406" class="method-detail">
|
|
108
|
+
<a name="M000406"></a>
|
|
109
|
+
|
|
110
|
+
<div class="method-heading">
|
|
111
|
+
<a href="#M000406" class="method-signature">
|
|
112
|
+
<span class="method-name">perform_render</span><span class="method-args">(controller)</span>
|
|
113
|
+
</a>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
<div class="method-description">
|
|
117
|
+
<p><a class="source-toggle" href="#"
|
|
118
|
+
onclick="toggleCode('M000406-source');return false;">[Source]</a></p>
|
|
119
|
+
<div class="method-source-code" id="M000406-source">
|
|
120
|
+
<pre>
|
|
121
|
+
<span class="ruby-comment cmt"># File lib/cms/behaviors/rendering.rb, line 85</span>
|
|
122
|
+
85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">perform_render</span>(<span class="ruby-identifier">controller</span>)
|
|
123
|
+
86: <span class="ruby-comment cmt"># Give this renderable a reference to the controller</span>
|
|
124
|
+
87: <span class="ruby-ivar">@controller</span> = <span class="ruby-identifier">controller</span>
|
|
125
|
+
88:
|
|
126
|
+
89: <span class="ruby-identifier">copy_instance_variables_from_controller!</span>
|
|
127
|
+
90:
|
|
128
|
+
91: <span class="ruby-comment cmt"># This gives the view a reference to this object</span>
|
|
129
|
+
92: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">instance_variable_name_for_view</span>, <span class="ruby-keyword kw">self</span>)
|
|
130
|
+
93:
|
|
131
|
+
94: <span class="ruby-comment cmt"># This is like a controller action</span>
|
|
132
|
+
95: <span class="ruby-comment cmt"># We will call it if you have defined a render method</span>
|
|
133
|
+
96: <span class="ruby-comment cmt"># but if you haven't we won't</span>
|
|
134
|
+
97: <span class="ruby-identifier">render</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:render</span>)
|
|
135
|
+
98:
|
|
136
|
+
99: <span class="ruby-comment cmt"># Create, Instantiate and Initialize the view</span>
|
|
137
|
+
100: <span class="ruby-identifier">view_class</span> = <span class="ruby-constant">Class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">ActionView</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>)
|
|
138
|
+
101: <span class="ruby-identifier">action_view</span> = <span class="ruby-identifier">view_class</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">view_paths</span>, {}, <span class="ruby-ivar">@controller</span>)
|
|
139
|
+
102:
|
|
140
|
+
103: <span class="ruby-comment cmt"># Make helpers and instance vars available</span>
|
|
141
|
+
104: <span class="ruby-identifier">view_class</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:include</span>, <span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">master_helper_module</span>)
|
|
142
|
+
105: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$:</span>.<span class="ruby-identifier">detect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">d</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">helper_path</span>))}
|
|
143
|
+
106: <span class="ruby-identifier">view_class</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">:include</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">helper_class</span>)
|
|
144
|
+
107: <span class="ruby-keyword kw">end</span>
|
|
145
|
+
108:
|
|
146
|
+
109: <span class="ruby-comment cmt"># We want content_for to be called on the controller's view, not this inner view</span>
|
|
147
|
+
110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">action_view</span>.<span class="ruby-identifier">content_for</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">content</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
|
148
|
+
111: <span class="ruby-identifier">controller</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-value str">"@template"</span>).<span class="ruby-identifier">content_for</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">content</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
|
149
|
+
112: <span class="ruby-keyword kw">end</span>
|
|
150
|
+
113:
|
|
151
|
+
114: <span class="ruby-comment cmt"># Copy instance variables from this renderable object to it's view</span>
|
|
152
|
+
115: <span class="ruby-identifier">action_view</span>.<span class="ruby-identifier">assigns</span> = <span class="ruby-identifier">assigns_for_view</span>
|
|
153
|
+
116:
|
|
154
|
+
117: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:inline_options</span>)
|
|
155
|
+
118: <span class="ruby-identifier">options</span> = {<span class="ruby-identifier">:locals</span> =<span class="ruby-operator">></span> {}}.<span class="ruby-identifier">merge</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">inline_options</span>)
|
|
156
|
+
119: <span class="ruby-constant">ActionView</span><span class="ruby-operator">::</span><span class="ruby-constant">InlineTemplate</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:inline</span>], <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:type</span>]).<span class="ruby-identifier">render</span>(<span class="ruby-identifier">action_view</span>, <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:locals</span>])
|
|
157
|
+
120: <span class="ruby-keyword kw">else</span>
|
|
158
|
+
121: <span class="ruby-identifier">action_view</span>.<span class="ruby-identifier">render</span>(<span class="ruby-identifier">:file</span> =<span class="ruby-operator">></span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">template_path</span>)
|
|
159
|
+
122: <span class="ruby-keyword kw">end</span>
|
|
160
|
+
123: <span class="ruby-keyword kw">end</span>
|
|
161
|
+
</pre>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<h3 class="section-bar">Protected Instance methods</h3>
|
|
167
|
+
|
|
168
|
+
<div id="method-M000408" class="method-detail">
|
|
169
|
+
<a name="M000408"></a>
|
|
170
|
+
|
|
171
|
+
<div class="method-heading">
|
|
172
|
+
<a href="#M000408" class="method-signature">
|
|
173
|
+
<span class="method-name">assigns_for_view</span><span class="method-args">()</span>
|
|
174
|
+
</a>
|
|
175
|
+
</div>
|
|
176
|
+
|
|
177
|
+
<div class="method-description">
|
|
178
|
+
<p><a class="source-toggle" href="#"
|
|
179
|
+
onclick="toggleCode('M000408-source');return false;">[Source]</a></p>
|
|
180
|
+
<div class="method-source-code" id="M000408-source">
|
|
181
|
+
<pre>
|
|
182
|
+
<span class="ruby-comment cmt"># File lib/cms/behaviors/rendering.rb, line 135</span>
|
|
183
|
+
135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">assigns_for_view</span>
|
|
184
|
+
136: (<span class="ruby-identifier">instance_variables</span> <span class="ruby-operator">-</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">ivars_to_ignore</span>).<span class="ruby-identifier">inject</span>({}) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">h</span>,<span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
|
|
185
|
+
137: <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]] = <span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">k</span>)
|
|
186
|
+
138: <span class="ruby-identifier">h</span>
|
|
187
|
+
139: <span class="ruby-keyword kw">end</span>
|
|
188
|
+
140: <span class="ruby-keyword kw">end</span>
|
|
189
|
+
</pre>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
193
|
+
|
|
194
|
+
<div id="method-M000407" class="method-detail">
|
|
195
|
+
<a name="M000407"></a>
|
|
196
|
+
|
|
197
|
+
<div class="method-heading">
|
|
198
|
+
<a href="#M000407" class="method-signature">
|
|
199
|
+
<span class="method-name">copy_instance_variables_from_controller!</span><span class="method-args">()</span>
|
|
200
|
+
</a>
|
|
201
|
+
</div>
|
|
202
|
+
|
|
203
|
+
<div class="method-description">
|
|
204
|
+
<p><a class="source-toggle" href="#"
|
|
205
|
+
onclick="toggleCode('M000407-source');return false;">[Source]</a></p>
|
|
206
|
+
<div class="method-source-code" id="M000407-source">
|
|
207
|
+
<pre>
|
|
208
|
+
<span class="ruby-comment cmt"># File lib/cms/behaviors/rendering.rb, line 126</span>
|
|
209
|
+
126: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_instance_variables_from_controller!</span><span class="ruby-identifier">copy_instance_variables_from_controller!</span>
|
|
210
|
+
127: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:instance_variables_for_rendering</span>)
|
|
211
|
+
128: <span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">instance_variables_for_rendering</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">iv</span><span class="ruby-operator">|</span>
|
|
212
|
+
129: <span class="ruby-comment cmt">#logger.info "Copying #{iv} => #{@controller.instance_variable_get(iv).inspect}"</span>
|
|
213
|
+
130: <span class="ruby-identifier">instance_variable_set</span>(<span class="ruby-identifier">iv</span>, <span class="ruby-ivar">@controller</span>.<span class="ruby-identifier">instance_variable_get</span>(<span class="ruby-identifier">iv</span>))
|
|
214
|
+
131: <span class="ruby-keyword kw">end</span>
|
|
215
|
+
132: <span class="ruby-keyword kw">end</span>
|
|
216
|
+
133: <span class="ruby-keyword kw">end</span>
|
|
217
|
+
</pre>
|
|
218
|
+
</div>
|
|
219
|
+
</div>
|
|
220
|
+
</div>
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
<div id="validator-badges">
|
|
230
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
</body>
|
|
234
|
+
</html>
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Module: Cms::Behaviors::Pagination</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Module</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Cms::Behaviors::Pagination</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../../files/lib/cms/behaviors/pagination_rb.html">
|
|
59
|
+
lib/cms/behaviors/pagination.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
</table>
|
|
66
|
+
</div>
|
|
67
|
+
<!-- banner header -->
|
|
68
|
+
|
|
69
|
+
<div id="bodyContent">
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<div id="contextContent">
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div id="method-list">
|
|
80
|
+
<h3 class="section-bar">Methods</h3>
|
|
81
|
+
|
|
82
|
+
<div class="name-list">
|
|
83
|
+
<a href="#M000394">included</a>
|
|
84
|
+
</div>
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
<!-- if includes -->
|
|
91
|
+
|
|
92
|
+
<div id="section">
|
|
93
|
+
|
|
94
|
+
<div id="class-list">
|
|
95
|
+
<h3 class="section-bar">Classes and Modules</h3>
|
|
96
|
+
|
|
97
|
+
Module <a href="Pagination/ClassMethods.html" class="link">Cms::Behaviors::Pagination::ClassMethods</a><br />
|
|
98
|
+
Class <a href="Pagination/Collection.html" class="link">Cms::Behaviors::Pagination::Collection</a><br />
|
|
99
|
+
Class <a href="Pagination/InvalidPage.html" class="link">Cms::Behaviors::Pagination::InvalidPage</a><br />
|
|
100
|
+
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
<!-- if method_list -->
|
|
110
|
+
<div id="methods">
|
|
111
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
112
|
+
|
|
113
|
+
<div id="method-M000394" class="method-detail">
|
|
114
|
+
<a name="M000394"></a>
|
|
115
|
+
|
|
116
|
+
<div class="method-heading">
|
|
117
|
+
<a href="#M000394" class="method-signature">
|
|
118
|
+
<span class="method-name">included</span><span class="method-args">(model_class)</span>
|
|
119
|
+
</a>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<div class="method-description">
|
|
123
|
+
<p><a class="source-toggle" href="#"
|
|
124
|
+
onclick="toggleCode('M000394-source');return false;">[Source]</a></p>
|
|
125
|
+
<div class="method-source-code" id="M000394-source">
|
|
126
|
+
<pre>
|
|
127
|
+
<span class="ruby-comment cmt"># File lib/cms/behaviors/pagination.rb, line 5</span>
|
|
128
|
+
5: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">included</span>(<span class="ruby-identifier">model_class</span>)
|
|
129
|
+
6: <span class="ruby-identifier">model_class</span>.<span class="ruby-identifier">extend</span>(<span class="ruby-constant">ClassMethods</span>)
|
|
130
|
+
7: <span class="ruby-keyword kw">class</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">model_class</span>
|
|
131
|
+
8: <span class="ruby-identifier">define_method</span>(<span class="ruby-identifier">:default_per_page</span>) { <span class="ruby-value">15</span> }
|
|
132
|
+
9: <span class="ruby-keyword kw">end</span>
|
|
133
|
+
10: <span class="ruby-keyword kw">end</span>
|
|
134
|
+
</pre>
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
<div id="validator-badges">
|
|
147
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
</body>
|
|
151
|
+
</html>
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!DOCTYPE html
|
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
+
|
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
+
<head>
|
|
8
|
+
<title>Module: Cms::Behaviors::Pagination::ClassMethods</title>
|
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
+
<link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
+
<script type="text/javascript">
|
|
13
|
+
// <![CDATA[
|
|
14
|
+
|
|
15
|
+
function popupCode( url ) {
|
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function toggleCode( id ) {
|
|
20
|
+
if ( document.getElementById )
|
|
21
|
+
elem = document.getElementById( id );
|
|
22
|
+
else if ( document.all )
|
|
23
|
+
elem = eval( "document.all." + id );
|
|
24
|
+
else
|
|
25
|
+
return false;
|
|
26
|
+
|
|
27
|
+
elemStyle = elem.style;
|
|
28
|
+
|
|
29
|
+
if ( elemStyle.display != "block" ) {
|
|
30
|
+
elemStyle.display = "block"
|
|
31
|
+
} else {
|
|
32
|
+
elemStyle.display = "none"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Make codeblocks hidden by default
|
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
+
|
|
41
|
+
// ]]>
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
</head>
|
|
45
|
+
<body>
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<div id="classHeader">
|
|
50
|
+
<table class="header-table">
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>Module</strong></td>
|
|
53
|
+
<td class="class-name-in-header">Cms::Behaviors::Pagination::ClassMethods</td>
|
|
54
|
+
</tr>
|
|
55
|
+
<tr class="top-aligned-row">
|
|
56
|
+
<td><strong>In:</strong></td>
|
|
57
|
+
<td>
|
|
58
|
+
<a href="../../../../files/lib/cms/behaviors/pagination_rb.html">
|
|
59
|
+
lib/cms/behaviors/pagination.rb
|
|
60
|
+
</a>
|
|
61
|
+
<br />
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
|
|
65
|
+
</table>
|
|
66
|
+
</div>
|
|
67
|
+
<!-- banner header -->
|
|
68
|
+
|
|
69
|
+
<div id="bodyContent">
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<div id="contextContent">
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div id="method-list">
|
|
80
|
+
<h3 class="section-bar">Methods</h3>
|
|
81
|
+
|
|
82
|
+
<div class="name-list">
|
|
83
|
+
<a href="#M000396">count_for_pagination</a>
|
|
84
|
+
<a href="#M000395">paginate</a>
|
|
85
|
+
</div>
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
<!-- if includes -->
|
|
92
|
+
|
|
93
|
+
<div id="section">
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
<!-- if method_list -->
|
|
103
|
+
<div id="methods">
|
|
104
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
|
105
|
+
|
|
106
|
+
<div id="method-M000395" class="method-detail">
|
|
107
|
+
<a name="M000395"></a>
|
|
108
|
+
|
|
109
|
+
<div class="method-heading">
|
|
110
|
+
<a href="#M000395" class="method-signature">
|
|
111
|
+
<span class="method-name">paginate</span><span class="method-args">(*args, &block)</span>
|
|
112
|
+
</a>
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
<div class="method-description">
|
|
116
|
+
<p>
|
|
117
|
+
This is the main paginating finder.
|
|
118
|
+
</p>
|
|
119
|
+
<h2>Special parameters for paginating finders</h2>
|
|
120
|
+
<ul>
|
|
121
|
+
<li><tt>:page</tt> — REQUIRED, but defaults to 1 if false or nil
|
|
122
|
+
|
|
123
|
+
</li>
|
|
124
|
+
<li><tt>:per_page</tt> — defaults to <tt>CurrentModel.per_page</tt>
|
|
125
|
+
(which is 30 if not overridden)
|
|
126
|
+
|
|
127
|
+
</li>
|
|
128
|
+
<li><tt>:total_entries</tt> — use only if you manually count total
|
|
129
|
+
entries
|
|
130
|
+
|
|
131
|
+
</li>
|
|
132
|
+
<li><tt>:count</tt> — additional options that are passed on to
|
|
133
|
+
<tt>count</tt>
|
|
134
|
+
|
|
135
|
+
</li>
|
|
136
|
+
<li><tt>:finder</tt> — name of the <a
|
|
137
|
+
href="../../../ActiveRecord.html">ActiveRecord</a> finder used (default:
|
|
138
|
+
"find")
|
|
139
|
+
|
|
140
|
+
</li>
|
|
141
|
+
</ul>
|
|
142
|
+
<p>
|
|
143
|
+
All other options (<tt>conditions</tt>, <tt>order</tt>, …) are
|
|
144
|
+
forwarded to <tt>find</tt> and <tt>count</tt> calls.
|
|
145
|
+
</p>
|
|
146
|
+
<p><a class="source-toggle" href="#"
|
|
147
|
+
onclick="toggleCode('M000395-source');return false;">[Source]</a></p>
|
|
148
|
+
<div class="method-source-code" id="M000395-source">
|
|
149
|
+
<pre>
|
|
150
|
+
<span class="ruby-comment cmt"># File lib/cms/behaviors/pagination.rb, line 131</span>
|
|
151
|
+
131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">paginate</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
|
152
|
+
132: <span class="ruby-identifier">options</span> = <span class="ruby-identifier">args</span>.<span class="ruby-identifier">pop</span>
|
|
153
|
+
133: <span class="ruby-identifier">page</span>, <span class="ruby-identifier">per_page</span>, <span class="ruby-identifier">total_entries</span> = <span class="ruby-identifier">parse_pagination_options</span>(<span class="ruby-identifier">options</span>)
|
|
154
|
+
134:
|
|
155
|
+
135: <span class="ruby-identifier">finder</span> = (<span class="ruby-identifier">options</span>[<span class="ruby-identifier">:finder</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">'find'</span>).<span class="ruby-identifier">to_s</span>
|
|
156
|
+
136: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">finder</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'find'</span>
|
|
157
|
+
137: <span class="ruby-comment cmt"># an array of IDs may have been given:</span>
|
|
158
|
+
138: <span class="ruby-identifier">total_entries</span> <span class="ruby-operator">||=</span> (<span class="ruby-constant">Array</span> <span class="ruby-operator">===</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">size</span>)
|
|
159
|
+
139: <span class="ruby-comment cmt"># :all is implicit</span>
|
|
160
|
+
140: <span class="ruby-identifier">args</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-identifier">:all</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">args</span>.<span class="ruby-identifier">empty?</span>
|
|
161
|
+
141: <span class="ruby-keyword kw">end</span>
|
|
162
|
+
142:
|
|
163
|
+
143: <span class="ruby-constant">Collection</span>.<span class="ruby-identifier">create</span>(<span class="ruby-identifier">page</span>, <span class="ruby-identifier">per_page</span>, <span class="ruby-identifier">total_entries</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pager</span><span class="ruby-operator">|</span>
|
|
164
|
+
144: <span class="ruby-identifier">count_options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">except</span> <span class="ruby-identifier">:page</span>, <span class="ruby-identifier">:per_page</span>, <span class="ruby-identifier">:total_entries</span>, <span class="ruby-identifier">:finder</span>
|
|
165
|
+
145: <span class="ruby-identifier">find_options</span> = <span class="ruby-identifier">count_options</span>.<span class="ruby-identifier">except</span>(<span class="ruby-identifier">:count</span>).<span class="ruby-identifier">update</span>(<span class="ruby-identifier">:offset</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">pager</span>.<span class="ruby-identifier">offset</span>, <span class="ruby-identifier">:limit</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">pager</span>.<span class="ruby-identifier">per_page</span>)
|
|
166
|
+
146:
|
|
167
|
+
147: <span class="ruby-identifier">args</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">find_options</span>
|
|
168
|
+
148: <span class="ruby-comment cmt"># @options_from_last_find = nil</span>
|
|
169
|
+
149: <span class="ruby-identifier">pager</span>.<span class="ruby-identifier">replace</span> <span class="ruby-identifier">send</span>(<span class="ruby-identifier">finder</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
|
170
|
+
150:
|
|
171
|
+
151: <span class="ruby-comment cmt"># magic counting for user convenience:</span>
|
|
172
|
+
152: <span class="ruby-identifier">pager</span>.<span class="ruby-identifier">total_entries</span> = <span class="ruby-identifier">count_for_pagination</span>(<span class="ruby-identifier">count_options</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">finder</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">pager</span>.<span class="ruby-identifier">total_entries</span>
|
|
173
|
+
153: <span class="ruby-keyword kw">end</span>
|
|
174
|
+
154: <span class="ruby-keyword kw">end</span>
|
|
175
|
+
</pre>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
|
|
180
|
+
<h3 class="section-bar">Protected Instance methods</h3>
|
|
181
|
+
|
|
182
|
+
<div id="method-M000396" class="method-detail">
|
|
183
|
+
<a name="M000396"></a>
|
|
184
|
+
|
|
185
|
+
<div class="method-heading">
|
|
186
|
+
<a href="#M000396" class="method-signature">
|
|
187
|
+
<span class="method-name">count_for_pagination</span><span class="method-args">(options, args, finder)</span>
|
|
188
|
+
</a>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<div class="method-description">
|
|
192
|
+
<p>
|
|
193
|
+
Does the not-so-trivial job of finding out the total number of entries in
|
|
194
|
+
the database. It relies on the <a
|
|
195
|
+
href="../../../ActiveRecord.html">ActiveRecord</a> <tt>count</tt> method.
|
|
196
|
+
</p>
|
|
197
|
+
<p><a class="source-toggle" href="#"
|
|
198
|
+
onclick="toggleCode('M000396-source');return false;">[Source]</a></p>
|
|
199
|
+
<div class="method-source-code" id="M000396-source">
|
|
200
|
+
<pre>
|
|
201
|
+
<span class="ruby-comment cmt"># File lib/cms/behaviors/pagination.rb, line 158</span>
|
|
202
|
+
158: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">count_for_pagination</span>(<span class="ruby-identifier">options</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">finder</span>)
|
|
203
|
+
159: <span class="ruby-identifier">excludees</span> = [<span class="ruby-identifier">:count</span>, <span class="ruby-identifier">:order</span>, <span class="ruby-identifier">:limit</span>, <span class="ruby-identifier">:offset</span>, <span class="ruby-identifier">:readonly</span>]
|
|
204
|
+
160: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:select</span>] <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:select</span>] <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^\s*DISTINCT\b/i</span>
|
|
205
|
+
161: <span class="ruby-identifier">excludees</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">:select</span> <span class="ruby-comment cmt"># only exclude the select param if it doesn't begin with DISTINCT</span>
|
|
206
|
+
162: <span class="ruby-keyword kw">end</span>
|
|
207
|
+
163: <span class="ruby-comment cmt"># count expects (almost) the same options as find</span>
|
|
208
|
+
164: <span class="ruby-identifier">count_options</span> = <span class="ruby-identifier">options</span>.<span class="ruby-identifier">except</span> <span class="ruby-operator">*</span><span class="ruby-identifier">excludees</span>
|
|
209
|
+
165:
|
|
210
|
+
166: <span class="ruby-comment cmt"># merge the hash found in :count</span>
|
|
211
|
+
167: <span class="ruby-comment cmt"># this allows you to specify :select, :order, or anything else just for the count query</span>
|
|
212
|
+
168: <span class="ruby-identifier">count_options</span>.<span class="ruby-identifier">update</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:count</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:count</span>]
|
|
213
|
+
169:
|
|
214
|
+
170: <span class="ruby-comment cmt"># we may have to scope ...</span>
|
|
215
|
+
171: <span class="ruby-identifier">counter</span> = <span class="ruby-constant">Proc</span>.<span class="ruby-identifier">new</span> { <span class="ruby-identifier">count</span>(<span class="ruby-identifier">count_options</span>) }
|
|
216
|
+
172:
|
|
217
|
+
173: <span class="ruby-comment cmt"># we may be in a model or an association proxy!</span>
|
|
218
|
+
174: <span class="ruby-identifier">klass</span> = (<span class="ruby-ivar">@owner</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@reflection</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@reflection</span>.<span class="ruby-identifier">klass</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">self</span>
|
|
219
|
+
175:
|
|
220
|
+
176: <span class="ruby-identifier">count</span> = <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">finder</span>.<span class="ruby-identifier">index</span>(<span class="ruby-value str">'find_'</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">scoper</span> = <span class="ruby-identifier">finder</span>.<span class="ruby-identifier">sub</span>(<span class="ruby-value str">'find'</span>, <span class="ruby-value str">'with'</span>))
|
|
221
|
+
177: <span class="ruby-comment cmt"># scope_out adds a 'with_finder' method which acts like with_scope, if it's present</span>
|
|
222
|
+
178: <span class="ruby-comment cmt"># then execute the count with the scoping provided by the with_finder</span>
|
|
223
|
+
179: <span class="ruby-identifier">send</span>(<span class="ruby-identifier">scoper</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">counter</span>)
|
|
224
|
+
180: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">match</span> = <span class="ruby-regexp re">/^find_(all_by|by)_([_a-zA-Z]\w*)$/</span>.<span class="ruby-identifier">match</span>(<span class="ruby-identifier">finder</span>)
|
|
225
|
+
181: <span class="ruby-comment cmt"># extract conditions from calls like "paginate_by_foo_and_bar"</span>
|
|
226
|
+
182: <span class="ruby-identifier">attribute_names</span> = <span class="ruby-identifier">extract_attribute_names_from_match</span>(<span class="ruby-identifier">match</span>)
|
|
227
|
+
183: <span class="ruby-identifier">conditions</span> = <span class="ruby-identifier">construct_attributes_from_arguments</span>(<span class="ruby-identifier">attribute_names</span>, <span class="ruby-identifier">args</span>)
|
|
228
|
+
184: <span class="ruby-identifier">with_scope</span>(<span class="ruby-identifier">:find</span> =<span class="ruby-operator">></span> { <span class="ruby-identifier">:conditions</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">conditions</span> }, <span class="ruby-operator">&</span><span class="ruby-identifier">counter</span>)
|
|
229
|
+
185: <span class="ruby-keyword kw">else</span>
|
|
230
|
+
186: <span class="ruby-identifier">counter</span>.<span class="ruby-identifier">call</span>
|
|
231
|
+
187: <span class="ruby-keyword kw">end</span>
|
|
232
|
+
188:
|
|
233
|
+
189: <span class="ruby-identifier">count</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">:length</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">count</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">count</span>
|
|
234
|
+
190: <span class="ruby-keyword kw">end</span>
|
|
235
|
+
</pre>
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
</div>
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
</div>
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
<div id="validator-badges">
|
|
248
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
249
|
+
</div>
|
|
250
|
+
|
|
251
|
+
</body>
|
|
252
|
+
</html>
|