hobo 0.8.8 → 0.8.9

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