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.
Files changed (58) hide show
  1. data/CHANGES.txt +34 -0
  2. data/Rakefile +30 -24
  3. data/bin/hobo +30 -10
  4. data/doctest/hobo/hobo_helper.rdoctest +92 -0
  5. data/doctest/hobo/lifecycles.rdoctest +261 -0
  6. data/doctest/scopes.rdoctest +387 -0
  7. data/dryml_generators/rapid/forms.dryml.erb +3 -3
  8. data/dryml_generators/rapid/pages.dryml.erb +4 -4
  9. data/lib/active_record/viewhints_validations_interceptor.rb +1 -1
  10. data/lib/hobo.rb +1 -1
  11. data/lib/hobo/accessible_associations.rb +3 -3
  12. data/lib/hobo/authentication_support.rb +1 -1
  13. data/lib/hobo/dryml.rb +10 -0
  14. data/lib/hobo/dryml/taglib.rb +3 -5
  15. data/lib/hobo/hobo_helper.rb +3 -1
  16. data/lib/hobo/include_in_save.rb +1 -0
  17. data/lib/hobo/lifecycles/actions.rb +6 -2
  18. data/lib/hobo/model.rb +1 -1
  19. data/lib/hobo/model_controller.rb +34 -12
  20. data/lib/hobo/permissions.rb +1 -1
  21. data/lib/hobo/rapid_helper.rb +3 -0
  22. data/lib/hobo/scopes/association_proxy_extensions.rb +8 -2
  23. data/lib/hobo/scopes/automatic_scopes.rb +3 -3
  24. data/lib/hobo/user_controller.rb +2 -1
  25. data/rails_generators/hobo/hobo_generator.rb +1 -1
  26. data/rails_generators/hobo/templates/application.dryml +0 -2
  27. data/rails_generators/hobo_admin_site/hobo_admin_site_generator.rb +45 -0
  28. data/rails_generators/hobo_admin_site/templates/admin.css +2 -0
  29. data/rails_generators/hobo_admin_site/templates/application.dryml +1 -0
  30. data/rails_generators/hobo_admin_site/templates/controller.rb +13 -0
  31. data/rails_generators/hobo_admin_site/templates/site_taglib.dryml +32 -0
  32. data/rails_generators/hobo_admin_site/templates/users_index.dryml +5 -0
  33. data/rails_generators/hobo_front_controller/hobo_front_controller_generator.rb +7 -1
  34. data/rails_generators/hobo_front_controller/templates/index.dryml +16 -0
  35. data/rails_generators/hobo_rapid/hobo_rapid_generator.rb +31 -1
  36. data/rails_generators/hobo_rapid/templates/hobo-rapid.js +5 -3
  37. data/rails_generators/hobo_rapid/templates/lowpro.js +40 -21
  38. data/rails_generators/hobo_rapid/templates/themes/clean/public/images/101-3B5F87-ACD3E6.png +0 -0
  39. data/rails_generators/hobo_rapid/templates/themes/clean/public/images/30-3E547A-242E42.png +0 -0
  40. data/rails_generators/hobo_rapid/templates/themes/clean/public/images/30-DBE1E5-FCFEF5.png +0 -0
  41. data/rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css +12 -4
  42. data/rails_generators/hobo_subsite/hobo_subsite_generator.rb +1 -1
  43. data/rails_generators/hobo_user_controller/hobo_user_controller_generator.rb +22 -0
  44. data/rails_generators/hobo_user_controller/templates/accept_invitation.dryml +5 -0
  45. data/rails_generators/hobo_user_controller/templates/controller.rb +22 -0
  46. data/rails_generators/hobo_user_model/hobo_user_model_generator.rb +17 -1
  47. data/rails_generators/hobo_user_model/templates/invite.erb +9 -0
  48. data/rails_generators/hobo_user_model/templates/mailer.rb +15 -0
  49. data/rails_generators/hobo_user_model/templates/model.rb +31 -4
  50. data/taglibs/rapid_core.dryml +25 -6
  51. data/taglibs/rapid_forms.dryml +65 -24
  52. data/taglibs/rapid_lifecycles.dryml +1 -1
  53. data/taglibs/rapid_navigation.dryml +2 -2
  54. data/taglibs/rapid_plus.dryml +4 -3
  55. metadata +151 -210
  56. data/Manifest +0 -155
  57. data/hobo.gemspec +0 -46
  58. data/rails_generators/hobo_rapid/templates/themes/clean/public/images/100-3B5F87-ACD3E6.png +0 -0
@@ -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 || this.is_a?(HoboFields::Text)
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 mergge-attrs/></def>
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
- p = c == 1 ? "is" : "are"
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
 
@@ -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 || Time.now, attributes.merge(:prefix => param_name_for_this, :order => order)) %>
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 || Time.now, attributes.merge(:prefix => param_name_for_this, :order => order)) %>
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 || Time.now, attributes.merge(:prefix => param_name_for_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
- select_options = options.map { |x| [x.to_s, x.id ] }
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
- - `complete-target`
642
- - `completer`
643
-
644
- In the simple case no attributes are needed, e.g.: `<name-one:category/>`.
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
- The completions are provided by the server with a GET request. The `complete-target` and `completer` attributes can be used to customise the URL for the request. For example:
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
- - If `completer` is a class, say `Product`: `/products/complete_name` (where `name` is the declared name attribute of `Product`)
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="#{param_name_for_this}[]" param="proto-hidden"/>
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="&param_name_for_this"/>
723
764
  <div class="item" param="item" repeat>
724
765
  <span><%= h this.to_s %></span>
725
- <input type="hidden" name="#{param_name}[]" value="@#{h this.id}" disabled="&disabled"
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="&current_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="&current_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, :prev_label => "&laquo; Prev") %>
88
+ <%= will_paginate this, attributes.symbolize_keys.reverse_merge(:inner_window => 2, :previous_label => "&laquo; Prev") %>
89
89
  </def>
@@ -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"><%= scope.field_name.titleize %></a>
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'">&uarr;</do>
38
39
  <do param="down-arrow" if="&sort_direction == 'asc'">&darr;</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? :page_count"/>
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.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-06-24 00:00:00 -04:00
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: hobosupport
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: 0.8.8
23
+ version: 2.2.2
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
- name: hobofields
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: 0.8.8
33
+ version: 2.2.1
34
34
  version:
35
35
  - !ruby/object:Gem::Dependency
36
- name: rails
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: 2.2.2
43
+ version: 0.8.9
44
44
  version:
45
45
  - !ruby/object:Gem::Dependency
46
- name: mislav-will_paginate
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: 2.2.1
53
+ version: 0.8.9
54
54
  version:
55
- description: The web app builder for Rails
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/lifecycles/state.rb
64
- - lib/hobo/lifecycles/transition.rb
65
- - lib/hobo/lifecycles/actions.rb
66
- - lib/hobo/lifecycles/creator.rb
67
- - lib/hobo/lifecycles/lifecycle.rb
68
- - lib/hobo/dryml/tag_parameters.rb
69
- - lib/hobo/dryml/template_environment.rb
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/taglib.rb
81
- - lib/hobo/dryml/dryml_support_controller.rb
82
- - lib/hobo/dryml/dryml_builder.rb
83
- - lib/hobo/dryml/dryml_doc.rb
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/permissions.rb
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/scopes/named_scope_extensions.rb
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/dryml/tag_parameters.rb
136
- - lib/hobo/dryml/template_environment.rb
137
- - lib/hobo/dryml/parser.rb
138
- - lib/hobo/dryml/template_handler.rb
139
- - lib/hobo/dryml/parser/source.rb
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/include_in_save.rb
162
- - lib/hobo/hobo_helper.rb
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/bundle.rb
168
- - lib/hobo/controller.rb
169
- - lib/hobo/find_for.rb
170
- - lib/hobo/lifecycles.rb
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/authentication_support.rb
176
- - lib/hobo/dev_controller.rb
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
- - lib/hobo/generator.rb
181
- - lib/hobo/static_tags
182
- - lib/hobo/model_router.rb
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/hobo/templates/application.css
236
- - rails_generators/hobo/hobo_generator.rb
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/hobo_front_controller/USAGE
243
- - rails_generators/hobo_user_model/templates/mailer.rb
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/USAGE
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/hobo_model_resource/templates/controller.rb
264
- - rails_generators/hobo_model_resource/hobo_model_resource_generator.rb
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/hobo_subsite/hobo_subsite_generator.rb
269
- - init.rb
270
- - LICENSE.txt
271
- - README
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
- - dryml_generators/rapid/forms.dryml.erb
275
- - dryml_generators/rapid/pages.dryml.erb
276
- - dryml_generators/rapid/cards.dryml.erb
277
- - Manifest
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
- - --line-numbers
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: "1.2"
251
+ version: "0"
308
252
  version:
309
253
  requirements: []
310
254
 
311
255
  rubyforge_project: hobo
312
- rubygems_version: 1.3.1
256
+ rubygems_version: 1.3.5
313
257
  signing_key:
314
- specification_version: 2
258
+ specification_version: 3
315
259
  summary: The web app builder for Rails
316
- test_files:
317
- - test/generators/test_generator_helper.rb
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
+