hobo 0.6.1 → 0.6.2

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 (47) hide show
  1. data/bin/hobo +3 -2
  2. data/hobo_files/plugin/CHANGES.txt +299 -2
  3. data/hobo_files/plugin/Rakefile +12 -10
  4. data/hobo_files/plugin/generators/hobo/templates/guest.rb +1 -13
  5. data/hobo_files/plugin/generators/hobo_migration/hobo_migration_generator.rb +11 -7
  6. data/hobo_files/plugin/generators/hobo_rapid/hobo_rapid_generator.rb +1 -0
  7. data/hobo_files/plugin/generators/hobo_rapid/templates/hobo_rapid.js +1 -1
  8. data/hobo_files/plugin/generators/hobo_rapid/templates/lowpro.js +405 -0
  9. data/hobo_files/plugin/generators/hobo_rapid/templates/themes/default/views/application.dryml +1 -1
  10. data/hobo_files/plugin/generators/hobo_user_model/templates/model.rb +1 -9
  11. data/hobo_files/plugin/init.rb +5 -0
  12. data/hobo_files/plugin/lib/active_record/has_many_association.rb +1 -1
  13. data/hobo_files/plugin/lib/extensions.rb +26 -5
  14. data/hobo_files/plugin/lib/extensions/test_case.rb +1 -1
  15. data/hobo_files/plugin/lib/hobo.rb +37 -11
  16. data/hobo_files/plugin/lib/hobo/authenticated_user.rb +7 -2
  17. data/hobo_files/plugin/lib/hobo/authentication_support.rb +7 -6
  18. data/hobo_files/plugin/lib/hobo/composite_model.rb +5 -0
  19. data/hobo_files/plugin/lib/hobo/controller.rb +4 -4
  20. data/hobo_files/plugin/lib/hobo/dryml.rb +5 -5
  21. data/hobo_files/plugin/lib/hobo/dryml/part_context.rb +3 -6
  22. data/hobo_files/plugin/lib/hobo/dryml/template.rb +16 -15
  23. data/hobo_files/plugin/lib/hobo/dryml/template_environment.rb +24 -20
  24. data/hobo_files/plugin/lib/hobo/email_address.rb +4 -0
  25. data/hobo_files/plugin/lib/hobo/field_spec.rb +2 -1
  26. data/hobo_files/plugin/lib/hobo/guest.rb +21 -0
  27. data/hobo_files/plugin/lib/hobo/hobo_helper.rb +42 -2
  28. data/hobo_files/plugin/lib/hobo/http_parameters.rb +225 -0
  29. data/hobo_files/plugin/lib/hobo/model.rb +55 -37
  30. data/hobo_files/plugin/lib/hobo/model_controller.rb +151 -151
  31. data/hobo_files/plugin/lib/hobo/model_queries.rb +30 -5
  32. data/hobo_files/plugin/lib/hobo/user_controller.rb +27 -16
  33. data/hobo_files/plugin/lib/hobo/where_fragment.rb +6 -1
  34. data/hobo_files/plugin/tags/rapid.dryml +88 -58
  35. data/hobo_files/plugin/tags/rapid_document_tags.dryml +5 -5
  36. data/hobo_files/plugin/tags/rapid_editing.dryml +3 -3
  37. data/hobo_files/plugin/tags/rapid_forms.dryml +35 -26
  38. data/hobo_files/plugin/tags/rapid_navigation.dryml +13 -12
  39. data/hobo_files/plugin/tags/rapid_pages.dryml +35 -31
  40. data/hobo_files/plugin/tags/rapid_plus.dryml +41 -0
  41. data/hobo_files/plugin/tags/rapid_support.dryml +18 -9
  42. data/hobo_files/plugin/tasks/dump_fixtures.rake +61 -0
  43. metadata +7 -11
  44. data/hobo_files/plugin/spec/fixtures/users.yml +0 -9
  45. data/hobo_files/plugin/spec/spec.opts +0 -6
  46. data/hobo_files/plugin/spec/spec_helper.rb +0 -28
  47. data/hobo_files/plugin/spec/unit/hobo/dryml/template_spec.rb +0 -650
@@ -30,8 +30,9 @@
30
30
  <li class='nav_item'><a href="&logout_url">Log out</a></li>
31
31
  </if>
32
32
  <else>
33
- <li class='nav_item'><a href="&login_url">Log in</a></li>
34
- <li if="&defined_route? :signup" class='nav_item'><a href="&signup_url">Sign up</a></li>
33
+ <set user="&Hobo::UserController.user_models.first"/>
34
+ <li class='nav_item'><a href="&login_url(user)">Log in</a></li>
35
+ <li if="&signup_url(user)" class='nav_item'><a href="&signup_url(user)">Sign up</a></li>
35
36
  </else>
36
37
  </ul>
37
38
  </def>
@@ -55,33 +56,33 @@
55
56
  </def>
56
57
 
57
58
 
58
- <def tag="previous_page_link" attrs="params">
59
+ <def tag="previous_page_link">
59
60
  <a if="&@pages && @pages.current.previous"
60
- href="&url_for({ :page => @pages.current.previous }.merge(params || {}))">
61
+ href="&url_for(params.merge(:page => @pages.current.previous))">
61
62
  <tagbody>&laquo; Previous page</tagbody>
62
63
  </a>
63
64
  </def>
64
65
 
65
66
 
66
- <def tag="next_page_link" attrs="params">
67
+ <def tag="next_page_link">
67
68
  <a if="&@pages && @pages.current.next"
68
- href="&url_for({ :page => @pages.current.previous }.merge(params || {}))">
69
+ href="&url_for(params.merge(:page => @pages.current.next))">
69
70
  <tagbody>Next page &raqou;</tagbody>
70
71
  </a>
71
72
  </def>
72
73
 
73
74
 
74
- <def tag="first_page_link" attrs="params">
75
- <a if="&@pages && @pages.first_page"
76
- href="&url_for({ :page => @pages.current.previous }.merge(params || {}))">
75
+ <def tag="first_page_link">
76
+ <a if="&@pages && @pages.first_page && @pages.current != @pages.first_page"
77
+ href="&url_for(params.merge(:page => @pages.first_page))">
77
78
  <tagbody>&laquo; First page</tagbody>
78
79
  </a>
79
80
  </def>
80
81
 
81
82
 
82
- <def tag="last_page_link" attrs="params">
83
- <a if="&@pages && @pages.last_page"
84
- href="&url_for({ :page => @pages.current.previous }.merge(params || {}))">
83
+ <def tag="last_page_link">
84
+ <a if="&@pages && @pages.last_page && @pages.current != @pages.last_page"
85
+ href="&url_for(params.merge(:page => @pages.last_page))">
85
86
  <tagbody>Last page &raquo;</tagbody>
86
87
  </a>
87
88
  </def>
@@ -1,4 +1,5 @@
1
1
  <def tag="BasePage" attrs="title, doctype">
2
+ <% title ||= request.request_uri %>
2
3
  <doctype version="&doctype || 'HTML 4.01 STRICT'"/>
3
4
  <html>
4
5
  <head param>
@@ -32,10 +33,9 @@
32
33
  <div class="page_wrapper" param="wrapper">
33
34
  <ajax_progress/>
34
35
  <header id="page_header" param>
35
- <div class="logo" param="logo"><image src="logo.png"/></div>
36
36
  <nav param>
37
37
  <magic_nav class="main_nav" param="main_mav"/>
38
- <account_nav if="&respond_to? :login_url" param/>
38
+ <account_nav if="&Hobo::UserController.user_models.first" param/>
39
39
  </nav>
40
40
  </header>
41
41
  <flash_message param/>
@@ -65,8 +65,8 @@
65
65
  <nav param="top_page_nav"><page_nav/></nav>
66
66
 
67
67
  <panel param="main" class="main">
68
- <header param="main_header">
69
- <h2><count label="&model_name"/></h2>
68
+ <header param="main_header" with="&@model">
69
+ <h2><count part="item_count"/></h2>
70
70
  </header>
71
71
  <section param="main_section">
72
72
  <Table param>
@@ -85,9 +85,9 @@
85
85
 
86
86
  <def tag="NewPage">
87
87
  <PageForNew title="New #{type_name}" merge>
88
- <body class="rapid_generic_page"/>
88
+ <body class="rapid_generic_page new_page new_#{type_name.underscore}"/>
89
89
  <main>
90
- <header>
90
+ <header param>
91
91
  <heading>New <type_name title/></heading>
92
92
  </header>
93
93
 
@@ -97,7 +97,7 @@
97
97
  <error_messages param="error_messages"/>
98
98
 
99
99
  <form>
100
- <FieldList skip_associations="has_many"/>
100
+ <FieldList skip_associations="has_many" param/>
101
101
  <submit label="Create" param/>
102
102
  </form>
103
103
  </section>
@@ -113,7 +113,7 @@
113
113
  end.compact
114
114
  %>
115
115
  <PageForShow merge>
116
- <body class="rapid_generic_page"/>
116
+ <body class="rapid_generic_page show_page show_#{type_name.underscore}"/>
117
117
  <main>
118
118
  <header>
119
119
  <heading><type_name/><if test="&this.respond_to? :name">: <editor:name/></if></heading>
@@ -143,18 +143,19 @@
143
143
  end.compact
144
144
  %>
145
145
  <PageForEdit merge>
146
- <body class="rapid_generic_page"/>
146
+ <body class="rapid_generic_page edit_page edit_#{type_name.underscore}"/>
147
147
  <main>
148
148
  <header>
149
149
  <heading><type_name/><if test="&this.respond_to? :name">: <name/></if></heading>
150
- <delete_button in_place="&false"/>
150
+ <delete_button in_place="&false" param/>
151
151
  </header>
152
152
 
153
153
  <panel param="main_panel">
154
154
  <header param="main_header"><h2>Details</h2></header>
155
155
  <section>
156
+ <error_messages param="error_messages"/>
156
157
  <form>
157
- <FieldList skip="name" tag="input" param/>
158
+ <FieldList skip="name" param/>
158
159
  <submit label="Save"/>
159
160
  </form>
160
161
  </section>
@@ -174,9 +175,9 @@
174
175
  <PageForNewInCollection title="New #{type_name}" merge>
175
176
  <body class="rapid_generic_page"/>
176
177
  <main>
177
- <header>
178
- <h1>New <type_name/></h1>
179
- <h2>For: <a with="&@owner" /></h2>
178
+ <header param>
179
+ <h1 param>New <type_name/></h1>
180
+ <h2 param>For: <a with="&@owner" /></h2>
180
181
  </header>
181
182
 
182
183
  <panel param="main">
@@ -187,9 +188,8 @@
187
188
  <error_messages param="error_messages"/>
188
189
 
189
190
  <form>
190
- <FieldList associations="belongs_to"/>
191
- <submit label='Add to #{name(:with => @owner, :no_wrapper => true)}'
192
- param="submit_button"/>
191
+ <FieldList skip_associations="has_many"/>
192
+ <submit label='Add to #{name(:with => @owner, :no_wrapper => true)}' param/>
193
193
  </form>
194
194
  </section>
195
195
  </panel>
@@ -229,7 +229,7 @@
229
229
 
230
230
  <if test="&Hobo.simple_has_many_association?(@association)">
231
231
  <section param="new_link">
232
- <a to="&@associaton.new"/>
232
+ <a to="&@association" action="new"/>
233
233
  </section>
234
234
  </if>
235
235
  </panel>
@@ -239,31 +239,34 @@
239
239
 
240
240
 
241
241
  <def tag="LoginPage" attrs="remember_me">
242
- <Page title="Login">
242
+ <Page title="Login" merge>
243
+ <body class="login_page" param/>
243
244
  <main>
244
- <h1>Log In</h1>
245
+ <h1 param="login_title">Log In</h1>
245
246
 
246
247
  <panel>
247
- <section>
248
- <form action="&request.request_uri">
248
+ <section param>
249
+ <form action="&request.request_uri" param>
249
250
  <table class="login_table">
250
251
  <tr>
251
- <td class="field_label"><label for="login">Login</label></td>
252
- <td><input type="text" name="login" id="login"/></td>
252
+ <td class="field_label">
253
+ <label param="login_label" for="login"><%= @user_model.login_attr.to_s.titleize %></label>
254
+ </td>
255
+ <td><input param="login_input" type="text" name="login" id="login"/></td>
253
256
  </tr>
254
257
 
255
258
  <tr>
256
- <td class="field_label"><label for="password">Password</label></td>
257
- <td><input type="password" name="password" id="password"/></td>
259
+ <td class="field_label"><label param="password_label" for="password">Password</label></td>
260
+ <td><input param="password_input" type="password" name="password" id="password"/></td>
258
261
  </tr>
259
262
 
260
263
  <tr if="&remember_me">
261
- <td class="field_label"><label for="remember_me">Remember me:</label></td>
262
- <td><input type="checkbox" name="remember_me" id="remember_me"/></td>
264
+ <td class="field_label"><label param="remember_me_label" for="remember_me">Remember me:</label></td>
265
+ <td><input param="remember_me_input" type="checkbox" name="remember_me" id="remember_me"/></td>
263
266
  </tr>
264
267
  </table>
265
268
 
266
- <p><submit label='Log in'/></p>
269
+ <p><submit param label='Log in'/></p>
267
270
  </form>
268
271
  </section>
269
272
  </panel>
@@ -273,7 +276,8 @@
273
276
 
274
277
 
275
278
  <def tag="SignupPage">
276
- <Page title="Sign Up">
279
+ <Page title="Sign Up" merge>
280
+ <body class="signup_page" param/>
277
281
 
278
282
  <main>
279
283
  <h1>Sign Up</h1>
@@ -341,7 +345,7 @@
341
345
  <def tag="ajax_progress">
342
346
  <div id='ajax_progress'>
343
347
  <div>
344
- <span id="ajax_progress_text"></span><theme_image src="spinner.gif"/>
348
+ <span id="ajax_progress_text"></span>
345
349
  </div>
346
350
  </div>
347
351
  </def>
@@ -0,0 +1,41 @@
1
+ <def tag="TablePlus" attrs="sort_field, sort_direction, sort_columns" >
2
+ <% sort_field ||= @sort_field; sort_direction ||= @sort_direction; sort_columns ||= {} %>
3
+ <div class="table_plus" merge_attrs="&attributes - attrs_for(:with_fields) - attrs_for(:Table)">
4
+ <div class="header" param="header">
5
+ <div class="search">
6
+ <form param="search_form" method="get" action="">
7
+ <hidden_fields for_query_string skip="page, search_form"/>
8
+ Search <input class="search_field" type="text" name="search" value="&params[:search]"/>
9
+ </form>
10
+ </div>
11
+ </div>
12
+
13
+ <Table merge_attrs="&attributes & (attrs_for(:Table) + attrs_for(:with_fields))"
14
+ merge_params>
15
+ <field_heading_row>
16
+ <with_field_names merge_attrs="&all_attributes & attrs_for(:with_fields)">
17
+ <% col = sort_columns[scope.field_path] || scope.field_path
18
+ sort = sort_field == col && sort_direction == 'asc' ?
19
+ "-#{col}" : col
20
+ sort_url = url_for(params.merge(:sort => sort) - [:page]) %>
21
+
22
+ <th>
23
+ <a href="&sort_url" param="#{scope.field_name}_heading"><%= scope.field_name.titleize %></a>
24
+ <if test="&col == sort_field">
25
+ <do param="up_arrow" if="&sort_direction == 'desc'">&uarr;</do>
26
+ <do param="down_arrow" if="&sort_direction == 'asc'">&darr;</do>
27
+ </if>
28
+ </th>
29
+ </with_field_names>
30
+ <th if="&all_parameters[:controls]" class="controls"/>
31
+ </field_heading_row>
32
+ </Table>
33
+ <else>
34
+ <do param="empty_message"/>
35
+ </else>
36
+
37
+ <nav class="page">
38
+ <page_nav/>
39
+ </nav>
40
+ </div>
41
+ </def>
@@ -1,7 +1,9 @@
1
1
  <def tag="with_fields" attrs="fields, skip, skip_associations, include_timestamps"><%
2
- field_names = if fields.nil?
3
- columns = this.class.content_columns.every(:name)
4
- columns -= %w{created_at updated_at created_on updated_on} unless include_timestamps
2
+ field_names = if fields.nil? || fields == "*" || fields.is_a?(Class)
3
+ klass = fields.is_a?(Class) ? fields : this.class
4
+ columns = klass.content_columns.every(:name)
5
+ columns -= %w{created_at updated_at created_on updated_on} unless
6
+ include_timestamps
5
7
 
6
8
  if skip_associations == "has_many"
7
9
  assocs = this.class.reflections.values.reject {|r| r.macro == :has_many }.every(:name)
@@ -9,7 +11,7 @@
9
11
  elsif skip_associations
10
12
  columns
11
13
  else
12
- assocs = this.class.reflections.values.every(:name)
14
+ assocs = klass.reflections.values.every(:name)
13
15
  columns + assocs
14
16
  end
15
17
  else
@@ -21,9 +23,10 @@
21
23
  field_names.each do |field| %><with field="&field"><tagbody/></with><% end
22
24
  %></def>
23
25
 
24
- <def tag="with_field_names" attrs="fields, skip, skip_associations, include_timestamps"><%
25
- field_names = if fields.nil?
26
- columns = this.content_columns.every(:name)
26
+ <def tag="with_field_names" attrs="fields, skip, skip_associations, include_timestamps"><%=
27
+ field_names = if fields.nil? || fields == "*" || fields.is_a?(Class)
28
+ klass = fields.is_a?(Class) ? fields : this.proxy_reflectin.class
29
+ columns = klass.content_columns.every(:name)
27
30
  columns -= %w{created_at updated_at created_on updated_on} unless include_timestamps
28
31
 
29
32
  if skip_associations == "has_many"
@@ -32,7 +35,7 @@
32
35
  elsif skip_associations
33
36
  columns
34
37
  else
35
- assocs = this.reflections.values.every(:name)
38
+ assocs = klass.reflections.values.every(:name)
36
39
  columns + assocs
37
40
  end
38
41
  else
@@ -40,7 +43,13 @@
40
43
  end
41
44
 
42
45
  field_names -= comma_split(skip) if skip
46
+ scope.new_scope do
47
+ field_names.map do |n|
48
+ scope.field_name = n.to_s.gsub("." , "_")
49
+ scope.field_path = n
50
+ tagbody.call
51
+ end
52
+ end
43
53
  %>
44
- <repeat with="&field_names"><tagbody/></repeat>
45
54
  </def>
46
55
 
@@ -0,0 +1,61 @@
1
+ desc 'Dump a database to yaml fixtures. Set environment variables DB
2
+ and DEST to specify the target database and destination path for the
3
+ fixtures. DB defaults to development and DEST defaults to RAILS_ROOT/
4
+ test/fixtures.'
5
+ task :dump_fixtures => :environment do
6
+ path = ENV['DEST'] || "#{RAILS_ROOT}/test/fixtures"
7
+ db = ENV['RAILS_ENV'] || 'test'
8
+
9
+ skip = (ENV['SKIP'] || "").split(",")
10
+ skip << "schema_info"
11
+
12
+ sql = 'SELECT * FROM %s'
13
+
14
+ ActiveRecord::Base.establish_connection(db)
15
+ ActiveRecord::Base.connection.select_values('show tables').each do |table_name|
16
+ unless skip.include?(table_name)
17
+ fixture_file = "#{path}/#{table_name}.yml"
18
+ old = YAML::load(File.read(fixture_file)) rescue nil
19
+
20
+ records = ActiveRecord::Base.connection.select_all(sql % table_name).inject({}) do |hash, record|
21
+ record.each_pair do |k, v|
22
+ if v.nil?
23
+ record.delete(k)
24
+ elsif (k == "id" or k.ends_with?("_id")) and v =~ /^\d+$/
25
+ record[k] = v.to_i
26
+ end
27
+ end
28
+ old_pair = old && old.find{|k,v| v["id"] == record["id"]}
29
+ name = old_pair ? old_pair.first : "#{table_name.singularize}_#{record["id"]}"
30
+ hash[name] = record
31
+ hash
32
+ end
33
+ File.open(fixture_file, 'wb') { |file| file.write(records.to_yaml) }
34
+ end
35
+ end
36
+ end
37
+
38
+ # ActiveRecord::Base.connection.select_values('show tables')
39
+ # is mysql specific
40
+ # SQLite: ActiveRecord::Base.connection.select_values('.table')
41
+ # Postgres
42
+ # table_names = ActiveRecord::Base.connection.select_values(<<-end_sql)
43
+ # SELECT c.relname
44
+ # FROM pg_class c
45
+ # LEFT JOIN pg_roles r ON r.oid = c.relowner
46
+ # LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
47
+ # WHERE c.relkind IN ('r','')
48
+ # AND n.nspname IN ('myappschema', 'public')
49
+ # AND pg_table_is_visible(c.oid)
50
+ # end_sql
51
+
52
+ def fixture_name(table, record)
53
+ model = table.classify.constantize
54
+ name = if table.in?(FIXTURE_NAMES)
55
+ obj = model.find(record[model.primary_key])
56
+ FIXTURE_NAMES[table].call(obj)
57
+ else
58
+ record["name"] || record["title"] || "#{table}_#{record[model.primary_key]}"
59
+ end
60
+ name.gsub(/\W+/, "_").downcase
61
+ end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: hobo
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.6.1
7
- date: 2007-08-25 00:00:00 +01:00
6
+ version: 0.6.2
7
+ date: 2007-09-13 00:00:00 +01:00
8
8
  summary: The web app builder for Rails
9
9
  require_paths:
10
10
  - lib
@@ -37,7 +37,6 @@ files:
37
37
  - hobo_files/plugin/LICENSE.txt
38
38
  - hobo_files/plugin/Rakefile
39
39
  - hobo_files/plugin/README
40
- - hobo_files/plugin/spec
41
40
  - hobo_files/plugin/tags
42
41
  - hobo_files/plugin/tasks
43
42
  - hobo_files/plugin/uninstall.rb
@@ -82,6 +81,7 @@ files:
82
81
  - hobo_files/plugin/generators/hobo_rapid/templates/hobo_base.css
83
82
  - hobo_files/plugin/generators/hobo_rapid/templates/hobo_rapid.css
84
83
  - hobo_files/plugin/generators/hobo_rapid/templates/hobo_rapid.js
84
+ - hobo_files/plugin/generators/hobo_rapid/templates/lowpro.js
85
85
  - hobo_files/plugin/generators/hobo_rapid/templates/themes
86
86
  - hobo_files/plugin/generators/hobo_rapid/templates/themes/default
87
87
  - hobo_files/plugin/generators/hobo_rapid/templates/themes/default/public
@@ -155,8 +155,10 @@ files:
155
155
  - hobo_files/plugin/lib/hobo/email_address.rb
156
156
  - hobo_files/plugin/lib/hobo/field_spec.rb
157
157
  - hobo_files/plugin/lib/hobo/generator.rb
158
+ - hobo_files/plugin/lib/hobo/guest.rb
158
159
  - hobo_files/plugin/lib/hobo/hobo_helper.rb
159
160
  - hobo_files/plugin/lib/hobo/html_string.rb
161
+ - hobo_files/plugin/lib/hobo/http_parameters.rb
160
162
  - hobo_files/plugin/lib/hobo/lazy_hash.rb
161
163
  - hobo_files/plugin/lib/hobo/markdown_string.rb
162
164
  - hobo_files/plugin/lib/hobo/migrations.rb
@@ -184,14 +186,6 @@ files:
184
186
  - hobo_files/plugin/lib/hobo/dryml/template.rb
185
187
  - hobo_files/plugin/lib/hobo/dryml/template_environment.rb
186
188
  - hobo_files/plugin/lib/hobo/dryml/template_handler.rb
187
- - hobo_files/plugin/spec/fixtures
188
- - hobo_files/plugin/spec/spec.opts
189
- - hobo_files/plugin/spec/spec_helper.rb
190
- - hobo_files/plugin/spec/unit
191
- - hobo_files/plugin/spec/fixtures/users.yml
192
- - hobo_files/plugin/spec/unit/hobo
193
- - hobo_files/plugin/spec/unit/hobo/dryml
194
- - hobo_files/plugin/spec/unit/hobo/dryml/template_spec.rb
195
189
  - hobo_files/plugin/tags/core.dryml
196
190
  - hobo_files/plugin/tags/rapid.dryml
197
191
  - hobo_files/plugin/tags/rapid_document_tags.dryml
@@ -199,7 +193,9 @@ files:
199
193
  - hobo_files/plugin/tags/rapid_forms.dryml
200
194
  - hobo_files/plugin/tags/rapid_navigation.dryml
201
195
  - hobo_files/plugin/tags/rapid_pages.dryml
196
+ - hobo_files/plugin/tags/rapid_plus.dryml
202
197
  - hobo_files/plugin/tags/rapid_support.dryml
198
+ - hobo_files/plugin/tasks/dump_fixtures.rake
203
199
  - hobo_files/plugin/tasks/environments.rake
204
200
  - hobo_files/plugin/tasks/hobo_tasks.rake
205
201
  - bin/hobo