hobo 0.8.8 → 0.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES.txt +34 -0
- data/Rakefile +30 -24
- data/bin/hobo +30 -10
- data/doctest/hobo/hobo_helper.rdoctest +92 -0
- data/doctest/hobo/lifecycles.rdoctest +261 -0
- data/doctest/scopes.rdoctest +387 -0
- data/dryml_generators/rapid/forms.dryml.erb +3 -3
- data/dryml_generators/rapid/pages.dryml.erb +4 -4
- data/lib/active_record/viewhints_validations_interceptor.rb +1 -1
- data/lib/hobo.rb +1 -1
- data/lib/hobo/accessible_associations.rb +3 -3
- data/lib/hobo/authentication_support.rb +1 -1
- data/lib/hobo/dryml.rb +10 -0
- data/lib/hobo/dryml/taglib.rb +3 -5
- data/lib/hobo/hobo_helper.rb +3 -1
- data/lib/hobo/include_in_save.rb +1 -0
- data/lib/hobo/lifecycles/actions.rb +6 -2
- data/lib/hobo/model.rb +1 -1
- data/lib/hobo/model_controller.rb +34 -12
- data/lib/hobo/permissions.rb +1 -1
- data/lib/hobo/rapid_helper.rb +3 -0
- data/lib/hobo/scopes/association_proxy_extensions.rb +8 -2
- data/lib/hobo/scopes/automatic_scopes.rb +3 -3
- data/lib/hobo/user_controller.rb +2 -1
- data/rails_generators/hobo/hobo_generator.rb +1 -1
- data/rails_generators/hobo/templates/application.dryml +0 -2
- data/rails_generators/hobo_admin_site/hobo_admin_site_generator.rb +45 -0
- data/rails_generators/hobo_admin_site/templates/admin.css +2 -0
- data/rails_generators/hobo_admin_site/templates/application.dryml +1 -0
- data/rails_generators/hobo_admin_site/templates/controller.rb +13 -0
- data/rails_generators/hobo_admin_site/templates/site_taglib.dryml +32 -0
- data/rails_generators/hobo_admin_site/templates/users_index.dryml +5 -0
- data/rails_generators/hobo_front_controller/hobo_front_controller_generator.rb +7 -1
- data/rails_generators/hobo_front_controller/templates/index.dryml +16 -0
- data/rails_generators/hobo_rapid/hobo_rapid_generator.rb +31 -1
- data/rails_generators/hobo_rapid/templates/hobo-rapid.js +5 -3
- data/rails_generators/hobo_rapid/templates/lowpro.js +40 -21
- data/rails_generators/hobo_rapid/templates/themes/clean/public/images/101-3B5F87-ACD3E6.png +0 -0
- data/rails_generators/hobo_rapid/templates/themes/clean/public/images/30-3E547A-242E42.png +0 -0
- data/rails_generators/hobo_rapid/templates/themes/clean/public/images/30-DBE1E5-FCFEF5.png +0 -0
- data/rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css +12 -4
- data/rails_generators/hobo_subsite/hobo_subsite_generator.rb +1 -1
- data/rails_generators/hobo_user_controller/hobo_user_controller_generator.rb +22 -0
- data/rails_generators/hobo_user_controller/templates/accept_invitation.dryml +5 -0
- data/rails_generators/hobo_user_controller/templates/controller.rb +22 -0
- data/rails_generators/hobo_user_model/hobo_user_model_generator.rb +17 -1
- data/rails_generators/hobo_user_model/templates/invite.erb +9 -0
- data/rails_generators/hobo_user_model/templates/mailer.rb +15 -0
- data/rails_generators/hobo_user_model/templates/model.rb +31 -4
- data/taglibs/rapid_core.dryml +25 -6
- data/taglibs/rapid_forms.dryml +65 -24
- data/taglibs/rapid_lifecycles.dryml +1 -1
- data/taglibs/rapid_navigation.dryml +2 -2
- data/taglibs/rapid_plus.dryml +4 -3
- metadata +151 -210
- data/Manifest +0 -155
- data/hobo.gemspec +0 -46
- data/rails_generators/hobo_rapid/templates/themes/clean/public/images/100-3B5F87-ACD3E6.png +0 -0
data/taglibs/rapid_core.dryml
CHANGED
@@ -293,6 +293,25 @@ Or a new page if the context is a class:
|
|
293
293
|
<a with="&BlogPost"/> -> <a href="/blog_posts">Blog Posts</a>`
|
294
294
|
* If `action="new"` then `<a>` will check that the current user has permission to create the object
|
295
295
|
* Several useful classes are added automatically to the output `<a>`.
|
296
|
+
|
297
|
+
### Attributes
|
298
|
+
|
299
|
+
* action: If "new", triggers the special behaviour listed above. Otherwise, contains the action to be performed on the context. If neither `action` nor `method` are specified, the action will be "index" or "show", as appropriate.
|
300
|
+
|
301
|
+
* to: Use this item as the target instead of the current context.
|
302
|
+
|
303
|
+
* params, query-params: These are appended to the target as a query string after a "?".
|
304
|
+
|
305
|
+
* href, name: If either of these attributes are present, the smart features of this tag are turned off.
|
306
|
+
|
307
|
+
* format: this adds ".#{format}" to the end of the url
|
308
|
+
|
309
|
+
* subsite: routes the URL using the subsite
|
310
|
+
|
311
|
+
* force: overrides the permission check if `action` is "new"
|
312
|
+
|
313
|
+
* method: "get", "put", "post" or "delete". "get" is the default
|
314
|
+
|
296
315
|
-->
|
297
316
|
<def tag="a" attrs="action, to, params, query-params, href, format, subsite, force"><%=
|
298
317
|
content = parameters.default
|
@@ -419,7 +438,7 @@ Assuming the context is a blog post...
|
|
419
438
|
else
|
420
439
|
wrapper = if inline
|
421
440
|
:span
|
422
|
-
elsif block ||
|
441
|
+
elsif block || this_type <= HoboFields::Text
|
423
442
|
:div
|
424
443
|
else
|
425
444
|
:span
|
@@ -433,7 +452,7 @@ Assuming the context is a blog post...
|
|
433
452
|
%></def>
|
434
453
|
|
435
454
|
<!-- `<view>` calls this tag when called for a `has_many` collection. By default calls `<links-for-collection/>` -->
|
436
|
-
<def tag="collection-view" polymorphic><links-for-collection
|
455
|
+
<def tag="collection-view" polymorphic><links-for-collection merge-attrs/></def>
|
437
456
|
|
438
457
|
<!-- Renders a comma separated list of links (`<a>`), or "(none)" if the list is empty -->
|
439
458
|
<def tag="links-for-collection"><%= this.empty? ? "(none)" : context_map { a }.join(", ") %></def>
|
@@ -514,11 +533,11 @@ The label can be customised using the `label` attribute, e.g.
|
|
514
533
|
main = label.blank? ? c : pluralize(c, label)
|
515
534
|
|
516
535
|
if prefix.in? %w(are is)
|
517
|
-
|
518
|
-
p + ' ' + main.to_s
|
519
|
-
else
|
520
|
-
main
|
536
|
+
prefix = c == 1 ? "is" : "are"
|
521
537
|
end
|
538
|
+
|
539
|
+
(prefix ? "#{prefix} #{main}" : main.to_s)
|
540
|
+
|
522
541
|
end
|
523
542
|
%></span></def>
|
524
543
|
|
data/taglibs/rapid_forms.dryml
CHANGED
@@ -342,7 +342,7 @@ The menus default to the current date if the current value is nil.
|
|
342
342
|
-->
|
343
343
|
<def tag="input" for="date" attrs="order">
|
344
344
|
<% order = order.nil? ? [:year, :month, :day] : comma_split(order).*.to_sym -%>
|
345
|
-
<%= select_date(this ||
|
345
|
+
<%= select_date(this || current_time, attributes.merge(:prefix => param_name_for_this, :order => order)) %>
|
346
346
|
</def>
|
347
347
|
|
348
348
|
|
@@ -360,7 +360,7 @@ The menus default to the current time if the current value is nil.
|
|
360
360
|
-->
|
361
361
|
<def tag="input" for="time" attrs="order">
|
362
362
|
<% order = order.nil? ? [:year, :month, :day, :hour, :minute, :second] : comma_split(order).*.to_sym -%>
|
363
|
-
<%= select_date(this ||
|
363
|
+
<%= select_date(this || current_time, attributes.merge(:prefix => param_name_for_this, :order => order)) %>
|
364
364
|
</def>
|
365
365
|
|
366
366
|
|
@@ -383,7 +383,7 @@ The menus default to the current time if the current value is nil.
|
|
383
383
|
require 'ruby-debug'
|
384
384
|
debugger
|
385
385
|
end -%>
|
386
|
-
<%= select_datetime(this ||
|
386
|
+
<%= select_datetime(this || current_time, attributes.merge(:prefix => param_name_for_this)) %>
|
387
387
|
</def>
|
388
388
|
|
389
389
|
<!-- An `<input type='text'>` input. -->
|
@@ -605,13 +605,14 @@ This is the default input that Rapid uses for `belongs_to` associations. The men
|
|
605
605
|
- `blank-message` - the message for the 'none' option. Defaults to "(No `<model-name>`)", e.g. "(No Product)"
|
606
606
|
- `options` - an array of records to include in the menu. Defaults to the all the records in the target table that match any `:conditions` declared on the `belongs_to` (subject to `limit`)
|
607
607
|
- `limit` - if `options` is not specified, this limits the number of records. Default: 100
|
608
|
+
- `text_method` - The method to call on each record to get the text for the option. Multiple methods are supported ie "institution.name"
|
608
609
|
|
609
610
|
### See Also
|
610
611
|
|
611
612
|
For situations where there are too many target records to practically include in a menu, `<name-one>` provides an autocompleter which would be more suitable.
|
612
613
|
|
613
614
|
-->
|
614
|
-
<def tag="select-one" attrs="include-none, blank-message, options, sort, limit"><%
|
615
|
+
<def tag="select-one" attrs="include-none, blank-message, options, sort, limit, text-method"><%
|
615
616
|
raise HoboError.new("Not allowed to edit #{this_field}") if !attributes[:disabled] && !can_edit?
|
616
617
|
|
617
618
|
blank_message ||= "(No #{this_type.name.to_s.titleize})"
|
@@ -622,7 +623,14 @@ For situations where there are too many target records to practically include in
|
|
622
623
|
this_field_reflection.klass.all(:conditions => conditions, :limit => limit).select {|x| can_view?(x)}
|
623
624
|
end
|
624
625
|
|
625
|
-
|
626
|
+
if text_method.nil?
|
627
|
+
select_options = options.map { |x| [x.to_s, x.id] }
|
628
|
+
else
|
629
|
+
select_options = options.map do |x|
|
630
|
+
[ text_method.split(".").inject(x) { |v, method| v.send(method) },
|
631
|
+
x.id ]
|
632
|
+
end
|
633
|
+
end
|
626
634
|
select_options = select_options.sort if sort
|
627
635
|
select_options.insert(0, [blank_message, ""]) if include_none || (this.nil? && include_none != false)
|
628
636
|
attributes = add_classes(attributes, "input", "belongs_to", type_and_field)
|
@@ -633,21 +641,54 @@ For situations where there are too many target records to practically include in
|
|
633
641
|
</def>
|
634
642
|
|
635
643
|
|
636
|
-
<!-- An `<input type="text">` with auto-completion. Allows the user to chose the target of a `belongs_to` association
|
637
|
-
by name.
|
638
|
-
|
639
|
-
### Attributes
|
644
|
+
<!-- An `<input type="text">` with auto-completion. Allows the user to chose the target of a `belongs_to` association by name.
|
640
645
|
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
646
|
+
This tag relies on an autocompleter being defined in a controller. A simple example:
|
647
|
+
|
648
|
+
<form with="&ProjectMembership.new">
|
649
|
+
<name-one:user>
|
650
|
+
</form>
|
651
|
+
|
652
|
+
class ProjectMembership < ActiveRecord::Base
|
653
|
+
hobo_model
|
654
|
+
belongs_to :user
|
655
|
+
end
|
656
|
+
|
657
|
+
class User < ActiveRecord::Base
|
658
|
+
hobo_user_model
|
659
|
+
has_many :project_memberships, :accessible => true, :dependent => :destroy
|
660
|
+
end
|
661
|
+
|
662
|
+
class UsersController < ApplicationController
|
663
|
+
autocomplete
|
664
|
+
end
|
665
|
+
|
666
|
+
The route used by the autocompleter looks something like `/users/complete_name`. The first part of this route is specified by the `complete-target` attribute, and the second part is specified by the `completer` attribute.
|
667
|
+
|
668
|
+
`complete-target` specifies the controller for the route. It can be specified by either supplying a model class or a model. If a model is supplied, the id of the model is passed as a parameter to the controller. (`?id=7`, for example) The default for this attribute is the class of the context. In other words, the class that contains the `has_many / has_one`, not the class with the `belongs_to`.
|
669
|
+
|
670
|
+
`completer` specifies the action for the route. `name-one` prepends `complete_` to the value given here. This should be exactly the same as the first parameter to `autocomplete` in your controller. As an example: `autocomplete :email_address` would correspond to `completer="email_address"`. The default for this attribute is the name field for the model being searched, which is usually `name`, but not always.
|
671
|
+
|
672
|
+
The query string is passed to the controller in the `query` parameter. (`?query=hello` for example).
|
673
|
+
|
674
|
+
For more information on how to customize the controller, see the [controller manual](http://cookbook.hobocentral.net/manual/controllers#autocompleters)
|
675
|
+
|
676
|
+
Here's a more complex example. This used to be a part of [agility](http://cookbook.hobocentral.net/tutorials/agility) until it was simplified.
|
677
|
+
|
678
|
+
class ProjectsController < ApplicationController
|
679
|
+
autocomplete :new_member_name do
|
680
|
+
project = find_instance
|
681
|
+
hobo_completions :name, User.without_project(project).is_not(project.owner)
|
682
|
+
end
|
683
|
+
end
|
684
|
+
|
685
|
+
Note that this was added to the projects controller, rather than the users controller as in the first example. You can read this as: create an auto-complete action called ’new_member_name’ that finds users that are not already members of the project, and not the owner of the project, and completes the :name field.
|
686
|
+
|
687
|
+
<name-one:user complete-target="&@project" completer="new_member_name"/>
|
645
688
|
|
646
|
-
|
689
|
+
We're using an object as the complete-target rather than a class. This allows the `find_instance` in our controller action to function.
|
647
690
|
|
648
|
-
|
649
|
-
- If `completer` is a record, say a `Product` with id `12`: `/products/complete_name?id=12`
|
650
|
-
- If `completer-name` is given, e.g. with `completer-name="new_product_names"`: `/products/complete_new_product_names`
|
691
|
+
There's another example of `<name-one>` use in the [recipes](http://cookbook.hobocentral.net/recipes/36-using-a-name-one-one-a).
|
651
692
|
|
652
693
|
-->
|
653
694
|
<def tag="name-one" attrs="complete-target, completer"><%
|
@@ -704,9 +745,10 @@ An input for `has_many :through` associations that lets the user chose the items
|
|
704
745
|
|
705
746
|
To use this tag, the model of the items the user is chosing *must* have unique names, and the
|
706
747
|
-->
|
707
|
-
<def tag="select-many" attrs="options, targets, remove-label, prompt, disabled"><%
|
748
|
+
<def tag="select-many" attrs="options, targets, remove-label, prompt, disabled, name"><%
|
708
749
|
prompt ||= "Add #{this_field.titleize.singularize}"
|
709
750
|
options ||= this_field_reflection.klass.all(:conditions =>this.conditions).select {|x| can_view?(x)}
|
751
|
+
name ||= param_name_for_this
|
710
752
|
|
711
753
|
values = this
|
712
754
|
-%>
|
@@ -714,15 +756,14 @@ To use this tag, the model of the items the user is chosing *must* have unique n
|
|
714
756
|
<div style="display:none" class="item-proto">
|
715
757
|
<div class="item" param="proto-item">
|
716
758
|
<span></span>
|
717
|
-
<input type="hidden" name="#{
|
759
|
+
<input type="hidden" name="#{name}[]" param="proto-hidden"/>
|
718
760
|
<input type="button" class="remove-item" value="#{remove_label || 'Remove'}" param="proto-remove-button"/>
|
719
761
|
</div>
|
720
762
|
</div>
|
721
763
|
<div class="items">
|
722
|
-
<set param-name="¶m_name_for_this"/>
|
723
764
|
<div class="item" param="item" repeat>
|
724
765
|
<span><%= h this.to_s %></span>
|
725
|
-
<input type="hidden" name="#{
|
766
|
+
<input type="hidden" name="#{name}[]" value="@#{h this.id}" disabled="&disabled"
|
726
767
|
param="hidden"/>
|
727
768
|
<input type="button" class="remove-item" value="#{remove_label || 'Remove'}" disabled="&disabled"
|
728
769
|
param="remove-button"/>
|
@@ -851,8 +892,8 @@ The body of the tag will be repeated for each of the current records in the coll
|
|
851
892
|
<field-list merge-attrs="fields" />
|
852
893
|
</div>
|
853
894
|
<div class="buttons">
|
854
|
-
<button class="remove-item" merge-attrs="disabled">-</button>
|
855
|
-
<button class="add-item" if="&last_item?" merge-attrs="disabled">+</button>
|
895
|
+
<button type="button" class="remove-item" merge-attrs="disabled" param="remove-item">-</button>
|
896
|
+
<button type="button" class="add-item" if="&last_item?" merge-attrs="disabled" param="add-item">+</button>
|
856
897
|
</div>
|
857
898
|
</li>
|
858
899
|
<li if="&empty">
|
@@ -862,7 +903,7 @@ The body of the tag will be repeated for each of the current records in the coll
|
|
862
903
|
</div>
|
863
904
|
</fake-field-context>
|
864
905
|
<div class="buttons">
|
865
|
-
<button class="add-item" merge-attrs="disabled">+</button>
|
906
|
+
<button type="button" class="add-item" merge-attrs="disabled" param="add-item">+</button>
|
866
907
|
</div>
|
867
908
|
</li>
|
868
909
|
</ul>
|
@@ -35,7 +35,7 @@ All of the [standard ajax attributes](/api_taglibs/rapid_forms) are also support
|
|
35
35
|
For example, you could use this on a `Friendship` card: the person invited to have friendship would automatically see 'Accept' and 'Decline' buttons, while the person initiating the invite would see 'Retract'.
|
36
36
|
-->
|
37
37
|
<def tag="transition-buttons">
|
38
|
-
<div class="transitions">
|
38
|
+
<div merge-attrs class="transitions">
|
39
39
|
<% this.lifecycle.available_transitions_for(current_user).each do |t| %>
|
40
40
|
<transition-button transition="&t"/>
|
41
41
|
<% end %>
|
@@ -68,7 +68,7 @@ This is a simple tag - just look at the source if you need to know more detail.
|
|
68
68
|
<def tag="account-nav">
|
69
69
|
<do with="¤t_user">
|
70
70
|
<ul class="navigation account-nav" param>
|
71
|
-
<li if="&RAILS_ENV == 'development'"><dev-user-changer/></li>
|
71
|
+
<li if="&RAILS_ENV == 'development'" param="dev-user-changer"><dev-user-changer/></li>
|
72
72
|
<if test="&logged_in?">
|
73
73
|
<li class='nav-item' param="logged-in-as"><a to="¤t_user">Logged in as <name/></a></li>
|
74
74
|
<li class='nav-item' param="account"><a action="account">Account</a></li>
|
@@ -85,5 +85,5 @@ This is a simple tag - just look at the source if you need to know more detail.
|
|
85
85
|
|
86
86
|
<!--- A simple wrapper around the `will_paginate` helper. All options to `will_paginate` are available as attributes -->
|
87
87
|
<def tag="page-nav">
|
88
|
-
<%= will_paginate this, attributes.symbolize_keys.reverse_merge(:inner_window => 2, :
|
88
|
+
<%= will_paginate this, attributes.symbolize_keys.reverse_merge(:inner_window => 2, :previous_label => "« Prev") %>
|
89
89
|
</def>
|
data/taglibs/rapid_plus.dryml
CHANGED
@@ -28,11 +28,12 @@ An [worked example](/tutorials/agility#improve_the_project_page_with_a_searchabl
|
|
28
28
|
<% col = sort_columns[scope.field_path] || scope.field_path
|
29
29
|
sort = sort_field == col && sort_direction == 'asc' ?
|
30
30
|
"-#{col}" : col
|
31
|
-
sort_url = url_for(params.merge(:sort => sort) - [:page])
|
31
|
+
sort_url = url_for(params.merge(:sort => sort) - [:page])
|
32
|
+
col_heading_name = this.member_class.try.view_hints.try.field_name(scope.field_name) || scope.field_name.titleize %>
|
32
33
|
|
33
34
|
<th param="#{scope.field-name}-heading">
|
34
35
|
<a href="&sort_url" class="column-sort"
|
35
|
-
param="#{scope.field-name}-heading-link"><%=
|
36
|
+
param="#{scope.field-name}-heading-link"><%= col_heading_name %></a>
|
36
37
|
<if test="&col == sort_field">
|
37
38
|
<do param="up-arrow" if="&sort_direction == 'desc'">↑</do>
|
38
39
|
<do param="down-arrow" if="&sort_direction == 'asc'">↓</do>
|
@@ -45,7 +46,7 @@ An [worked example](/tutorials/agility#improve_the_project_page_with_a_searchabl
|
|
45
46
|
<do param="empty-message" if="empty?">No <collection-name lowercase/> to display</do>
|
46
47
|
|
47
48
|
|
48
|
-
<page-nav param if="&this.respond_to? :
|
49
|
+
<page-nav param if="&this.respond_to?(:page_count) || this.respond_to?(:total_pages)"/>
|
49
50
|
</div>
|
50
51
|
</def>
|
51
52
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Locke
|
@@ -9,289 +9,233 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
13
|
-
default_executable:
|
12
|
+
date: 2009-10-15 00:00:00 -04:00
|
13
|
+
default_executable: hobo
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: rails
|
17
17
|
type: :runtime
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- - "
|
21
|
+
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 2.2.2
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
26
|
+
name: mislav-will_paginate
|
27
27
|
type: :runtime
|
28
28
|
version_requirement:
|
29
29
|
version_requirements: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.2.1
|
34
34
|
version:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name:
|
36
|
+
name: hobosupport
|
37
37
|
type: :runtime
|
38
38
|
version_requirement:
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
|
-
- - "
|
41
|
+
- - "="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
43
|
+
version: 0.8.9
|
44
44
|
version:
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
46
|
+
name: hobofields
|
47
47
|
type: :runtime
|
48
48
|
version_requirement:
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "
|
51
|
+
- - "="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 0.8.9
|
54
54
|
version:
|
55
|
-
description:
|
55
|
+
description:
|
56
56
|
email: tom@tomlocke.com
|
57
57
|
executables:
|
58
58
|
- hobo
|
59
59
|
extensions: []
|
60
60
|
|
61
61
|
extra_rdoc_files:
|
62
|
+
- LICENSE.txt
|
63
|
+
- README
|
64
|
+
files:
|
65
|
+
- CHANGES.txt
|
66
|
+
- LICENSE.txt
|
67
|
+
- README
|
68
|
+
- Rakefile
|
69
|
+
- bin/hobo
|
70
|
+
- doctest/hobo/hobo_helper.rdoctest
|
71
|
+
- doctest/hobo/lifecycles.rdoctest
|
72
|
+
- doctest/scopes.rdoctest
|
73
|
+
- dryml_generators/rapid/cards.dryml.erb
|
74
|
+
- dryml_generators/rapid/forms.dryml.erb
|
75
|
+
- dryml_generators/rapid/pages.dryml.erb
|
76
|
+
- init.rb
|
77
|
+
- lib/action_view_extensions/helpers/tag_helper.rb
|
78
|
+
- lib/active_record/association_collection.rb
|
79
|
+
- lib/active_record/association_proxy.rb
|
80
|
+
- lib/active_record/association_reflection.rb
|
81
|
+
- lib/active_record/viewhints_validations_interceptor.rb
|
62
82
|
- lib/hobo.rb
|
63
|
-
- lib/hobo/
|
64
|
-
- lib/hobo/
|
65
|
-
- lib/hobo/
|
66
|
-
- lib/hobo/
|
67
|
-
- lib/hobo/
|
68
|
-
- lib/hobo/dryml
|
69
|
-
- lib/hobo/dryml/
|
83
|
+
- lib/hobo/accessible_associations.rb
|
84
|
+
- lib/hobo/authentication_support.rb
|
85
|
+
- lib/hobo/bundle.rb
|
86
|
+
- lib/hobo/controller.rb
|
87
|
+
- lib/hobo/dev_controller.rb
|
88
|
+
- lib/hobo/dryml.rb
|
89
|
+
- lib/hobo/dryml/dryml_builder.rb
|
90
|
+
- lib/hobo/dryml/dryml_doc.rb
|
91
|
+
- lib/hobo/dryml/dryml_generator.rb
|
92
|
+
- lib/hobo/dryml/dryml_support_controller.rb
|
70
93
|
- lib/hobo/dryml/parser.rb
|
71
|
-
- lib/hobo/dryml/template_handler.rb
|
72
|
-
- lib/hobo/dryml/parser/source.rb
|
73
|
-
- lib/hobo/dryml/parser/tree_parser.rb
|
74
94
|
- lib/hobo/dryml/parser/attribute.rb
|
75
|
-
- lib/hobo/dryml/parser/text.rb
|
76
95
|
- lib/hobo/dryml/parser/base_parser.rb
|
77
96
|
- lib/hobo/dryml/parser/document.rb
|
78
|
-
- lib/hobo/dryml/parser/elements.rb
|
79
97
|
- lib/hobo/dryml/parser/element.rb
|
80
|
-
- lib/hobo/dryml/
|
81
|
-
- lib/hobo/dryml/
|
82
|
-
- lib/hobo/dryml/
|
83
|
-
- lib/hobo/dryml/
|
98
|
+
- lib/hobo/dryml/parser/elements.rb
|
99
|
+
- lib/hobo/dryml/parser/source.rb
|
100
|
+
- lib/hobo/dryml/parser/text.rb
|
101
|
+
- lib/hobo/dryml/parser/tree_parser.rb
|
84
102
|
- lib/hobo/dryml/part_context.rb
|
85
|
-
- lib/hobo/dryml/template.rb
|
86
|
-
- lib/hobo/dryml/dryml_generator.rb
|
87
103
|
- lib/hobo/dryml/scoped_variables.rb
|
88
|
-
- lib/hobo/
|
104
|
+
- lib/hobo/dryml/tag_parameters.rb
|
105
|
+
- lib/hobo/dryml/taglib.rb
|
106
|
+
- lib/hobo/dryml/template.rb
|
107
|
+
- lib/hobo/dryml/template_environment.rb
|
108
|
+
- lib/hobo/dryml/template_handler.rb
|
109
|
+
- lib/hobo/find_for.rb
|
110
|
+
- lib/hobo/generator.rb
|
89
111
|
- lib/hobo/guest.rb
|
90
|
-
- lib/hobo/user_controller.rb
|
91
|
-
- lib/hobo/rapid_helper.rb
|
92
|
-
- lib/hobo/tasks/rails.rb
|
93
|
-
- lib/hobo/permissions/associations.rb
|
94
|
-
- lib/hobo/include_in_save.rb
|
95
112
|
- lib/hobo/hobo_helper.rb
|
96
|
-
- lib/hobo/
|
97
|
-
- lib/hobo/scopes/apply_scopes.rb
|
98
|
-
- lib/hobo/scopes/automatic_scopes.rb
|
99
|
-
- lib/hobo/scopes/association_proxy_extensions.rb
|
100
|
-
- lib/hobo/bundle.rb
|
101
|
-
- lib/hobo/controller.rb
|
102
|
-
- lib/hobo/find_for.rb
|
113
|
+
- lib/hobo/include_in_save.rb
|
103
114
|
- lib/hobo/lifecycles.rb
|
104
|
-
- lib/hobo/undefined.rb
|
105
|
-
- lib/hobo/user.rb
|
106
|
-
- lib/hobo/dryml.rb
|
107
|
-
- lib/hobo/undefined_access_error.rb
|
108
|
-
- lib/hobo/authentication_support.rb
|
109
|
-
- lib/hobo/dev_controller.rb
|
110
|
-
- lib/hobo/accessible_associations.rb
|
111
|
-
- lib/hobo/scopes.rb
|
112
|
-
- lib/hobo/view_hints.rb
|
113
|
-
- lib/hobo/generator.rb
|
114
|
-
- lib/hobo/static_tags
|
115
|
-
- lib/hobo/model_router.rb
|
116
|
-
- lib/hobo/model_controller.rb
|
117
|
-
- lib/hobo/model.rb
|
118
|
-
- lib/action_view_extensions/helpers/tag_helper.rb
|
119
|
-
- lib/active_record/association_proxy.rb
|
120
|
-
- lib/active_record/association_reflection.rb
|
121
|
-
- lib/active_record/association_collection.rb
|
122
|
-
- lib/active_record/viewhints_validations_interceptor.rb
|
123
|
-
- bin/hobo
|
124
|
-
- tasks/hobo_tasks.rake
|
125
|
-
- tasks/environments.rake
|
126
|
-
- LICENSE.txt
|
127
|
-
- README
|
128
|
-
files:
|
129
|
-
- lib/hobo.rb
|
130
|
-
- lib/hobo/lifecycles/state.rb
|
131
|
-
- lib/hobo/lifecycles/transition.rb
|
132
115
|
- lib/hobo/lifecycles/actions.rb
|
133
116
|
- lib/hobo/lifecycles/creator.rb
|
134
117
|
- lib/hobo/lifecycles/lifecycle.rb
|
135
|
-
- lib/hobo/
|
136
|
-
- lib/hobo/
|
137
|
-
- lib/hobo/
|
138
|
-
- lib/hobo/
|
139
|
-
- lib/hobo/
|
140
|
-
- lib/hobo/dryml/parser/tree_parser.rb
|
141
|
-
- lib/hobo/dryml/parser/attribute.rb
|
142
|
-
- lib/hobo/dryml/parser/text.rb
|
143
|
-
- lib/hobo/dryml/parser/base_parser.rb
|
144
|
-
- lib/hobo/dryml/parser/document.rb
|
145
|
-
- lib/hobo/dryml/parser/elements.rb
|
146
|
-
- lib/hobo/dryml/parser/element.rb
|
147
|
-
- lib/hobo/dryml/taglib.rb
|
148
|
-
- lib/hobo/dryml/dryml_support_controller.rb
|
149
|
-
- lib/hobo/dryml/dryml_builder.rb
|
150
|
-
- lib/hobo/dryml/dryml_doc.rb
|
151
|
-
- lib/hobo/dryml/part_context.rb
|
152
|
-
- lib/hobo/dryml/template.rb
|
153
|
-
- lib/hobo/dryml/dryml_generator.rb
|
154
|
-
- lib/hobo/dryml/scoped_variables.rb
|
118
|
+
- lib/hobo/lifecycles/state.rb
|
119
|
+
- lib/hobo/lifecycles/transition.rb
|
120
|
+
- lib/hobo/model.rb
|
121
|
+
- lib/hobo/model_controller.rb
|
122
|
+
- lib/hobo/model_router.rb
|
155
123
|
- lib/hobo/permissions.rb
|
156
|
-
- lib/hobo/guest.rb
|
157
|
-
- lib/hobo/user_controller.rb
|
158
|
-
- lib/hobo/rapid_helper.rb
|
159
|
-
- lib/hobo/tasks/rails.rb
|
160
124
|
- lib/hobo/permissions/associations.rb
|
161
|
-
- lib/hobo/
|
162
|
-
- lib/hobo/
|
163
|
-
- lib/hobo/scopes/named_scope_extensions.rb
|
125
|
+
- lib/hobo/rapid_helper.rb
|
126
|
+
- lib/hobo/scopes.rb
|
164
127
|
- lib/hobo/scopes/apply_scopes.rb
|
165
|
-
- lib/hobo/scopes/automatic_scopes.rb
|
166
128
|
- lib/hobo/scopes/association_proxy_extensions.rb
|
167
|
-
- lib/hobo/
|
168
|
-
- lib/hobo/
|
169
|
-
- lib/hobo/
|
170
|
-
- lib/hobo/
|
129
|
+
- lib/hobo/scopes/automatic_scopes.rb
|
130
|
+
- lib/hobo/scopes/named_scope_extensions.rb
|
131
|
+
- lib/hobo/static_tags
|
132
|
+
- lib/hobo/tasks/rails.rb
|
171
133
|
- lib/hobo/undefined.rb
|
172
|
-
- lib/hobo/user.rb
|
173
|
-
- lib/hobo/dryml.rb
|
174
134
|
- lib/hobo/undefined_access_error.rb
|
175
|
-
- lib/hobo/
|
176
|
-
- lib/hobo/
|
177
|
-
- lib/hobo/accessible_associations.rb
|
178
|
-
- lib/hobo/scopes.rb
|
135
|
+
- lib/hobo/user.rb
|
136
|
+
- lib/hobo/user_controller.rb
|
179
137
|
- lib/hobo/view_hints.rb
|
180
|
-
-
|
181
|
-
-
|
182
|
-
-
|
183
|
-
- lib/hobo/model_controller.rb
|
184
|
-
- lib/hobo/model.rb
|
185
|
-
- lib/action_view_extensions/helpers/tag_helper.rb
|
186
|
-
- lib/active_record/association_proxy.rb
|
187
|
-
- lib/active_record/association_reflection.rb
|
188
|
-
- lib/active_record/association_collection.rb
|
189
|
-
- lib/active_record/viewhints_validations_interceptor.rb
|
190
|
-
- bin/hobo
|
191
|
-
- Rakefile
|
192
|
-
- tasks/hobo_tasks.rake
|
193
|
-
- tasks/environments.rake
|
194
|
-
- CHANGES.txt
|
195
|
-
- taglibs/rapid_document_tags.dryml
|
196
|
-
- taglibs/rapid_support.dryml
|
197
|
-
- taglibs/rapid_navigation.dryml
|
198
|
-
- taglibs/rapid_generics.dryml
|
199
|
-
- taglibs/rapid_user_pages.dryml
|
200
|
-
- taglibs/core.dryml
|
201
|
-
- taglibs/rapid_lifecycles.dryml
|
202
|
-
- taglibs/rapid.dryml
|
203
|
-
- taglibs/rapid_editing.dryml
|
204
|
-
- taglibs/rapid_pages.dryml
|
205
|
-
- taglibs/rapid_core.dryml
|
206
|
-
- taglibs/rapid_forms.dryml
|
207
|
-
- taglibs/rapid_plus.dryml
|
208
|
-
- rails_generators/hobo_user_controller/templates/functional_test.rb
|
209
|
-
- rails_generators/hobo_user_controller/templates/helper.rb
|
210
|
-
- rails_generators/hobo_user_controller/templates/controller.rb
|
211
|
-
- rails_generators/hobo_user_controller/USAGE
|
212
|
-
- rails_generators/hobo_user_controller/hobo_user_controller_generator.rb
|
213
|
-
- rails_generators/hobo_rapid/templates/IE7.js
|
214
|
-
- rails_generators/hobo_rapid/templates/reset.css
|
215
|
-
- rails_generators/hobo_rapid/templates/blank.gif
|
216
|
-
- rails_generators/hobo_rapid/templates/lowpro.js
|
217
|
-
- rails_generators/hobo_rapid/templates/ie7-recalc.js
|
218
|
-
- rails_generators/hobo_rapid/templates/hobo-rapid.js
|
219
|
-
- rails_generators/hobo_rapid/templates/themes/clean/views/clean.dryml
|
220
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css
|
221
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/rapid-ui.css
|
222
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/fieldbg.gif
|
223
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/pencil.png
|
224
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/50-ACD3E6-fff.png
|
225
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/small_close.png
|
226
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/100-3B5F87-ACD3E6.png
|
227
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/300-ACD3E6-fff.png
|
228
|
-
- rails_generators/hobo_rapid/templates/themes/clean/public/images/spinner.gif
|
229
|
-
- rails_generators/hobo_rapid/templates/hobo-rapid.css
|
230
|
-
- rails_generators/hobo_rapid/hobo_rapid_generator.rb
|
138
|
+
- rails_generators/hobo/hobo_generator.rb
|
139
|
+
- rails_generators/hobo/templates/application.css
|
140
|
+
- rails_generators/hobo/templates/application.dryml
|
231
141
|
- rails_generators/hobo/templates/dryml-support.js
|
232
142
|
- rails_generators/hobo/templates/guest.rb
|
233
|
-
- rails_generators/hobo/templates/application.dryml
|
234
143
|
- rails_generators/hobo/templates/initializer.rb
|
235
|
-
- rails_generators/
|
236
|
-
- rails_generators/
|
144
|
+
- rails_generators/hobo_admin_site/hobo_admin_site_generator.rb
|
145
|
+
- rails_generators/hobo_admin_site/templates/admin.css
|
146
|
+
- rails_generators/hobo_admin_site/templates/application.dryml
|
147
|
+
- rails_generators/hobo_admin_site/templates/controller.rb
|
148
|
+
- rails_generators/hobo_admin_site/templates/site_taglib.dryml
|
149
|
+
- rails_generators/hobo_admin_site/templates/users_index.dryml
|
150
|
+
- rails_generators/hobo_front_controller/USAGE
|
237
151
|
- rails_generators/hobo_front_controller/hobo_front_controller_generator.rb
|
152
|
+
- rails_generators/hobo_front_controller/templates/controller.rb
|
238
153
|
- rails_generators/hobo_front_controller/templates/functional_test.rb
|
239
154
|
- rails_generators/hobo_front_controller/templates/helper.rb
|
240
|
-
- rails_generators/hobo_front_controller/templates/controller.rb
|
241
155
|
- rails_generators/hobo_front_controller/templates/index.dryml
|
242
|
-
- rails_generators/
|
243
|
-
- rails_generators/
|
244
|
-
- rails_generators/hobo_user_model/templates/fixtures.yml
|
245
|
-
- rails_generators/hobo_user_model/templates/unit_test.rb
|
246
|
-
- rails_generators/hobo_user_model/templates/forgot_password.erb
|
247
|
-
- rails_generators/hobo_user_model/templates/model.rb
|
248
|
-
- rails_generators/hobo_user_model/USAGE
|
249
|
-
- rails_generators/hobo_user_model/hobo_user_model_generator.rb
|
156
|
+
- rails_generators/hobo_model/USAGE
|
157
|
+
- rails_generators/hobo_model/hobo_model_generator.rb
|
250
158
|
- rails_generators/hobo_model/templates/fixtures.yml
|
251
|
-
- rails_generators/hobo_model/templates/unit_test.rb
|
252
159
|
- rails_generators/hobo_model/templates/hints.rb
|
253
160
|
- rails_generators/hobo_model/templates/model.rb
|
254
|
-
- rails_generators/hobo_model/
|
255
|
-
- rails_generators/hobo_model/hobo_model_generator.rb
|
256
|
-
- rails_generators/hobo_model_controller/templates/functional_test.rb
|
257
|
-
- rails_generators/hobo_model_controller/templates/helper.rb
|
258
|
-
- rails_generators/hobo_model_controller/templates/controller.rb
|
161
|
+
- rails_generators/hobo_model/templates/unit_test.rb
|
259
162
|
- rails_generators/hobo_model_controller/USAGE
|
260
163
|
- rails_generators/hobo_model_controller/hobo_model_controller_generator.rb
|
164
|
+
- rails_generators/hobo_model_controller/templates/controller.rb
|
165
|
+
- rails_generators/hobo_model_controller/templates/functional_test.rb
|
166
|
+
- rails_generators/hobo_model_controller/templates/helper.rb
|
167
|
+
- rails_generators/hobo_model_resource/hobo_model_resource_generator.rb
|
168
|
+
- rails_generators/hobo_model_resource/templates/controller.rb
|
261
169
|
- rails_generators/hobo_model_resource/templates/functional_test.rb
|
262
170
|
- rails_generators/hobo_model_resource/templates/helper.rb
|
263
|
-
- rails_generators/
|
264
|
-
- rails_generators/
|
171
|
+
- rails_generators/hobo_rapid/hobo_rapid_generator.rb
|
172
|
+
- rails_generators/hobo_rapid/templates/IE7.js
|
173
|
+
- rails_generators/hobo_rapid/templates/blank.gif
|
174
|
+
- rails_generators/hobo_rapid/templates/hobo-rapid.css
|
175
|
+
- rails_generators/hobo_rapid/templates/hobo-rapid.js
|
176
|
+
- rails_generators/hobo_rapid/templates/ie7-recalc.js
|
177
|
+
- rails_generators/hobo_rapid/templates/lowpro.js
|
178
|
+
- rails_generators/hobo_rapid/templates/reset.css
|
179
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/101-3B5F87-ACD3E6.png
|
180
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/30-3E547A-242E42.png
|
181
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/30-DBE1E5-FCFEF5.png
|
182
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/300-ACD3E6-fff.png
|
183
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/50-ACD3E6-fff.png
|
184
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/fieldbg.gif
|
185
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/pencil.png
|
186
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/small_close.png
|
187
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/images/spinner.gif
|
188
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css
|
189
|
+
- rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/rapid-ui.css
|
190
|
+
- rails_generators/hobo_rapid/templates/themes/clean/views/clean.dryml
|
191
|
+
- rails_generators/hobo_subsite/hobo_subsite_generator.rb
|
265
192
|
- rails_generators/hobo_subsite/templates/application.dryml
|
266
193
|
- rails_generators/hobo_subsite/templates/controller.rb
|
267
194
|
- rails_generators/hobo_subsite/templates/site_taglib.dryml
|
268
|
-
- rails_generators/
|
269
|
-
-
|
270
|
-
-
|
271
|
-
-
|
195
|
+
- rails_generators/hobo_user_controller/USAGE
|
196
|
+
- rails_generators/hobo_user_controller/hobo_user_controller_generator.rb
|
197
|
+
- rails_generators/hobo_user_controller/templates/accept_invitation.dryml
|
198
|
+
- rails_generators/hobo_user_controller/templates/controller.rb
|
199
|
+
- rails_generators/hobo_user_controller/templates/functional_test.rb
|
200
|
+
- rails_generators/hobo_user_controller/templates/helper.rb
|
201
|
+
- rails_generators/hobo_user_model/USAGE
|
202
|
+
- rails_generators/hobo_user_model/hobo_user_model_generator.rb
|
203
|
+
- rails_generators/hobo_user_model/templates/fixtures.yml
|
204
|
+
- rails_generators/hobo_user_model/templates/forgot_password.erb
|
205
|
+
- rails_generators/hobo_user_model/templates/invite.erb
|
206
|
+
- rails_generators/hobo_user_model/templates/mailer.rb
|
207
|
+
- rails_generators/hobo_user_model/templates/model.rb
|
208
|
+
- rails_generators/hobo_user_model/templates/unit_test.rb
|
272
209
|
- script/destroy
|
273
210
|
- script/generate
|
274
|
-
-
|
275
|
-
-
|
276
|
-
-
|
277
|
-
-
|
211
|
+
- taglibs/core.dryml
|
212
|
+
- taglibs/rapid.dryml
|
213
|
+
- taglibs/rapid_core.dryml
|
214
|
+
- taglibs/rapid_document_tags.dryml
|
215
|
+
- taglibs/rapid_editing.dryml
|
216
|
+
- taglibs/rapid_forms.dryml
|
217
|
+
- taglibs/rapid_generics.dryml
|
218
|
+
- taglibs/rapid_lifecycles.dryml
|
219
|
+
- taglibs/rapid_navigation.dryml
|
220
|
+
- taglibs/rapid_pages.dryml
|
221
|
+
- taglibs/rapid_plus.dryml
|
222
|
+
- taglibs/rapid_support.dryml
|
223
|
+
- taglibs/rapid_user_pages.dryml
|
224
|
+
- tasks/environments.rake
|
225
|
+
- tasks/hobo_tasks.rake
|
226
|
+
- test/generators/test_generator_helper.rb
|
227
|
+
- test/generators/test_helper.rb
|
228
|
+
- test/generators/test_hobo_model_controller_generator.rb
|
278
229
|
- test/permissions/models/models.rb
|
279
230
|
- test/permissions/models/schema.rb
|
280
231
|
- test/permissions/test_permissions.rb
|
281
|
-
- test/generators/test_hobo_model_controller_generator.rb
|
282
|
-
- test/generators/test_generator_helper.rb
|
283
|
-
- test/generators/test_helper.rb
|
284
|
-
- hobo.gemspec
|
285
232
|
has_rdoc: true
|
286
233
|
homepage: http://hobocentral.net/
|
234
|
+
licenses: []
|
235
|
+
|
287
236
|
post_install_message:
|
288
237
|
rdoc_options:
|
289
|
-
- --
|
290
|
-
- --inline-source
|
291
|
-
- --title
|
292
|
-
- Hobo
|
293
|
-
- --main
|
294
|
-
- README
|
238
|
+
- --charset=UTF-8
|
295
239
|
require_paths:
|
296
240
|
- lib
|
297
241
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -304,17 +248,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
304
248
|
requirements:
|
305
249
|
- - ">="
|
306
250
|
- !ruby/object:Gem::Version
|
307
|
-
version: "
|
251
|
+
version: "0"
|
308
252
|
version:
|
309
253
|
requirements: []
|
310
254
|
|
311
255
|
rubyforge_project: hobo
|
312
|
-
rubygems_version: 1.3.
|
256
|
+
rubygems_version: 1.3.5
|
313
257
|
signing_key:
|
314
|
-
specification_version:
|
258
|
+
specification_version: 3
|
315
259
|
summary: The web app builder for Rails
|
316
|
-
test_files:
|
317
|
-
|
318
|
-
- test/generators/test_helper.rb
|
319
|
-
- test/generators/test_hobo_model_controller_generator.rb
|
320
|
-
- test/permissions/test_permissions.rb
|
260
|
+
test_files: []
|
261
|
+
|