adva-core 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. data/lib/bundler/repository.rb +118 -0
  2. metadata +68 -317
  3. data/app/controllers/admin/base_controller.rb +0 -21
  4. data/app/controllers/admin/pages_controller.rb +0 -7
  5. data/app/controllers/admin/sections_controller.rb +0 -39
  6. data/app/controllers/admin/sites_controller.rb +0 -21
  7. data/app/controllers/articles_controller.rb +0 -3
  8. data/app/controllers/base_controller.rb +0 -22
  9. data/app/controllers/installations_controller.rb +0 -28
  10. data/app/controllers/pages_controller.rb +0 -2
  11. data/app/controllers/sections_controller.rb +0 -3
  12. data/app/helpers/form_helper.rb +0 -13
  13. data/app/helpers/sections_helper.rb +0 -7
  14. data/app/helpers/url_helper.rb +0 -18
  15. data/app/models/account.rb +0 -3
  16. data/app/models/article.rb +0 -2
  17. data/app/models/content.rb +0 -4
  18. data/app/models/page.rb +0 -17
  19. data/app/models/section.rb +0 -59
  20. data/app/models/site.rb +0 -26
  21. data/app/views/admin/contents/_menu.html.rb +0 -17
  22. data/app/views/admin/pages/_menu.html.rb +0 -10
  23. data/app/views/admin/pages/new.html.rb +0 -19
  24. data/app/views/admin/pages/show.html.rb +0 -25
  25. data/app/views/admin/sections/_menu.html.rb +0 -45
  26. data/app/views/admin/sections/_section.html.rb +0 -7
  27. data/app/views/admin/sections/_select_type.html.rb +0 -16
  28. data/app/views/admin/sections/index.html.rb +0 -28
  29. data/app/views/admin/sites/_menu.html.rb +0 -2
  30. data/app/views/admin/sites/edit.html.rb +0 -22
  31. data/app/views/admin/sites/index.html.rb +0 -12
  32. data/app/views/admin/sites/new.html.rb +0 -39
  33. data/app/views/admin/sites/show.html.rb +0 -7
  34. data/app/views/installations/new.html.rb +0 -39
  35. data/app/views/installations/show.html.rb +0 -9
  36. data/app/views/layouts/_flash.html.rb +0 -9
  37. data/app/views/layouts/admin.rb +0 -38
  38. data/app/views/layouts/admin/_header.rb +0 -48
  39. data/app/views/layouts/admin/_tabs.html.rb +0 -18
  40. data/app/views/layouts/admin/_top.rb +0 -58
  41. data/app/views/layouts/base.rb +0 -58
  42. data/app/views/layouts/default.rb +0 -45
  43. data/app/views/layouts/default/_menu.rb +0 -19
  44. data/app/views/layouts/simple.rb +0 -16
  45. data/app/views/pages/show.html.rb +0 -7
  46. data/config/initializers/simple_form.rb +0 -53
  47. data/config/locales/en.yml +0 -129
  48. data/config/redirects.rb +0 -8
  49. data/config/routes.rb +0 -21
  50. data/lib/adva-core.rb +0 -1
  51. data/lib/adva.rb +0 -37
  52. data/lib/adva/active_record/has_options.rb +0 -55
  53. data/lib/adva/cli.rb +0 -16
  54. data/lib/adva/controller.rb +0 -7
  55. data/lib/adva/controller/abstract_actions.rb +0 -87
  56. data/lib/adva/controller/internal_redirect.rb +0 -26
  57. data/lib/adva/controller/references.rb +0 -28
  58. data/lib/adva/core.rb +0 -85
  59. data/lib/adva/engine.rb +0 -64
  60. data/lib/adva/engine/sliced_models.rb +0 -35
  61. data/lib/adva/generators.rb +0 -8
  62. data/lib/adva/generators/app.rb +0 -121
  63. data/lib/adva/generators/engine.rb +0 -58
  64. data/lib/adva/generators/gemfile.rb +0 -50
  65. data/lib/adva/generators/install.rb +0 -31
  66. data/lib/adva/generators/templates/app/app_template.rb +0 -3
  67. data/lib/adva/generators/templates/engine/Gemfile.erb +0 -3
  68. data/lib/adva/generators/templates/engine/all.rb +0 -1
  69. data/lib/adva/generators/templates/engine/en.yml.erb +0 -2
  70. data/lib/adva/generators/templates/engine/engine.rb.erb +0 -11
  71. data/lib/adva/generators/templates/engine/gemspec.erb +0 -21
  72. data/lib/adva/generators/templates/engine/migration.rb.erb +0 -11
  73. data/lib/adva/generators/templates/engine/redirects.rb.erb +0 -3
  74. data/lib/adva/generators/templates/engine/routes.rb.erb +0 -3
  75. data/lib/adva/generators/templates/engine/test_helper.rb.erb +0 -3
  76. data/lib/adva/i18n.rb +0 -73
  77. data/lib/adva/rack.rb +0 -5
  78. data/lib/adva/rack/static.rb +0 -50
  79. data/lib/adva/registry.rb +0 -62
  80. data/lib/adva/responder.rb +0 -21
  81. data/lib/adva/responder/redirect.rb +0 -31
  82. data/lib/adva/routing_filters/section_path.rb +0 -72
  83. data/lib/adva/routing_filters/section_root.rb +0 -65
  84. data/lib/adva/tasks/core.rake +0 -9
  85. data/lib/adva/tasks/core.rb +0 -160
  86. data/lib/adva/testing.rb +0 -57
  87. data/lib/adva/testing/engine.rb +0 -37
  88. data/lib/adva/view.rb +0 -7
  89. data/lib/adva/view/form.rb +0 -44
  90. data/lib/adva/view/form/tabs.rb +0 -46
  91. data/lib/adva/view/helper/i18n.rb +0 -26
  92. data/lib/adva/view/menu.rb +0 -73
  93. data/lib/adva/view/menu/admin.rb +0 -100
  94. data/lib/adva/view/menu/items.rb +0 -26
  95. data/lib/adva/view/tabs.rb +0 -28
  96. data/lib/adva_core/version.rb +0 -3
  97. data/lib/core_ext/rails/action_view/has_many_through_collection_helpers.rb +0 -27
  98. data/lib/core_ext/rails/active_record/skip_callbacks.rb +0 -51
  99. data/lib/core_ext/ruby/array/flatten_once.rb +0 -9
  100. data/lib/core_ext/ruby/kernel/silence_stream.rb +0 -17
  101. data/lib/core_ext/ruby/module/include_anonymous.rb +0 -36
  102. data/lib/core_ext/ruby/module/option_reader.rb +0 -9
  103. data/lib/patches/arel/table_initialization_fixes.rb +0 -68
  104. data/lib/patches/inherited_resources.rb +0 -34
  105. data/lib/patches/rails/arel_table_options_fix.rb +0 -13
  106. data/lib/patches/rails/asset_expansion_multiple_registrations.rb +0 -21
  107. data/lib/patches/rails/recognize_path_env.rb +0 -43
  108. data/lib/patches/rails/route_set_to_param.rb +0 -25
  109. data/lib/patches/rails/sti_associations.rb +0 -17
  110. data/lib/patches/rails/template_resolver_caching.rb +0 -9
  111. data/lib/patches/rails/url_for.rb +0 -60
  112. data/lib/patches/responders/flash_responder.rb +0 -17
  113. data/lib/patches/simple_form.rb +0 -37
  114. data/lib/patches/thor/core_ext/hash.rb +0 -7
  115. data/lib/patches/thor/group/symbolized_options.rb +0 -8
  116. data/lib/patches/webrat/links-data-method.rb +0 -19
  117. data/lib/patches/webrat/logger.rb +0 -19
  118. data/lib/patches/webrat/upload_file.rb +0 -28
  119. data/lib/testing/assertions.rb +0 -19
  120. data/lib/testing/factories.rb +0 -30
  121. data/lib/testing/helpers/global_helpers.rb +0 -9
  122. data/lib/testing/paths.rb +0 -54
  123. data/lib/testing/step_definitions/common_steps.rb +0 -279
  124. data/lib/testing/step_definitions/menu_steps.rb +0 -11
  125. data/lib/testing/step_definitions/routes_steps.rb +0 -18
  126. data/lib/testing/step_definitions/transforms.rb +0 -50
  127. data/lib/testing/step_definitions/webrat_steps.rb +0 -291
  128. data/lib/testing/step_definitions/within_steps.rb +0 -17
  129. data/lib/webrat/integrations/rails.rb +0 -33
  130. data/public/images/adva-core/admin/header_bg.png +0 -0
  131. data/public/images/adva-core/admin/menu_checkmark.png +0 -0
  132. data/public/images/adva-core/admin/section_menu_bg.png +0 -0
  133. data/public/images/adva-core/admin/tab_action_active.png +0 -0
  134. data/public/images/adva-core/admin/tab_main_active.png +0 -0
  135. data/public/images/adva-core/admin/tab_sidebar_active.png +0 -0
  136. data/public/images/adva-core/admin/tab_top_active.png +0 -0
  137. data/public/images/adva-core/asset_selected.png +0 -0
  138. data/public/images/adva-core/avatar.gif +0 -0
  139. data/public/images/adva-core/feed.mini.png +0 -0
  140. data/public/images/adva-core/filter-bg.png +0 -0
  141. data/public/images/adva-core/grid.png +0 -0
  142. data/public/images/adva-core/icons/accept.png +0 -0
  143. data/public/images/adva-core/icons/add.png +0 -0
  144. data/public/images/adva-core/icons/arrow_cross.png +0 -0
  145. data/public/images/adva-core/icons/arrow_cross_2.png +0 -0
  146. data/public/images/adva-core/icons/arrow_cross_3.png +0 -0
  147. data/public/images/adva-core/icons/arrow_up_down.png +0 -0
  148. data/public/images/adva-core/icons/assets/audio.png +0 -0
  149. data/public/images/adva-core/icons/assets/doc.png +0 -0
  150. data/public/images/adva-core/icons/assets/pdf.png +0 -0
  151. data/public/images/adva-core/icons/assets/video.png +0 -0
  152. data/public/images/adva-core/icons/attach.png +0 -0
  153. data/public/images/adva-core/icons/bin.png +0 -0
  154. data/public/images/adva-core/icons/bin_closed.png +0 -0
  155. data/public/images/adva-core/icons/bin_empty.png +0 -0
  156. data/public/images/adva-core/icons/bullet_black.png +0 -0
  157. data/public/images/adva-core/icons/bullet_delete.png +0 -0
  158. data/public/images/adva-core/icons/bullet_error.png +0 -0
  159. data/public/images/adva-core/icons/bullet_go.png +0 -0
  160. data/public/images/adva-core/icons/bullet_red.png +0 -0
  161. data/public/images/adva-core/icons/bullet_white.png +0 -0
  162. data/public/images/adva-core/icons/bullet_yellow.png +0 -0
  163. data/public/images/adva-core/icons/cancel.png +0 -0
  164. data/public/images/adva-core/icons/comment.gif +0 -0
  165. data/public/images/adva-core/icons/comment.png +0 -0
  166. data/public/images/adva-core/icons/comment_add.png +0 -0
  167. data/public/images/adva-core/icons/comment_blue.gif +0 -0
  168. data/public/images/adva-core/icons/comment_delete.png +0 -0
  169. data/public/images/adva-core/icons/comment_edit.png +0 -0
  170. data/public/images/adva-core/icons/comment_yellow.gif +0 -0
  171. data/public/images/adva-core/icons/cross.png +0 -0
  172. data/public/images/adva-core/icons/delete.png +0 -0
  173. data/public/images/adva-core/icons/eye.png +0 -0
  174. data/public/images/adva-core/icons/favorites.png +0 -0
  175. data/public/images/adva-core/icons/help.png +0 -0
  176. data/public/images/adva-core/icons/hourglass.png +0 -0
  177. data/public/images/adva-core/icons/icon_attachment.gif +0 -0
  178. data/public/images/adva-core/icons/icon_padlock.gif +0 -0
  179. data/public/images/adva-core/icons/link.png +0 -0
  180. data/public/images/adva-core/icons/lock.png +0 -0
  181. data/public/images/adva-core/icons/magnifier.png +0 -0
  182. data/public/images/adva-core/icons/minus.gif +0 -0
  183. data/public/images/adva-core/icons/page_add.png +0 -0
  184. data/public/images/adva-core/icons/page_delete.png +0 -0
  185. data/public/images/adva-core/icons/page_edit.png +0 -0
  186. data/public/images/adva-core/icons/page_favorites.png +0 -0
  187. data/public/images/adva-core/icons/page_go.png +0 -0
  188. data/public/images/adva-core/icons/page_green.png +0 -0
  189. data/public/images/adva-core/icons/page_red.png +0 -0
  190. data/public/images/adva-core/icons/page_white_add.png +0 -0
  191. data/public/images/adva-core/icons/page_white_delete.png +0 -0
  192. data/public/images/adva-core/icons/page_white_edit.png +0 -0
  193. data/public/images/adva-core/icons/page_white_go.png +0 -0
  194. data/public/images/adva-core/icons/page_white_link.png +0 -0
  195. data/public/images/adva-core/icons/page_white_magnify.png +0 -0
  196. data/public/images/adva-core/icons/pencil.png +0 -0
  197. data/public/images/adva-core/icons/star.png +0 -0
  198. data/public/images/adva-core/icons/stop.png +0 -0
  199. data/public/images/adva-core/icons/tag_green.png +0 -0
  200. data/public/images/adva-core/icons/tick.png +0 -0
  201. data/public/images/adva-core/icons/zoom.png +0 -0
  202. data/public/images/adva-core/indicator.gif +0 -0
  203. data/public/images/adva-core/lines.png +0 -0
  204. data/public/images/adva-core/preview.png +0 -0
  205. data/public/images/adva-core/theme_selected.png +0 -0
  206. data/public/javascripts/adva-core/admin.js +0 -22
  207. data/public/javascripts/adva-core/jquery/jquery-1.4.2.min.js +0 -154
  208. data/public/javascripts/adva-core/jquery/jquery.table_tree.js +0 -296
  209. data/public/javascripts/adva-core/jquery/jquery.tablednd_0_5.js +0 -386
  210. data/public/javascripts/adva-core/rails.js +0 -127
  211. data/public/javascripts/backup/admin/jquery.admin.js +0 -77
  212. data/public/javascripts/backup/admin/jquery.article.js +0 -22
  213. data/public/javascripts/backup/admin/jquery.cached_pages.js +0 -14
  214. data/public/javascripts/backup/admin/jquery.table_tree.backup.js +0 -279
  215. data/public/javascripts/backup/admin/jquery.table_tree.js +0 -10
  216. data/public/javascripts/backup/application.js +0 -38
  217. data/public/javascripts/backup/application.prototype.js +0 -135
  218. data/public/javascripts/backup/builder.js +0 -136
  219. data/public/javascripts/backup/controls.js +0 -965
  220. data/public/javascripts/backup/cookie.js +0 -49
  221. data/public/javascripts/backup/dragdrop.js +0 -975
  222. data/public/javascripts/backup/effects.js +0 -1130
  223. data/public/javascripts/backup/flash.js +0 -49
  224. data/public/javascripts/backup/jquery.dates.js +0 -49
  225. data/public/javascripts/backup/jquery.flash.js +0 -40
  226. data/public/javascripts/backup/jquery.roles.js +0 -23
  227. data/public/javascripts/backup/jquery/jquery-lowpro.js +0 -224
  228. data/public/javascripts/backup/jquery/jquery-ui.js +0 -273
  229. data/public/javascripts/backup/jquery/jquery.js +0 -19
  230. data/public/javascripts/backup/jquery/jquery.qtip.min.js +0 -15
  231. data/public/javascripts/backup/json.js +0 -139
  232. data/public/javascripts/backup/lowpro.js +0 -320
  233. data/public/javascripts/backup/parseuri.js +0 -39
  234. data/public/javascripts/backup/prototype.js +0 -4320
  235. data/public/javascripts/backup/roles.js +0 -16
  236. data/public/javascripts/backup/scriptaculous.js +0 -60
  237. data/public/javascripts/backup/slider.js +0 -275
  238. data/public/javascripts/backup/sound.js +0 -55
  239. data/public/javascripts/backup/unittest.js +0 -568
  240. data/public/stylesheets/adva-core/admin/forms.css +0 -172
  241. data/public/stylesheets/adva-core/admin/layout.css +0 -38
  242. data/public/stylesheets/adva-core/admin/lists.css +0 -54
  243. data/public/stylesheets/adva-core/admin/navigation.css +0 -234
  244. data/public/stylesheets/adva-core/admin/sidebar.css +0 -87
  245. data/public/stylesheets/adva-core/admin/styles.css +0 -136
  246. data/public/stylesheets/adva-core/common/forms.css +0 -174
  247. data/public/stylesheets/adva-core/common/layout.css +0 -93
  248. data/public/stylesheets/adva-core/common/reset.css +0 -42
  249. data/public/stylesheets/adva-core/common/styles.css +0 -41
  250. data/public/stylesheets/adva-core/default/layout.css +0 -0
  251. data/public/stylesheets/adva-core/default/styles.css +0 -30
  252. data/public/stylesheets/adva-core/simple/layout.css +0 -11
  253. data/public/stylesheets/backup/alternate/common.css +0 -76
  254. data/public/stylesheets/backup/alternate/forms.css +0 -121
  255. data/public/stylesheets/backup/alternate/header.css +0 -125
  256. data/public/stylesheets/backup/alternate/layout.css +0 -103
  257. data/public/stylesheets/backup/alternate/lists.css +0 -153
  258. data/public/stylesheets/backup/alternate/sidebar.css +0 -65
  259. data/public/stylesheets/backup/alternate/top.css +0 -123
  260. data/public/stylesheets/backup/content.css +0 -11
  261. data/public/stylesheets/backup/helptip.css +0 -35
  262. data/public/stylesheets/backup/jquery/alternate/jquery.tooltip.css +0 -13
  263. data/public/stylesheets/backup/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  264. data/public/stylesheets/backup/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  265. data/public/stylesheets/backup/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  266. data/public/stylesheets/backup/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  267. data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  268. data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  269. data/public/stylesheets/backup/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  270. data/public/stylesheets/backup/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  271. data/public/stylesheets/backup/jquery/images/ui-icons_222222_256x240.png +0 -0
  272. data/public/stylesheets/backup/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
  273. data/public/stylesheets/backup/jquery/images/ui-icons_454545_256x240.png +0 -0
  274. data/public/stylesheets/backup/jquery/images/ui-icons_888888_256x240.png +0 -0
  275. data/public/stylesheets/backup/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
  276. data/public/stylesheets/backup/jquery/jquery-ui.css +0 -406
  277. data/public/stylesheets/backup/jquery/jquery.tooltip.css +0 -10
  278. data/public/stylesheets/backup/layout.css +0 -22
  279. data/public/stylesheets/backup/lists.css +0 -17
  280. data/public/stylesheets/backup/menu.css +0 -129
  281. data/public/stylesheets/backup/projection.css +0 -118
  282. data/public/stylesheets/backup/screen/top.css +0 -8
  283. data/public/stylesheets/backup/themes.css +0 -49
  284. data/public/stylesheets/backup/users.css +0 -40
@@ -1,31 +0,0 @@
1
- module Adva
2
- module Generators
3
- class Install
4
- include Thor::Shell
5
-
6
- attr_reader :engines
7
-
8
- def initialize(engines)
9
- self.engines = engines
10
- end
11
-
12
- def invoke
13
- engines.each do |engine|
14
- engine.copy_migrations.each do |path|
15
- say_status('copy migration', File.basename(path), :green)
16
- end
17
- end
18
- end
19
-
20
- protected
21
-
22
- def engines=(engines)
23
- engines = Array(engines)
24
- engines = Adva.engines if engines.blank? || engines.include?(:all)
25
- engines = engines.map { |engine| engine.is_a?(Class) ? engine : Adva.const_get(engine.to_s.classify) }
26
- engines.unshift(Adva::Core) unless engines.include?(Adva::Core)
27
- @engines = engines.uniq
28
- end
29
- end
30
- end
31
- end
@@ -1,3 +0,0 @@
1
- copy_file config[:source].join('lib/bundler/repository.rb'), "#{app_path}/lib/bundler/repository.rb"
2
- copy_file config[:source].join('Gemfile'), "#{app_path}/Gemfile"
3
- remove_file 'public/index.html'
@@ -1,3 +0,0 @@
1
- source :rubygems
2
-
3
- gemspec
@@ -1 +0,0 @@
1
- Dir[File.expand_path('../**/*_test.rb', __FILE__)].each { |file| require file }
@@ -1,2 +0,0 @@
1
- en:
2
- <%= name %>: ""
@@ -1,11 +0,0 @@
1
- require 'adva'
2
-
3
- module Adva
4
- class <%= class_name %> < ::Rails::Engine
5
- include Adva::Engine
6
-
7
- # initializer 'adva-<%= name %>.require_section_types' do
8
- # config.to_prepare { require_dependency 'page' }
9
- # end
10
- end
11
- end
@@ -1,21 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # $: << File.expand_path('../lib', __FILE__)
4
- # require 'adva/<%= name %>/version'
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "adva-<%= name %>"
8
- s.version = '0.0.1'
9
- s.authors = ["Ingo Weiss", "Sven Fuchs"]
10
- s.email = "nobody@adva-cms.org"
11
- s.homepage = "http://github.com/svenfuchs/adva-cms2"
12
- s.summary = "[summary]"
13
- s.description = "[description]"
14
-
15
- s.files = Dir['{app,config,lib,public}/**/*']
16
- s.platform = Gem::Platform::RUBY
17
- s.require_path = 'lib'
18
- s.rubyforge_project = '[none]'
19
-
20
- s.add_dependency 'adva-core'
21
- end
@@ -1,11 +0,0 @@
1
- class Adva<%= class_name %>CreateTables < ActiveRecord::Migration
2
- def self.up
3
- # create_table :<%= table_name %> do |t|
4
- # t.timestamps
5
- # end
6
- end
7
-
8
- def self.down
9
- # drop_table :<%= table_name %>
10
- end
11
- end
@@ -1,3 +0,0 @@
1
- # Adva::Registry.set :redirect, {
2
- # 'controller#action' => lambda { |controller| controller.show_url }
3
- # }
@@ -1,3 +0,0 @@
1
- # Rails.application.routes.draw do
2
- # resource :<%= name %>
3
- # end
@@ -1,3 +0,0 @@
1
- require File.expand_path('../../../adva-core/test/test_helper', __FILE__)
2
-
3
- require 'adva-<%= name %>'
@@ -1,73 +0,0 @@
1
- require 'i18n/exceptions'
2
-
3
- I18n.module_eval do
4
- self.exception_handler = :log_missing_translations
5
-
6
- class << self
7
- attr_writer :missing_translations
8
-
9
- def missing_translations
10
- @missing_translations ||= MemoryLogger.new
11
- end
12
-
13
- def log_missing_translations(exception, locale, key, options)
14
- missing_translations.log(exception.keys) if I18n::MissingTranslationData === exception
15
- default_exception_handler(exception, locale, key, options)
16
- end
17
- end
18
-
19
- class MemoryLogger < Hash
20
- def initialize
21
- at_exit { dump } if Rails.env.test?
22
- end
23
-
24
- def log(keys)
25
- log = self
26
- keys.each_with_index do |key, ix|
27
- key = key.to_s
28
- if ix < keys.size - 1
29
- log = log.key?(key) ? log[key] : (log[key] = {})
30
- else
31
- log[key] = key.to_s.titleize
32
- end
33
- end
34
- end
35
-
36
- def dump
37
- require 'yaml'
38
- puts YAML.dump(Hash[*to_a.flatten]) unless empty?
39
- end
40
- end
41
- end
42
-
43
- # TODO move to I18n
44
- I18n.module_eval do
45
- class << self
46
- def handle_exception(exception, locale, key, options)
47
- case handler = options[:exception_handler] || config.exception_handler
48
- when Symbol
49
- send(handler, exception, locale, key, options)
50
- else
51
- handler.call(exception, locale, key, options)
52
- end
53
- end
54
-
55
- def wrap_exception(exception, locale, key, options)
56
- case exception
57
- when MissingTranslationData
58
- %(<span class="translation_missing">#{exception.keys.join('.')}</span>)
59
- else
60
- raise exception
61
- end
62
- end
63
- end
64
- end
65
-
66
- I18n::MissingTranslationData.class_eval do
67
- def keys
68
- options.each { |k, v| options[k] = v.inspect if v.is_a?(Proc) }
69
- keys = I18n.normalize_keys(locale, key, options[:scope])
70
- keys << 'no key' if keys.size < 2
71
- keys
72
- end
73
- end
@@ -1,5 +0,0 @@
1
- module Adva
2
- module Rack
3
- autoload :Static, 'adva/rack/static'
4
- end
5
- end
@@ -1,50 +0,0 @@
1
- require 'active_support/core_ext/string/starts_ends_with'
2
-
3
- module Adva
4
- module Rack
5
- class Static
6
- FILE_METHODS = %w(GET HEAD)
7
- STATIC_PATHS = %w(/images/adva /javascripts/adva /stylesheets/adva)
8
-
9
- attr_reader :app, :directories
10
-
11
- def initialize(app)
12
- @app = app
13
- @directories = Adva.engines.map { |engine| ::Rack::File.new(engine.root.join('public')) }
14
- end
15
-
16
- def call(env)
17
- path = env['PATH_INFO'].chomp('/')
18
- method = env['REQUEST_METHOD']
19
-
20
- if FILE_METHODS.include?(method) && static?(path)
21
- if directory = directories.detect { |directory| exist?(directory, path) }
22
- return directory.call(env)
23
- else
24
- return not_found(path)
25
- end
26
- end
27
-
28
- app.call(env)
29
- end
30
-
31
- def static?(path)
32
- STATIC_PATHS.detect { |static_path| path.starts_with?(static_path) }
33
- end
34
-
35
- def exist?(directory, path)
36
- File.file?(File.join(directory.root, ::Rack::Utils.unescape(path)))
37
- end
38
-
39
- def not_found(path)
40
- body = "File not found: #{path}\n"
41
- headers = {
42
- 'Content-Type' => 'text/plain',
43
- 'Content-Length' => body.size.to_s,
44
- 'X-Cascade' => 'pass'
45
- }
46
- [404, headers, [body]]
47
- end
48
- end
49
- end
50
- end
@@ -1,62 +0,0 @@
1
- # Global registry for storing common configuration.
2
-
3
- module Adva
4
- class Registry < Hash
5
- class << self
6
- def instance
7
- @@instance ||= new
8
- end
9
-
10
- def get(*args)
11
- instance.get(*args)
12
- end
13
-
14
- def set(*args)
15
- instance.set(*args)
16
- end
17
-
18
- def clear
19
- instance.clear
20
- end
21
- end
22
-
23
- def initialize
24
- super &lambda { |hash, key| hash[key] = Registry.new }
25
- end
26
-
27
- def set(*args)
28
- value, last_key = args.pop, args.pop.to_sym
29
- target = args.inject(self) { |result, key| result[key.to_sym] }
30
-
31
- case value
32
- when Hash
33
- target[last_key].merge!(to_registry(value))
34
- when Array
35
- target[last_key] = Array(target[last_key]) unless target[last_key].is_a?(Array)
36
- target[last_key] += value
37
- else
38
- target.merge!(last_key => value)
39
- end
40
- end
41
-
42
- def get(*keys)
43
- keys.map { |key| key.to_sym }.inject(self) do |result, key|
44
- return nil unless result.has_key?(key)
45
- result[key]
46
- end
47
- end
48
-
49
- protected
50
-
51
- def merge!(other)
52
- other.each { |key, value| self[key] = value }
53
- end
54
-
55
- def to_registry(hash)
56
- hash.inject(Registry.new) do |registry, (key, value)|
57
- registry[key.to_sym] = value.is_a?(Hash) ? to_registry(value) : value
58
- registry
59
- end
60
- end
61
- end
62
- end
@@ -1,21 +0,0 @@
1
- require 'action_controller'
2
- require 'responders'
3
-
4
- module Adva
5
- class Responder < ActionController::Responder
6
- autoload :Redirect, 'adva/responder/redirect'
7
-
8
- module Base
9
- include Adva::Responder::Redirect
10
- include Responders::FlashResponder
11
- include Responders::HttpCacheResponder
12
- end
13
- include Base
14
-
15
- delegate :params, :controller_path, :resource, :resources, :to => :controller
16
-
17
- def action
18
- controller.params[:action]
19
- end
20
- end
21
- end
@@ -1,31 +0,0 @@
1
- # Common redirect responder. Redirects to a :return_to param if present or an
2
- # entry in the Registry for the current controller/action (e.g. pages#update).
3
-
4
- module Adva
5
- class Responder
6
- module Redirect
7
- def to_html
8
- return_to_redirect || registry_redirect || super
9
- end
10
-
11
- def return_to_redirect
12
- redirect_to(params[:return_to]) if !get? && params[:return_to] && !has_errors?
13
- end
14
-
15
- def registry_redirect
16
- if !has_errors? && target = current_redirect
17
- redirect_to(target)
18
- end
19
- end
20
-
21
- def current_redirect
22
- target = Registry.get(:redirect, controller_action_path)
23
- target.respond_to?(:call) ? target.call(controller) : target
24
- end
25
-
26
- def controller_action_path
27
- "#{controller_path}##{params[:action]}"
28
- end
29
- end
30
- end
31
- end
@@ -1,72 +0,0 @@
1
- require 'routing_filter'
2
-
3
- # If the path is, aside from a slash and an optional locale, the leftmost part
4
- # of the path, replace it by "sections/:id" segments.
5
-
6
- module RoutingFilter
7
- class SectionPath < Filter
8
- extend ActiveSupport::Memoizable
9
-
10
- cattr_accessor :default_port
11
- self.default_port = '80'
12
-
13
- cattr_accessor :exclude
14
- self.exclude = %r(^/admin)
15
-
16
- def around_recognize(path, env, &block)
17
- # p "#{self.class.name}: #{path}"
18
- if !excluded?(path)
19
- search, replace = recognition(host(env), path)
20
- path.sub!(%r(^/([\w]{2,4}/)?(#{search})(?=/|\.|\?|$)), "/#{$1}#{replace}#{$3}") if search
21
- end
22
- yield
23
- end
24
-
25
- def around_generate(params, &block)
26
- yield.tap do |path|
27
- # p "#{self.class.name}: #{path}"
28
- if !excluded?(path)
29
- search, replace = *generation(path)
30
- path.sub!(search) { "#{replace}#{$3}" } if search
31
- path.replace("/#{path}") unless path[0, 1] == '/'
32
- end
33
- end
34
- end
35
-
36
- protected
37
-
38
- def excluded?(path)
39
- path =~ exclude
40
- end
41
-
42
- def recognition(host, path)
43
- if site = Site.by_host(host) and path =~ recognition_pattern(site)
44
- section = site.sections.where(:path => $2).first
45
- [$2, "#{$1}#{section.type.pluralize.downcase}/#{section.id}"]
46
- end
47
- end
48
-
49
- def recognition_pattern(site)
50
- paths = site.sections.map(&:path).reject(&:blank?)
51
- paths = paths.sort { |a, b| b.size <=> a.size }.join('|')
52
- paths.empty? ? %r(^$) : %r(^/([\w]{2,4}/)?(#{paths})(?=/|\.|\?|$))
53
- end
54
-
55
- def generation(path)
56
- if path =~ generate_pattern
57
- section = Section.find($2.to_i)
58
- ["/#{$1}/#{$2}", "#{section.path}#{$3}"]
59
- end
60
- end
61
-
62
- def generate_pattern
63
- types = Section.types.map { |type| type.downcase.pluralize }.join('|')
64
- %r(/(sections|#{types})/([\d]+(/?))(\.?))
65
- end
66
-
67
- def host(env)
68
- host, port = env.values_at('SERVER_NAME', 'SERVER_PORT')
69
- port == default_port ? host : [host, port].compact.join(':')
70
- end
71
- end
72
- end
@@ -1,65 +0,0 @@
1
- require 'routing_filter'
2
-
3
- module RoutingFilter
4
- class SectionRoot < Filter
5
- extend ActiveSupport::Memoizable
6
-
7
- cattr_accessor :default_port
8
- self.default_port = '80'
9
-
10
- cattr_accessor :exclude
11
- self.exclude = %r(^/admin)
12
-
13
- cattr_accessor :anchors
14
- self.anchors = %w(article)
15
-
16
- def around_recognize(path, env, &block)
17
- # p "#{self.class.name}: #{path}"
18
- if !excluded?(path)
19
- search, replace = *recognition(host(env))
20
- path.sub!(search) { "#{$1}#{replace}#{$2}" } if search
21
- end
22
- yield
23
- end
24
-
25
- def around_generate(params, &block)
26
- yield.tap do |path|
27
- # p "#{self.class.name}: #{path}"
28
- remove_root_section!(path) unless excluded?(path)
29
- end
30
- end
31
-
32
- protected
33
-
34
- def excluded?(path)
35
- path =~ exclude
36
- end
37
-
38
- def recognition(host)
39
- if site = Site.by_host(host) and root = site.sections.root
40
- [%r(^(/[\w]{2})?(?:\/?)(#{anchors.join('|')}|\.|\?|/?\Z)), "/#{root.type.tableize}/#{root.id}"]
41
- end
42
- end
43
-
44
- def anchors
45
- @anchors ||= self.class.anchors.map { |anchor| "/#{anchor}" }
46
- end
47
-
48
- def remove_root_section!(path)
49
- path.sub!(%r(#{$2}/#{$3}/?), '') if path =~ generate_pattern && home?($3)
50
- end
51
-
52
- def generate_pattern
53
- @generate_pattern ||= %r(^(?:/[\w]{2})?(/(#{Section.types.map(&:tableize).join('|')})/([\d]+)(?:/|\.|\?|$)))
54
- end
55
-
56
- def home?(id)
57
- Section.find(id.to_i).try(:home?)
58
- end
59
-
60
- def host(env)
61
- host, port = env.values_at('SERVER_NAME', 'SERVER_PORT')
62
- port == default_port ? host : [host, port].compact.join(':')
63
- end
64
- end
65
- end