hobo 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
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