hobo 0.7.5 → 0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. data/{hobo_files/plugin/CHANGES.txt → CHANGES.txt} +391 -0
  2. data/Manifest +146 -0
  3. data/{hobo_files/plugin/README → README} +0 -0
  4. data/bin/hobo +13 -26
  5. data/dryml_generators/rapid/cards.dryml.erb +55 -0
  6. data/dryml_generators/rapid/forms.dryml.erb +43 -0
  7. data/dryml_generators/rapid/pages.dryml.erb +284 -0
  8. data/hobo.gemspec +168 -0
  9. data/init.rb +9 -0
  10. data/lib/action_view_extensions/helpers/tag_helper.rb +7 -0
  11. data/lib/active_record/association_collection.rb +54 -0
  12. data/{hobo_files/plugin/lib → lib}/active_record/association_proxy.rb +12 -4
  13. data/{hobo_files/plugin/lib → lib}/active_record/association_reflection.rb +7 -1
  14. data/{hobo_files/plugin/lib → lib}/extensions/test_case.rb +17 -17
  15. data/{hobo_files/plugin/lib → lib}/hobo.rb +193 -100
  16. data/{hobo_files/plugin/lib → lib}/hobo/authentication_support.rb +8 -8
  17. data/{hobo_files/plugin/lib → lib}/hobo/bundle.rb +90 -89
  18. data/{hobo_files/plugin/lib → lib}/hobo/composite_model.rb +21 -21
  19. data/{hobo_files/plugin/lib → lib}/hobo/controller.rb +38 -25
  20. data/{hobo_files/plugin/lib → lib}/hobo/dev_controller.rb +10 -6
  21. data/lib/hobo/dryml.rb +167 -0
  22. data/{hobo_files/plugin/lib → lib}/hobo/dryml/dryml_builder.rb +28 -25
  23. data/lib/hobo/dryml/dryml_generator.rb +210 -0
  24. data/{hobo_files/plugin/lib → lib}/hobo/dryml/dryml_support_controller.rb +1 -1
  25. data/lib/hobo/dryml/parser.rb +3 -0
  26. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/attribute.rb +6 -6
  27. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/base_parser.rb +16 -16
  28. data/lib/hobo/dryml/parser/document.rb +57 -0
  29. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/element.rb +7 -7
  30. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/elements.rb +9 -9
  31. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/source.rb +3 -3
  32. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/text.rb +3 -3
  33. data/{hobo_files/plugin/lib → lib}/hobo/dryml/parser/tree_parser.rb +3 -3
  34. data/{hobo_files/plugin/lib → lib}/hobo/dryml/part_context.rb +26 -26
  35. data/{hobo_files/plugin/lib → lib}/hobo/dryml/scoped_variables.rb +15 -15
  36. data/{hobo_files/plugin/lib → lib}/hobo/dryml/tag_parameters.rb +10 -10
  37. data/{hobo_files/plugin/lib → lib}/hobo/dryml/taglib.rb +43 -37
  38. data/{hobo_files/plugin/lib → lib}/hobo/dryml/template.rb +290 -208
  39. data/{hobo_files/plugin/lib → lib}/hobo/dryml/template_environment.rb +173 -115
  40. data/{hobo_files/plugin/lib → lib}/hobo/dryml/template_handler.rb +19 -24
  41. data/lib/hobo/find_for.rb +95 -0
  42. data/{hobo_files/plugin/lib → lib}/hobo/generator.rb +2 -1
  43. data/{hobo_files/plugin/lib → lib}/hobo/guest.rb +12 -4
  44. data/{hobo_files/plugin/lib → lib}/hobo/hobo_helper.rb +146 -117
  45. data/lib/hobo/include_in_save.rb +43 -0
  46. data/lib/hobo/lifecycles.rb +94 -0
  47. data/lib/hobo/lifecycles/actions.rb +73 -0
  48. data/lib/hobo/lifecycles/creator.rb +76 -0
  49. data/lib/hobo/lifecycles/lifecycle.rb +205 -0
  50. data/lib/hobo/lifecycles/state.rb +23 -0
  51. data/lib/hobo/lifecycles/transition.rb +66 -0
  52. data/{hobo_files/plugin/lib → lib}/hobo/model.rb +306 -217
  53. data/{hobo_files/plugin/lib → lib}/hobo/model_controller.rb +342 -213
  54. data/{hobo_files/plugin/lib → lib}/hobo/model_router.rb +151 -120
  55. data/{hobo_files/plugin/lib → lib}/hobo/model_support.rb +9 -9
  56. data/{hobo_files/plugin/lib → lib}/hobo/rapid_helper.rb +30 -23
  57. data/{hobo_files/plugin/lib → lib}/hobo/scopes.rb +22 -68
  58. data/{hobo_files/plugin/lib → lib}/hobo/scopes/apply_scopes.rb +5 -5
  59. data/lib/hobo/scopes/association_proxy_extensions.rb +47 -0
  60. data/{hobo_files/plugin/lib → lib}/hobo/scopes/automatic_scopes.rb +104 -79
  61. data/lib/hobo/scopes/named_scope_extensions.rb +27 -0
  62. data/{hobo_files/plugin/lib → lib}/hobo/static_tags +1 -11
  63. data/{hobo_files/plugin/lib → lib}/hobo/undefined.rb +1 -1
  64. data/{hobo_files/plugin/lib → lib}/hobo/undefined_access_error.rb +0 -0
  65. data/{hobo_files/plugin/lib → lib}/hobo/user.rb +27 -25
  66. data/{hobo_files/plugin/lib → lib}/hobo/user_controller.rb +80 -34
  67. data/{hobo_files/plugin/generators → rails_generators}/hobo/hobo_generator.rb +7 -7
  68. data/rails_generators/hobo/templates/application.css +0 -0
  69. data/{hobo_files/plugin/generators → rails_generators}/hobo/templates/application.dryml +0 -2
  70. data/{hobo_files/plugin/generators → rails_generators}/hobo/templates/dryml-support.js +0 -0
  71. data/{hobo_files/plugin/generators → rails_generators}/hobo/templates/guest.rb +0 -0
  72. data/rails_generators/hobo/templates/initializer.rb +9 -0
  73. data/{hobo_files/plugin/generators → rails_generators}/hobo_front_controller/USAGE +0 -0
  74. data/{hobo_files/plugin/generators → rails_generators}/hobo_front_controller/hobo_front_controller_generator.rb +1 -3
  75. data/{hobo_files/plugin/generators → rails_generators}/hobo_front_controller/templates/controller.rb +1 -1
  76. data/{hobo_files/plugin/generators → rails_generators}/hobo_front_controller/templates/functional_test.rb +0 -0
  77. data/{hobo_files/plugin/generators → rails_generators}/hobo_front_controller/templates/helper.rb +0 -0
  78. data/rails_generators/hobo_front_controller/templates/index.dryml +25 -0
  79. data/{hobo_files/plugin/generators → rails_generators}/hobo_model/USAGE +0 -0
  80. data/{hobo_files/plugin/generators → rails_generators}/hobo_model/hobo_model_generator.rb +0 -0
  81. data/{hobo_files/plugin/generators → rails_generators}/hobo_model/templates/fixtures.yml +0 -0
  82. data/{hobo_files/plugin/generators → rails_generators}/hobo_model/templates/model.rb +0 -0
  83. data/{hobo_files/plugin/generators → rails_generators}/hobo_model/templates/unit_test.rb +0 -0
  84. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_controller/USAGE +0 -0
  85. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_controller/hobo_model_controller_generator.rb +0 -7
  86. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_controller/templates/controller.rb +0 -0
  87. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_controller/templates/functional_test.rb +0 -0
  88. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_controller/templates/helper.rb +0 -0
  89. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_resource/hobo_model_resource_generator.rb +0 -0
  90. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_resource/templates/controller.rb +0 -0
  91. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_resource/templates/functional_test.rb +0 -0
  92. data/{hobo_files/plugin/generators → rails_generators}/hobo_model_resource/templates/helper.rb +0 -0
  93. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/hobo_rapid_generator.rb +21 -11
  94. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/IE7.js +1 -1
  95. data/rails_generators/hobo_rapid/templates/blank.gif +0 -0
  96. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/hobo-rapid.css +0 -0
  97. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/hobo-rapid.js +175 -104
  98. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/lowpro.js +0 -0
  99. data/rails_generators/hobo_rapid/templates/nicEditorIcons.gif +0 -0
  100. data/rails_generators/hobo_rapid/templates/nicedit.js +91 -0
  101. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/reset.css +0 -0
  102. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/public/images/fieldbg.gif +0 -0
  103. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/public/images/pencil.png +0 -0
  104. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/public/images/small_close.png +0 -0
  105. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/public/images/spinner.gif +0 -0
  106. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css +80 -71
  107. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/public/stylesheets/rapid-ui.css +6 -1
  108. data/{hobo_files/plugin/generators → rails_generators}/hobo_rapid/templates/themes/clean/views/clean.dryml +4 -4
  109. data/rails_generators/hobo_subsite/hobo_subsite_generator.rb +73 -0
  110. data/rails_generators/hobo_subsite/templates/application.dryml +1 -0
  111. data/rails_generators/hobo_subsite/templates/controller.rb +5 -0
  112. data/rails_generators/hobo_subsite/templates/site_taglib.dryml +13 -0
  113. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_controller/USAGE +0 -0
  114. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_controller/hobo_user_controller_generator.rb +0 -0
  115. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_controller/templates/controller.rb +0 -0
  116. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_controller/templates/functional_test.rb +0 -0
  117. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_controller/templates/helper.rb +0 -0
  118. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_model/USAGE +0 -0
  119. data/rails_generators/hobo_user_model/hobo_user_model_generator.rb +30 -0
  120. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_model/templates/fixtures.yml +0 -0
  121. data/rails_generators/hobo_user_model/templates/forgot_password.erb +10 -0
  122. data/rails_generators/hobo_user_model/templates/mailer.rb +14 -0
  123. data/rails_generators/hobo_user_model/templates/model.rb +55 -0
  124. data/{hobo_files/plugin/generators → rails_generators}/hobo_user_model/templates/unit_test.rb +0 -0
  125. data/script/destroy +14 -0
  126. data/script/generate +14 -0
  127. data/{hobo_files/plugin/taglibs → taglibs}/core.dryml +6 -7
  128. data/{hobo_files/plugin/taglibs → taglibs}/rapid.dryml +36 -67
  129. data/{hobo_files/plugin/taglibs → taglibs}/rapid_document_tags.dryml +7 -24
  130. data/{hobo_files/plugin/taglibs → taglibs}/rapid_editing.dryml +51 -50
  131. data/{hobo_files/plugin/taglibs → taglibs}/rapid_forms.dryml +62 -56
  132. data/taglibs/rapid_generics.dryml +33 -0
  133. data/taglibs/rapid_lifecycles.dryml +43 -0
  134. data/{hobo_files/plugin/taglibs → taglibs}/rapid_navigation.dryml +23 -23
  135. data/taglibs/rapid_pages.dryml +183 -0
  136. data/{hobo_files/plugin/taglibs → taglibs}/rapid_plus.dryml +30 -5
  137. data/{hobo_files/plugin/taglibs → taglibs}/rapid_support.dryml +3 -4
  138. data/taglibs/rapid_user_pages.dryml +179 -0
  139. data/{hobo_files/plugin/tasks → tasks}/environments.rake +0 -0
  140. data/{hobo_files/plugin/tasks → tasks}/fix_dryml.rake +0 -0
  141. data/{hobo_files/plugin/tasks → tasks}/generate_tag_reference.rb +21 -22
  142. data/tasks/hobo_tasks.rake +32 -0
  143. data/test/test_generator_helper.rb +29 -0
  144. data/test/test_helper.rb +1 -0
  145. data/test/test_hobo_model_controller_generator.rb +56 -0
  146. data/{hobo_files/plugin/uninstall.rb → uninstall.rb} +0 -0
  147. metadata +240 -225
  148. data/README.txt +0 -18
  149. data/hobo_files/plugin/LICENSE.txt +0 -22
  150. data/hobo_files/plugin/Rakefile +0 -96
  151. data/hobo_files/plugin/generators/hobo_front_controller/templates/index.dryml +0 -24
  152. data/hobo_files/plugin/generators/hobo_front_controller/templates/search.dryml +0 -19
  153. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/banner.gif +0 -0
  154. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-bodytop.gif +0 -0
  155. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-corner-01.gif +0 -0
  156. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-corner-02.gif +0 -0
  157. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-corner-03.gif +0 -0
  158. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-corner-04.gif +0 -0
  159. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-shadow-bottom.gif +0 -0
  160. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-shadow-left.gif +0 -0
  161. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-shadow-right.gif +0 -0
  162. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/bkg-shadow-top.gif +0 -0
  163. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/header-blue.gif +0 -0
  164. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/header-dblue.gif +0 -0
  165. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/header-green.gif +0 -0
  166. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/header-purple.gif +0 -0
  167. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/header-red.gif +0 -0
  168. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/logo.gif +0 -0
  169. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/plus.png +0 -0
  170. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/spinner.gif +0 -0
  171. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/txt-list-img-dblue.gif +0 -0
  172. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/txt-list-img-green.gif +0 -0
  173. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/txt-list-img-purple.gif +0 -0
  174. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/txt-list-img-red.gif +0 -0
  175. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-corner-01.gif +0 -0
  176. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-corner-02.gif +0 -0
  177. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-corner-03.gif +0 -0
  178. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-corner-04.gif +0 -0
  179. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-shadow-bottom.gif +0 -0
  180. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-shadow-left.gif +0 -0
  181. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-shadow-right.gif +0 -0
  182. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/images/window-shadow-top.gif +0 -0
  183. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public/stylesheets/application.css +0 -400
  184. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/views/application.dryml +0 -96
  185. data/hobo_files/plugin/generators/hobo_user_model/hobo_user_model_generator.rb +0 -25
  186. data/hobo_files/plugin/generators/hobo_user_model/templates/model.rb +0 -56
  187. data/hobo_files/plugin/init.rb +0 -101
  188. data/hobo_files/plugin/lib/action_view_extensions/base.rb +0 -15
  189. data/hobo_files/plugin/lib/active_record/has_many_association.rb +0 -55
  190. data/hobo_files/plugin/lib/active_record/has_many_through_association.rb +0 -20
  191. data/hobo_files/plugin/lib/hobo/dryml.rb +0 -165
  192. data/hobo_files/plugin/lib/hobo/dryml/parser/document.rb +0 -53
  193. data/hobo_files/plugin/lib/hobo/scopes/association_proxy_extensions.rb +0 -33
  194. data/hobo_files/plugin/lib/hobo/scopes/defined_scope_proxy_extender.rb +0 -90
  195. data/hobo_files/plugin/lib/hobo/scopes/scope_reflection.rb +0 -18
  196. data/hobo_files/plugin/lib/hobo/scopes/scoped_proxy.rb +0 -55
  197. data/hobo_files/plugin/taglib-docs/core.markdown +0 -165
  198. data/hobo_files/plugin/taglib-docs/rapid.markdown +0 -677
  199. data/hobo_files/plugin/taglib-docs/rapid_document_tags.markdown +0 -240
  200. data/hobo_files/plugin/taglib-docs/rapid_editing.markdown +0 -418
  201. data/hobo_files/plugin/taglib-docs/rapid_forms.markdown +0 -562
  202. data/hobo_files/plugin/taglib-docs/rapid_generics.markdown +0 -187
  203. data/hobo_files/plugin/taglib-docs/rapid_navigation.markdown +0 -214
  204. data/hobo_files/plugin/taglib-docs/rapid_pages.markdown +0 -530
  205. data/hobo_files/plugin/taglib-docs/rapid_plus.markdown +0 -65
  206. data/hobo_files/plugin/taglib-docs/rapid_support.markdown +0 -50
  207. data/hobo_files/plugin/taglib-docs/rapid_user_pages.markdown +0 -129
  208. data/hobo_files/plugin/taglibs/rapid_generics.dryml +0 -117
  209. data/hobo_files/plugin/taglibs/rapid_pages.dryml +0 -359
  210. data/hobo_files/plugin/taglibs/rapid_user_pages.dryml +0 -104
  211. data/hobo_files/plugin/tasks/dump_fixtures.rake +0 -70
  212. data/hobo_files/plugin/tasks/hobo_tasks.rake +0 -17
data/README.txt DELETED
@@ -1,18 +0,0 @@
1
- Hobo - The web app builder for Rails
2
-
3
- See http://hobocentral.net for more info
4
-
5
-
6
- This gem installs a single command: hobo
7
-
8
-
9
- --- hobo command ---
10
-
11
- Usage: hobo <app-path> [ --user-model <model-name-or-false> ]
12
-
13
- Creates a Rails app at <app-path> pre-configured for Hobo. That is,
14
- the Hobo plugin is installed, various Hobo generators are run, and
15
- routing is configured.
16
-
17
- Also creates a user model and controller, unless "--user-model false"
18
- is given. By default the user model is called "user".
@@ -1,22 +0,0 @@
1
- Copyright (c) 2006 Tom Locke
2
-
3
- Permission is hereby granted, free of charge, to any person
4
- obtaining a copy of this software and associated documentation
5
- files (the "Software"), to deal in the Software without
6
- restriction, including without limitation the rights to use,
7
- copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- copies of the Software, and to permit persons to whom the
9
- Software is furnished to do so, subject to the following
10
- conditions:
11
-
12
- The above copyright notice and this permission notice shall be
13
- included in all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
- HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
- OTHER DEALINGS IN THE SOFTWARE.
@@ -1,96 +0,0 @@
1
- require 'rake'
2
- require 'rake/rdoctask'
3
- require 'rake/testtask'
4
-
5
- load "tasks/generate_tag_reference.rb"
6
-
7
- desc 'Default: run specs.'
8
- task :default => :spec
9
-
10
- desc 'Generate documentation for the Hobo plugin.'
11
- Rake::RDocTask.new(:rdoc) do |rdoc|
12
- rdoc.rdoc_dir = 'rdoc'
13
- rdoc.title = 'Hobo'
14
- rdoc.options << '--line-numbers' << '--inline-source'
15
- rdoc.rdoc_files.include('README')
16
- rdoc.rdoc_files.include('lib/**/*.rb')
17
- end
18
-
19
-
20
-
21
- # --- RSpec --- #
22
-
23
- # In rails 1.2, plugins aren't available in the path until they're loaded.
24
- # Check to see if the rspec plugin is installed first and require
25
- # it if it is. If not, use the gem version.
26
- PLUGIN_DIR = File.dirname(__FILE__)
27
-
28
- rspec_base = File.expand_path(PLUGIN_DIR + '/spec/rails_root/vendor/plugins/rspec/lib')
29
- $LOAD_PATH.unshift(rspec_base) if File.exist?(rspec_base)
30
- require '../hobo_spec/rails_root/vendor/plugins/rspec/lib/spec/rake/spectask'
31
- require '../hobo_spec/rails_root/vendor/plugins/rspec/lib/spec/translator'
32
-
33
- spec_prereq = :noop # File.exist?(File.join(PLUGIN_DIR, 'config', 'database.yml')) ? "db:test:prepare" : :noop
34
- task :noop do
35
- end
36
-
37
- task :stats => "spec:statsetup"
38
-
39
- SPEC_HOME = "#{PLUGIN_DIR}/../hobo_spec"
40
-
41
- desc "Run all specs in spec directory (excluding plugin specs)"
42
- Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t|
43
- t.spec_opts = ['--options', "\"#{SPEC_HOME}/spec.opts\""]
44
- t.spec_files = FileList["#{SPEC_HOME}/unit/**/*_spec.rb"]
45
- end
46
-
47
- namespace :spec do
48
- desc "Run all specs in spec directory with RCov (excluding plugin specs)"
49
- Spec::Rake::SpecTask.new(:rcov) do |t|
50
- t.spec_opts = ['--options', "\"#{SPEC_HOME}/spec.opts\""]
51
- t.spec_files = FileList["#{SPEC_HOME}/unit/**/*_spec.rb"]
52
- t.rcov = true
53
- t.rcov_opts = ['--exclude', 'spec', '--rails']
54
- end
55
-
56
- desc "Print Specdoc for all specs (excluding plugin specs)"
57
- Spec::Rake::SpecTask.new(:doc) do |t|
58
- t.spec_opts = ["--format", "specdoc", "--dry-run"]
59
- t.spec_files = FileList["#{SPEC_HOME}/unit/**/*_spec.rb"]
60
- end
61
-
62
- [:models, :controllers, :views, :helpers].each do |sub|
63
- desc "Run the specs under spec/#{sub}"
64
- Spec::Rake::SpecTask.new(sub => spec_prereq) do |t|
65
- t.spec_opts = ['--options', "\"#{SPEC_HOME}/spec.opts\""]
66
- t.spec_files = FileList["#{SPEC_HOME}/#{sub}/**/*_spec.rb"]
67
- end
68
- end
69
-
70
- # Setup specs for stats
71
- task :statsetup do
72
- require 'code_statistics'
73
- ::STATS_DIRECTORIES << %w(Model\ specs spec/models)
74
- ::STATS_DIRECTORIES << %w(View\ specs spec/views)
75
- ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers)
76
- ::STATS_DIRECTORIES << %w(Helper\ specs spec/views)
77
- ::CodeStatistics::TEST_TYPES << "Model specs"
78
- ::CodeStatistics::TEST_TYPES << "View specs"
79
- ::CodeStatistics::TEST_TYPES << "Controller specs"
80
- ::CodeStatistics::TEST_TYPES << "Helper specs"
81
- ::STATS_DIRECTORIES.delete_if {|a| a[0] =~ /test/}
82
- end
83
-
84
- namespace :db do
85
- namespace :fixtures do
86
- desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y"
87
- task :load => :environment do
88
- require 'active_record/fixtures'
89
- ActiveRecord::Base.establish_connection(RAILS_ENV.to_sym)
90
- (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/) : Dir.glob(File.join(SPEC_HOME, 'fixtures', '*.{yml,csv}'))).each do |fixture_file|
91
- Fixtures.create_fixtures("#{SPEC_HOME}/fixtures", File.basename(fixture_file, '.*'))
92
- end
93
- end
94
- end
95
- end
96
- end
@@ -1,24 +0,0 @@
1
- <page>
2
-
3
- <body: class="front-page"/>
4
-
5
- <content-header:>
6
- <h1 class="front-page-title">Welcome to <app-name/></h1>
7
- <section class="welcome-message">
8
- <h3>Congratulations! Your Hobo Rails App is up and running</h3>
9
- <ul>
10
- <li>To customise this page: edit app/views/<%= file_name %>/index.dryml</li>
11
- </ul>
12
- </section>
13
- </content-header>
14
-
15
- <content-body:>
16
- <ul with="&front_models">
17
- <li:>
18
- <collection-preview/>
19
- <p if="&can_create? && linkable?(:new)">Create a <a to="&this" action="new"/>.</p>
20
- </li:>
21
- </ul>
22
- </content-body>
23
-
24
- </page>
@@ -1,19 +0,0 @@
1
- <page title="Search">
2
- <body: onload="Hobo.applyEvents(); Hobo.doSearch('search-field')"/>
3
-
4
- <content-body:>
5
- <panel class="red" style="margin-top: 40px">
6
- <h2>Search</h2>
7
- <div class="search">
8
- <input type="text" id="search-field" class="search-bhv" style="width: 90%"/>
9
- <spinner id="search_spinner"/>
10
- </div>
11
- </panel>
12
-
13
- <panel class="hidden" id="search-results-panel">
14
- <h2>Results</h2>
15
- <section id="search-results">&nbsp;</section>
16
- </panel>
17
- </content-body>
18
-
19
- </page>
@@ -1,400 +0,0 @@
1
- form.button-to { margin: 0; padding: 0; }
2
-
3
- .card { padding: 5px; margin: 5px; border: 1px dashed #ddd; background: #fbfbfb; }
4
-
5
- /* Todo: Big cleanup of this stylesheet */
6
-
7
- /* Global Styles */
8
-
9
- body, td {
10
- font-family: Arial, Helvetica, sans-serif;
11
- font-size: 12px;
12
- color: #677077;
13
- }
14
-
15
- a img { border: none; }
16
-
17
- .clearer { clear:both; font-size: 1px; }
18
-
19
- html, body { background-color: #d2d2d2; }
20
- body { margin: 10px 0 25px 0; }
21
-
22
- a { color: #677077; text-decoration: underline; padding:1px; cursor:pointer; }
23
- a:visited { color: #677077; }
24
- a:hover, a:active { color: #FFFFFF; text-decoration: none; background: #4b5257; }
25
- a:hover.no-hover { background: transparent; }
26
-
27
- .content-header h1 {
28
- margin: 0; margin-bottom: 15px;
29
- background:url(../images/banner.gif) no-repeat top left;
30
- text-align: left;
31
- height: 32px;
32
- font-size: 28pt;
33
- padding: 65px 0 15px 20px;
34
- color: white;
35
- font-family: "Trebuchet MS", Verdana, "Sans Serif";
36
- }
37
-
38
- /* Main Page Body Window */
39
-
40
- .page-header .logo { position: absolute; top: 15px; left: 20px; }
41
- .page-header .logo a { background: transparent; }
42
-
43
- .page-header {
44
- position: relative;
45
- height: 80px;
46
- }
47
-
48
- .nav {
49
- padding: 20px 15px 0 0;
50
- }
51
-
52
- .nav ul { margin: 0; padding: 0; float: right; }
53
- ul.account-nav { font-size: 80%; clear:right; padding-top: 8px; }
54
-
55
- .nav li { list-style: none; float: left; margin: 0; padding: 0; padding-left: 10px; font-size: 110%; }
56
- .nav a { text-decoration: none;}
57
-
58
- .main-nav li { text-transform: uppercase; }
59
-
60
- .flash { margin: 10px 30px; background: white; border: 2px solid #aaf; padding: 10px; text-align: center; }
61
-
62
- .page-wrapper {
63
- width:800px;
64
- background-color: white;
65
- margin-left:auto;
66
- margin-right:auto;
67
- }
68
-
69
- h2 { margin: 0 0 20px 20px; font-size: 110%; } /* Main page heading (i.e. not in a panel) */
70
- h1 { margin: 20px 0 20px 20px; font-size: 150%; } /* Main page heading (i.e. not in a panel) */
71
-
72
- p { margin-left: 10px; }
73
-
74
- #page-top { background:url(../images/bkg-shadow-top.gif) repeat-x top; }
75
- #page-right { background:url(../images/bkg-shadow-right.gif) repeat-y right; }
76
- #page-bottom { background:url(../images/bkg-shadow-bottom.gif) repeat-x bottom; }
77
- #page-left { background:url(../images/bkg-shadow-left.gif) repeat-y left; }
78
- #page-corner04 { background:url(../images/bkg-corner-04.gif) no-repeat bottom right; }
79
- #page-corner03 { background:url(../images/bkg-corner-03.gif) no-repeat bottom left; }
80
- #page-corner02 { background:url(../images/bkg-corner-02.gif) no-repeat top right; }
81
- #page-corner01 { background:url(../images/bkg-corner-01.gif) no-repeat top left; padding: 5px 0 10px 0; }
82
- #page-inner-top { background:url(../images/bkg-bodytop.gif) no-repeat top center;
83
- margin: 22px 14px 10px; padding: 1px 10px; }
84
-
85
-
86
- /* Panel Styles */
87
-
88
- .panel-top { background:url(../images/window-shadow-top.gif) repeat-x top; height:100%; }
89
- .panel-right { background:url(../images/window-shadow-right.gif) repeat-y right; height:100%; }
90
- .panel-bottom { background:url(../images/window-shadow-bottom.gif) repeat-x bottom; height:100%; }
91
- .panel-left { background:url(../images/window-shadow-left.gif) repeat-y left; height:100%; }
92
- .panel-corner04 { background:url(../images/window-corner-04.gif) no-repeat bottom right; height:100%; }
93
- .panel-corner03 { background:url(../images/window-corner-03.gif) no-repeat bottom left; height:100%; }
94
- .panel-corner02 { background:url(../images/window-corner-02.gif) no-repeat top right; height:100%; }
95
- .panel-corner01 { background:url(../images/window-corner-01.gif) no-repeat top left; padding:12px; height:100%; }
96
-
97
- .panel { margin: 4px 0; }
98
-
99
- .panel h2 {
100
- margin: 0px; padding: 8px 0 4px 4px; height: 16px;
101
- font-size: 120%; }
102
- .panel h3 {
103
- font-size: 110%; line-height:14px; font-weight:bold;
104
- margin: 0; padding: 6px 0;}
105
- .panel h4 { line-height:13px; font-weight:bold; color:#666; margin: 8px 0 2px 0; font-size: 100%; }
106
-
107
- .panel.green { background-color:#edf4e3; } /* light grey + green */
108
- .panel.green h2 { background:url(../images/header-green.gif) repeat-x top; background-color:#87b841; color:#ffffff; }
109
- .panel.green h3 { color:#87b841; }
110
-
111
- .panel.purple { background-color:#f1f0f1; } /* very light grey */
112
- .panel.purple h2 { background:url(../images/header-purple.gif) repeat-x top; background-color:#883b67; color:#ffffff; }
113
- .panel.purple h3 { color:#883b67; }
114
-
115
- .panel.red { background-color:#fdf3f3; } /* very light red */
116
- .panel.red h2 { background:url(../images/header-red.gif) repeat-x top; background-color:#d93a40; color:#ffffff; }
117
- .panel.red h3 { color:#d93a40; }
118
-
119
- .panel.blue { background-color:#e1f5fd; } /* light blue */
120
- .panel.blue h2 { background:url(../images/header-blue.gif) repeat-x top; background-color:#5ac6ef; color:#ffffff; }
121
- .panel.blue h3 { color:#5ac6ef; }
122
-
123
- .panel.dblue { background-color:#f1f4fa; } /* very light blue */
124
- .panel.dblue h2 { background:url(../images/header-dblue.gif) repeat-x top; background-color:#3873e2; color:#ffffff; }
125
- .panel.dblue h3 { color:#3873e2; }
126
-
127
- .panel.blank h2 { background-color:#f2f2f2; padding:40px 30px 25px 30px;}
128
-
129
- .panel.banner h2 { padding:40px 30px 25px 30px; font-size:36px; color:white; } /* Project Banners */
130
-
131
- /* panel with no colour-class defaults to red */
132
- .panel { background-color:#fdf3f3; } /* very light red */
133
- .panel h2 { background:url(../images/header-red.gif) repeat-x top; background-color:#d93a40; color:#ffffff; }
134
- .panel h3 { color:#d93a40; }
135
-
136
-
137
- .panel p { padding: 4px; margin: 0; }
138
-
139
- .panel li { margin: 6pt 0; }
140
-
141
- .section { border-top: 6px solid white; }
142
-
143
- ul.purple li { background-image: url(../images/txt-list-img-purple.gif); }
144
- ul.green li { background-image: url(../images/txt-list-img-green.gif); }
145
- ul.red li { background-image: url(../images/txt-list-img-red.gif); }
146
- ul.dblue li { background-image: url(../images/txt-list-img-dblue.gif); }
147
-
148
- /* main section and sidebar */
149
-
150
- .maincol { float: left; width: 488px; }
151
- .maincol .panel { width: 100%; }
152
- .sidecol { float: right; width: 260px; margin-right: 0px;}
153
- .sidecol .panel { width: 100%; }
154
-
155
- /* Nav Styles */
156
-
157
- .nav-menu a { margin: 4px 0 0 8px; }
158
- .more { text-align:right; margin-top:6px; margin-right: -6px;} /* more button */
159
- img.nav-main { padding: 1px 0 2px 0; border-top: 1px solid transparent; border-bottom: 1px solid transparent; }
160
- img.nav-main.current { border-top: 1px solid grey; border-bottom: 1px solid grey; }
161
-
162
- /* Footer */
163
-
164
- #footer {
165
- width:100%;
166
- font-size: 10px;
167
- text-align:center;
168
- margin:21px;
169
- background-color:#D2D2D2;
170
- }
171
-
172
-
173
- #ajax-progress {
174
- color: grey;
175
- float: right;
176
- margin: 20px;
177
- position: fixed;
178
- background: white;
179
- font-family: Tahoma "sans serif";
180
- display: none;
181
- }
182
-
183
- #ajax-progress div {
184
- border: 1px dashed grey;
185
- margin: 10px;
186
- padding: 3px;
187
- padding-top: -15px;
188
- }
189
-
190
- #ajax-progress img {
191
- padding-left: 6px;
192
- vertical-align: middle;
193
- }
194
-
195
-
196
- /* Scriptaculous Autocompleter ---*/
197
-
198
- div.completions-popup {
199
- position:absolute;
200
- width:250px;
201
- background-color:white;
202
- border:1px solid #888;
203
- margin:0px;
204
- padding:0px;
205
- }
206
- div.completions-popup ul {
207
- list-style-type:none;
208
- margin:0px;
209
- padding:0px;
210
- }
211
- div.completions-popup ul li.selected { background-color: #ffb;}
212
- div.completions-popup ul li {
213
- list-style-type:none;
214
- display:block;
215
- margin:0;
216
- padding:2px;
217
- cursor:pointer;
218
- }
219
-
220
- th { text-align: left; padding: 5px; }
221
-
222
- .field-list { width:95%; }
223
- .field-list td { padding: 5px; vertical-align: middle; }
224
- .field-list th {
225
- text-align: left; width: 1px; white-space: nowrap; vertical-align: top;
226
- padding-top: 10px; padding-bottom: 10px;
227
- }
228
- .field-list input[type=text] { width: 100%; }
229
- .field-list input, .field-list textarea { margin: -2px 0 0 0; }
230
- .field-list textarea { width: 100%; margin: 0; }
231
-
232
- td span.in-place-textfield-bhv, td span.in-place-textarea-bhv, td span.in-place-html-textarea-bhv {
233
- display: block; border: 1px solid #ddd;
234
- padding: 4px; background: #fafafa;
235
- }
236
-
237
- .login-table td.field-label { vertical-align: middle; }
238
-
239
- input[type=text].wide { width: 100%; }
240
- textarea { height: 200px; }
241
- textarea.wide { width: 100%; }
242
- textarea.tall { height: 350px; }
243
-
244
- .inplaceeditor-form input { margin-top: 1px; padding: 5px; font-size: 13px; }
245
-
246
- /* MESSY LOAD OF JUNK BELOW HERE---------------------------------------- */
247
-
248
- input.button {
249
- border: 1px solid black;
250
- border-top-color: #fff;
251
- border-left-color: #fff;
252
- border-bottom-color: #ccc;
253
- border-right-color: #ccc;
254
- background-color: #e5e5e5;
255
- padding: 2px;
256
- }
257
-
258
- input.button.text {
259
- background: transparent; border: none;
260
- padding: 0 0 0 0; margin: -2px 0 0 0;
261
- color: #677077; text-decoration: underline; cursor:pointer;
262
- }
263
-
264
- input.image-button-input {
265
- border: none;
266
- background: transparent;
267
- padding: 0; margin: 0;
268
- }
269
-
270
- input.create-button {
271
- padding-left: 20px;
272
- background:url(../../../images/plus.png) no-repeat center left;
273
- background-color: #e5e5e5;
274
- }
275
-
276
-
277
- .search-result { border: 1px dashed grey; margin: 15px 10px; padding: 5px; background: white; }
278
-
279
- .inplaceeditor-form { display: inline; margin: 0; padding: 0; }
280
-
281
- td { vertical-align: top; padding: 5px; }
282
-
283
- .edit-box { border-top: 1px dashed black; border-bottom: 1px dashed black; margin: 10px; }
284
-
285
-
286
- /* CALENDAR */
287
-
288
- table.calendar { width:100%; margin-top: 20px; border-collapse: collapse;}
289
- table.calendar th { text-align: right; font-size:10pt;}
290
- table.calendar td { padding: 4px; height: 35px; width: 50px; text-align:right; vertical-align: top;
291
- font-weight: bold; font-size:8pt;}
292
- table.calendar td.odd { background: #eaeaea; }
293
- table.calendar td.even { background: #e0e0e0; }
294
-
295
- table.calendar td.other-month { color: white; }
296
-
297
- /* ADD/REMOVE BOX */
298
-
299
- table.add-remove-box { width: 100%; border: 1px solid black; margin-top: 10px;}
300
- table.add-remove-box.spinner { background-image: url(../images/spinner.gif);
301
- background-repeat: no-repeat;
302
- background-position: top right; }
303
- table.add-remove-box table { width: 100%;}
304
- table.add-remove-box td { vertical-align: top; width: 50%;}
305
-
306
- /* NAME-BOXES */
307
-
308
- a.name-box, a.name-box-left, a.name-box-right { text-decoration: none; }
309
-
310
- a.name-box { color: white; margin-left: -2px; }
311
-
312
- a.name-box, a:hover.name-box { background: url(../images/name-box-main.gif) repeat-x bottom; }
313
-
314
- a.name-box-left, a:hover.name-box-left { text-decoration: none; background: url(../images/name-box-remove.gif) no-repeat bottom; }
315
- a.name-box-right, a:hover.name-box-right { background: url(../images/name-box-right.gif) no-repeat bottom; margin-left: -2px;}
316
-
317
- a:link.name-box-left { text-decoration: none; }
318
- a:visited.name-box-left { text-decoration: none; }
319
- a:active.name-box-left { text-decoration: none; }
320
-
321
- /* BELOW ARE STYLES FROM THE OLD STYLESHEET BEING MERGED INTO STYLES ABOVE */
322
-
323
- input, textarea {
324
- border: 1px dashed #666;
325
- background: white;
326
- padding: 4px;
327
- margin: 3px;
328
- }
329
-
330
- input.hoverable, textarea.hoverable { border: 1px solid #fbfbfb; background: #fbfbfb; }
331
-
332
- input.hoverable.hover, textarea.hoverable.hover { border: 1px dashed grey; background: white; }
333
-
334
- textarea[disabled] { color:black; background: inherit; border: 1px solid transparent; }
335
- input[disabled] { color:black; background: inherit; border: 1px solid transparent; }
336
-
337
- table.form th { vertical-align: top; padding-top: 7px;}
338
-
339
- .box {
340
- padding: 6px;
341
- margin: 20px 10px;
342
- background: white;
343
- }
344
-
345
- .box h3 {
346
- margin-top: 0;
347
- }
348
-
349
- .indent {
350
- margin-left: 12pt;
351
- }
352
-
353
- .hidden {
354
- display: None;
355
- }
356
-
357
- .box p {
358
- margin-top: 6pt;
359
- }
360
-
361
- p.no-results {
362
- text-align: center;
363
- }
364
-
365
- .person {
366
- margin: 6pt 0;
367
- }
368
-
369
- .person .name {
370
- font-weight: bold;
371
- }
372
-
373
- .spinner, .hoverable.spinner { background: url(../images/spinner.gif) no-repeat center center; }
374
-
375
- .box-menu-item {
376
- float: left;
377
- margin: 5px;
378
- padding: 0;
379
- }
380
-
381
- .hilight {
382
- margin: 3px;
383
- background: lightblue;
384
- padding: 6px;
385
- }
386
-
387
- h4 {
388
- margin: 3pt;
389
- }
390
-
391
-
392
- textarea.big {
393
- width: 618px;
394
- }
395
-
396
- form { margin: 0; padding: 0; }
397
-
398
- .bubbles { line-height: 18px; }
399
-
400
- img.spinner { margin-left: 6px; }