hobo 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.txt +131 -0
- data/Manifest +1 -2
- data/Rakefile +3 -3
- data/dryml_generators/rapid/cards.dryml.erb +1 -1
- data/dryml_generators/rapid/forms.dryml.erb +3 -1
- data/dryml_generators/rapid/pages.dryml.erb +8 -5
- data/hobo.gemspec +8 -8
- data/lib/active_record/association_collection.rb +5 -2
- data/lib/active_record/association_reflection.rb +14 -5
- data/lib/hobo.rb +1 -1
- data/lib/hobo/controller.rb +6 -5
- data/lib/hobo/dryml.rb +4 -4
- data/lib/hobo/dryml/taglib.rb +7 -3
- data/lib/hobo/dryml/template_environment.rb +7 -7
- data/lib/hobo/hobo_helper.rb +31 -15
- data/lib/hobo/include_in_save.rb +9 -1
- data/lib/hobo/lifecycles.rb +0 -7
- data/lib/hobo/lifecycles/creator.rb +1 -1
- data/lib/hobo/lifecycles/lifecycle.rb +8 -3
- data/lib/hobo/mass_assignment.rb +64 -0
- data/lib/hobo/model.rb +41 -17
- data/lib/hobo/model_controller.rb +76 -25
- data/lib/hobo/model_router.rb +10 -13
- data/lib/hobo/user.rb +13 -13
- data/rails_generators/hobo_model/hobo_model_generator.rb +4 -0
- data/rails_generators/hobo_model/templates/model.rb +1 -1
- data/rails_generators/hobo_rapid/hobo_rapid_generator.rb +0 -2
- data/rails_generators/hobo_rapid/templates/hobo-rapid.js +180 -43
- data/rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/clean.css +25 -4
- data/rails_generators/hobo_rapid/templates/themes/clean/public/stylesheets/rapid-ui.css +0 -2
- data/taglibs/core.dryml +8 -5
- data/taglibs/rapid.dryml +9 -5
- data/taglibs/rapid_document_tags.dryml +1 -1
- data/taglibs/rapid_editing.dryml +1 -1
- data/taglibs/rapid_forms.dryml +108 -32
- data/taglibs/rapid_generics.dryml +2 -2
- data/taglibs/rapid_lifecycles.dryml +0 -18
- data/taglibs/rapid_user_pages.dryml +8 -41
- metadata +7 -7
- data/rails_generators/hobo_rapid/templates/nicEditorIcons.gif +0 -0
- data/rails_generators/hobo_rapid/templates/nicedit.js +0 -91
data/CHANGES.txt
CHANGED
@@ -1,3 +1,134 @@
|
|
1
|
+
=== Hobo 0.8.3 ===
|
2
|
+
|
3
|
+
Hobo models -- improvements to logic for validating passwords. Closes #281
|
4
|
+
|
5
|
+
Hobo users -- simpler definition of account_active?
|
6
|
+
|
7
|
+
This assumes the user has the default lifecycle or similar. If the lifecycle is cusomtised this method can be overridden
|
8
|
+
|
9
|
+
Lifecycles -- Make current creator/transition available as lifecycle.active_step
|
10
|
+
|
11
|
+
Lifecycles -- user a safer name for methods to test if the lifecycle is in a given state
|
12
|
+
|
13
|
+
Now record.lifecycle.is_active? instead of record.lifecycle.active?
|
14
|
+
|
15
|
+
Lifecycles -- become method should not polute AR namespace (use lifecycle.become)
|
16
|
+
|
17
|
+
Models -- to_param should always return a string. Closes #280
|
18
|
+
|
19
|
+
Rapid -- <login-page> -- "remember me" is now on by default
|
20
|
+
|
21
|
+
Fixed typo in <forgot-password-page>. Thanks to Jakub Suder
|
22
|
+
|
23
|
+
Fixes and Clean theme improvements for site-wide live-search. Closes #290
|
24
|
+
|
25
|
+
Removing hobo_spec - test will live in hobo/test, hobofields/test as is normal
|
26
|
+
|
27
|
+
Adding close button (also, keyboard = ESC) to live-search popup
|
28
|
+
|
29
|
+
Models -- classes for polymorphic assciations (e.g. Tagging::ble) are now automatically created instead of blowing up when
|
30
|
+
calling reflection.klass. Closes #83
|
31
|
+
|
32
|
+
Removed nicedit - we've moved to a plugin based system for rich editors now (see github.com/tablatom/hoboyui)
|
33
|
+
|
34
|
+
Rapid -- the select menus in <select-many> now observe conditions applied to the has_many :through
|
35
|
+
|
36
|
+
Rapid -- fix to double-escaping of names in <select-one>
|
37
|
+
|
38
|
+
merge-attrs on <section-group>
|
39
|
+
|
40
|
+
Rapid -- added if-present attribute to <name> to supress the nil-view if there is no name
|
41
|
+
|
42
|
+
Used in <name-one> to ensure the input box is blank
|
43
|
+
|
44
|
+
Improved support for validation in multi-model-forms
|
45
|
+
|
46
|
+
Added support for owner actions where the owner is a has_many :through (was only for :belongs_to owners)
|
47
|
+
|
48
|
+
Rapid -- improvements to index-for-owner page
|
49
|
+
|
50
|
+
Rapid -- renamed <card> parameter from 'description' to 'content'
|
51
|
+
|
52
|
+
Rapid -- adding multipart attribute to <form>. Usage: <form multipart>
|
53
|
+
|
54
|
+
Model Controller -- fix to :redirect option for hobo actions
|
55
|
+
|
56
|
+
DRYML -- fix to dom_id helper when this_parent is a collection
|
57
|
+
|
58
|
+
Model Controller -- improved remember_page_path to also remember the query string
|
59
|
+
|
60
|
+
Rapid - fix to <remote-method-button> -- the confirm attribute was incorrectly changing the button into an ajax button
|
61
|
+
|
62
|
+
Rapid -- <select-menu> now supports an array of label/value pairs, like the options_for_select helper
|
63
|
+
|
64
|
+
Model Controller -- Now remembers the previous page path in the session and uses this to fix a problem with
|
65
|
+
<after-submit stay-here/> (occured after a validation error)
|
66
|
+
|
67
|
+
New tag <input-all> for situations where you want input for every item in an existing collection (without the +/- buttons that
|
68
|
+
<input-many> has)
|
69
|
+
|
70
|
+
HoboSupport -- enum.rest now returns [] for an empty enumerable (was nil)
|
71
|
+
|
72
|
+
Rapid + DRYML -- recfactoring the way DRYML keep track of which form field names.
|
73
|
+
|
74
|
+
It's now possible to track these for a sub-object by setting a new scoped variable form_field_names
|
75
|
+
|
76
|
+
Rapid -- enhancements to <name-one>:
|
77
|
+
|
78
|
+
- sensible defaults for complete-target and completer
|
79
|
+
(you can now use <name-one> as a drop-in replacement for <select-one>
|
80
|
+
|
81
|
+
- The <name> of the referenced object is included in the input box if there is one
|
82
|
+
|
83
|
+
Rapid -- improved grammar (use of 'a' or 'an') in <select-many>
|
84
|
+
|
85
|
+
Model controller autocompleter enhancement -- you can ommit the name of the autocompleter, in which case it defaults to the
|
86
|
+
model's name_attribute
|
87
|
+
|
88
|
+
Hobo Model -- more robust handling of date hashes
|
89
|
+
|
90
|
+
Support in Rapid and javascript for <input-many>
|
91
|
+
|
92
|
+
It's now very easy to embed form fields for items in a has_many collection.
|
93
|
+
These use javascript + and - buttons, but this does not use ajax.
|
94
|
+
|
95
|
+
Hobo models -- improved support for mass assignment to has_many associations.
|
96
|
+
|
97
|
+
Any has_many association can now be assigned a hash. The keys are *only* for ordering purposes.
|
98
|
+
The values are themsleves hashes of attributes.
|
99
|
+
New records are created for any such hash that has no :id key
|
100
|
+
|
101
|
+
Hobo model -- fix to has_one extension (was discarding the block)
|
102
|
+
|
103
|
+
DRYML - New behaviour for context_map (repeat):
|
104
|
+
this_field is now the index (0 based) when iterating over a collection.
|
105
|
+
New helpers (HoboHelper) first_item? and last_item?
|
106
|
+
|
107
|
+
DRYML - fix to loading of nested taglibs
|
108
|
+
|
109
|
+
Rapid user pages -- don't show forgot-password link if the route is not present
|
110
|
+
|
111
|
+
<empty-collection-message> should use <div> instead of <p>, otherwise block level elements won't be allowed inside and Firefox
|
112
|
+
will sometimes treat them as if they are outside
|
113
|
+
|
114
|
+
Rapid page generators -- added param to <field-names-where-true> on <show-page>
|
115
|
+
|
116
|
+
DRYML - fix to using <extend> in a taglib included by a taglib
|
117
|
+
|
118
|
+
Migration generator -- convert spaces to _ when responding to rename questions
|
119
|
+
|
120
|
+
Rapid user pages -- made forgot-password link a param
|
121
|
+
|
122
|
+
hobo_model generator -- formatting improvement
|
123
|
+
|
124
|
+
Model Controller -- new :redirect option for controller actions
|
125
|
+
|
126
|
+
Use the rails 'pick_template' mechanism to determine the correct template path when rendering a DRYML view
|
127
|
+
|
128
|
+
Rapid generators -- adding missing <error-messages/> tags to lifecycle forms
|
129
|
+
|
130
|
+
|
131
|
+
|
1
132
|
=== Hobo 0.8.2 ===
|
2
133
|
|
3
134
|
Hobo models -- improvement to name-in-URL (#to_param)
|
data/Manifest
CHANGED
@@ -45,6 +45,7 @@ lib/hobo/lifecycles/lifecycle.rb
|
|
45
45
|
lib/hobo/lifecycles/state.rb
|
46
46
|
lib/hobo/lifecycles/transition.rb
|
47
47
|
lib/hobo/lifecycles.rb
|
48
|
+
lib/hobo/mass_assignment.rb
|
48
49
|
lib/hobo/model.rb
|
49
50
|
lib/hobo/model_controller.rb
|
50
51
|
lib/hobo/model_router.rb
|
@@ -96,8 +97,6 @@ rails_generators/hobo_rapid/templates/hobo-rapid.css
|
|
96
97
|
rails_generators/hobo_rapid/templates/hobo-rapid.js
|
97
98
|
rails_generators/hobo_rapid/templates/IE7.js
|
98
99
|
rails_generators/hobo_rapid/templates/lowpro.js
|
99
|
-
rails_generators/hobo_rapid/templates/nicedit.js
|
100
|
-
rails_generators/hobo_rapid/templates/nicEditorIcons.gif
|
101
100
|
rails_generators/hobo_rapid/templates/reset.css
|
102
101
|
rails_generators/hobo_rapid/templates/themes/clean/public/images/fieldbg.gif
|
103
102
|
rails_generators/hobo_rapid/templates/themes/clean/public/images/pencil.png
|
data/Rakefile
CHANGED
@@ -42,11 +42,11 @@ Echoe.new('hobo') do |p|
|
|
42
42
|
p.project = "hobo"
|
43
43
|
|
44
44
|
p.changelog = "CHANGES.txt"
|
45
|
-
p.version = "0.8.
|
45
|
+
p.version = "0.8.3"
|
46
46
|
|
47
47
|
p.dependencies = [
|
48
|
-
'hobosupport >=0.8.
|
49
|
-
'hobofields >=0.8.
|
48
|
+
'hobosupport >=0.8.3',
|
49
|
+
'hobofields >=0.8.3',
|
50
50
|
'rails >=2.1',
|
51
51
|
'mislav-will_paginate >=2.2.1']
|
52
52
|
|
@@ -37,7 +37,7 @@ has_body = (!show_link && content_attribute) || creator_link || creator_attri
|
|
37
37
|
<% if has_body -%>
|
38
38
|
<body: param>
|
39
39
|
<% if !show_link && content_attribute -%>
|
40
|
-
<view:<%= content_attribute %> param="
|
40
|
+
<view:<%= content_attribute %> param="content"/>
|
41
41
|
<% end -%>
|
42
42
|
<% if creator_link -%>
|
43
43
|
<a:<%= creator_attribute %> param="creator-link"/>
|
@@ -7,7 +7,7 @@ cancel_to_index_page = !cancel_to_index_page && linkable?(:index)
|
|
7
7
|
-%>
|
8
8
|
<def tag="form" for="<%= model.name %>">
|
9
9
|
<form merge param="default">
|
10
|
-
<error-messages/>
|
10
|
+
<error-messages param/>
|
11
11
|
<field-list fields="<%= form_fields * ', ' %>" param/>
|
12
12
|
<div param="actions">
|
13
13
|
<submit label="Save" param/><or-cancel param="cancel"/>
|
@@ -20,6 +20,7 @@ cancel_to_index_page = !cancel_to_index_page && linkable?(:index)
|
|
20
20
|
<def tag="<%= creator.name.dasherize %>-form" polymorphic/>
|
21
21
|
<def tag="<%= creator.name.dasherize %>-form" for="<%= model.name %>">
|
22
22
|
<form lifecycle="<%= creator.name %>">
|
23
|
+
<error-messages param/>
|
23
24
|
<field-list fields="<%= creator.parameters * ', ' %>" param/>
|
24
25
|
<div param="actions">
|
25
26
|
<submit label="<%= creator.name.titleize %>" param/><or-cancel param="cancel"/>
|
@@ -32,6 +33,7 @@ cancel_to_index_page = !cancel_to_index_page && linkable?(:index)
|
|
32
33
|
<def tag="<%= transition.name.dasherize %>-form" polymorphic/>
|
33
34
|
<def tag="<%= transition.name.dasherize %>-form" for="<%= model.name %>">
|
34
35
|
<form lifecycle="<%= transition.name %>">
|
36
|
+
<error-messages param/>
|
35
37
|
<input type="hidden" name="key" value="&this.lifecycle.provided_key" if="&this.lifecycle.provided_key"/>
|
36
38
|
<field-list fields="<%= transition.parameters * ', ' %>" param/>
|
37
39
|
<div param="actions">
|
@@ -97,7 +97,7 @@ end
|
|
97
97
|
<h2 param="heading"><name/></h2>
|
98
98
|
<% if boolean_fields.any? -%>
|
99
99
|
|
100
|
-
<field-names-where-true fields="<%= boolean_fields * ', ' %>"/>
|
100
|
+
<field-names-where-true fields="<%= boolean_fields * ', ' %>" param/>
|
101
101
|
<% end -%>
|
102
102
|
<% if creator_link -%>
|
103
103
|
|
@@ -176,8 +176,10 @@ name_attribute = model.name_attribute
|
|
176
176
|
<%
|
177
177
|
collection_name = model.reverse_reflection(owner).name.to_s
|
178
178
|
owner_model = model.reflections[owner].klass
|
179
|
-
|
180
|
-
|
179
|
+
linkable_owner = linkable?(owner_model, :show)
|
180
|
+
owner_tag = linkable_owner ? "a" : "name"
|
181
|
+
|
182
|
+
owner = model.reflections[owner].macro == :has_many ? owner.to_s.singularize : owner.to_s
|
181
183
|
-%>
|
182
184
|
<% if :index.in? actions -%>
|
183
185
|
<%
|
@@ -185,13 +187,14 @@ new_link = :new.in?(actions)
|
|
185
187
|
-%>
|
186
188
|
<def tag="index-for-<%= owner.dasherize %>-page" polymorphic/>
|
187
189
|
<def tag="index-for-<%= owner.dasherize %>-page" for="<%= model.name %>">
|
188
|
-
<page merge title="<%= model_name :title, :plural %> for #{name :with => @<%= owner
|
190
|
+
<page merge title="<%= model_name :title, :plural %> for #{name :with => @<%= owner %>, :no_wrapper => true}">
|
189
191
|
<body: class="index-for-owner-page <%= owner.dasherize %> <%= model_class %>" param/>
|
190
192
|
|
191
193
|
<content: param>
|
192
194
|
<header param="content-header">
|
193
|
-
|
195
|
+
<% if linkable_owner %><div param="back-to">Back to <a with="&@<%= owner %>"/></div><% end %>
|
194
196
|
<h2 param="heading"><%= model_name :title, :plural %></h2>
|
197
|
+
<h3 param="subheading">For: <<%= owner_tag %> with="&@<%= owner %>"/></h3>
|
195
198
|
|
196
199
|
<p param="count" if>There <count prefix="are"/></p>
|
197
200
|
</header>
|
data/hobo.gemspec
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
|
2
|
-
# Gem::Specification for Hobo-0.8.
|
2
|
+
# Gem::Specification for Hobo-0.8.3
|
3
3
|
# Originally generated by Echoe
|
4
4
|
|
5
5
|
--- !ruby/object:Gem::Specification
|
6
6
|
name: hobo
|
7
7
|
version: !ruby/object:Gem::Version
|
8
|
-
version: 0.8.
|
8
|
+
version: 0.8.3
|
9
9
|
platform: ruby
|
10
10
|
authors:
|
11
11
|
- Tom Locke
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
|
15
|
-
date: 2008-
|
15
|
+
date: 2008-10-15 00:00:00 +01:00
|
16
16
|
default_executable:
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
@@ -23,7 +23,7 @@ dependencies:
|
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.8.
|
26
|
+
version: 0.8.3
|
27
27
|
version:
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: hobofields
|
@@ -33,7 +33,7 @@ dependencies:
|
|
33
33
|
requirements:
|
34
34
|
- - ">="
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.8.
|
36
|
+
version: 0.8.3
|
37
37
|
version:
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: rails
|
@@ -104,6 +104,7 @@ extra_rdoc_files:
|
|
104
104
|
- lib/hobo/lifecycles/state.rb
|
105
105
|
- lib/hobo/lifecycles/transition.rb
|
106
106
|
- lib/hobo/lifecycles.rb
|
107
|
+
- lib/hobo/mass_assignment.rb
|
107
108
|
- lib/hobo/model.rb
|
108
109
|
- lib/hobo/model_controller.rb
|
109
110
|
- lib/hobo/model_router.rb
|
@@ -174,6 +175,7 @@ files:
|
|
174
175
|
- lib/hobo/lifecycles/state.rb
|
175
176
|
- lib/hobo/lifecycles/transition.rb
|
176
177
|
- lib/hobo/lifecycles.rb
|
178
|
+
- lib/hobo/mass_assignment.rb
|
177
179
|
- lib/hobo/model.rb
|
178
180
|
- lib/hobo/model_controller.rb
|
179
181
|
- lib/hobo/model_router.rb
|
@@ -225,8 +227,6 @@ files:
|
|
225
227
|
- rails_generators/hobo_rapid/templates/hobo-rapid.js
|
226
228
|
- rails_generators/hobo_rapid/templates/IE7.js
|
227
229
|
- rails_generators/hobo_rapid/templates/lowpro.js
|
228
|
-
- rails_generators/hobo_rapid/templates/nicedit.js
|
229
|
-
- rails_generators/hobo_rapid/templates/nicEditorIcons.gif
|
230
230
|
- rails_generators/hobo_rapid/templates/reset.css
|
231
231
|
- rails_generators/hobo_rapid/templates/themes/clean/public/images/fieldbg.gif
|
232
232
|
- rails_generators/hobo_rapid/templates/themes/clean/public/images/pencil.png
|
@@ -296,7 +296,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
296
296
|
version:
|
297
297
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
298
298
|
requirements:
|
299
|
-
- - "
|
299
|
+
- - ">="
|
300
300
|
- !ruby/object:Gem::Version
|
301
301
|
version: "1.2"
|
302
302
|
version:
|
@@ -34,7 +34,8 @@ module ActiveRecord
|
|
34
34
|
|
35
35
|
|
36
36
|
def proxy_respond_to_with_automatic_scopes?(method, include_priv = false)
|
37
|
-
proxy_respond_to_without_automatic_scopes?(method, include_priv) ||
|
37
|
+
proxy_respond_to_without_automatic_scopes?(method, include_priv) ||
|
38
|
+
(@reflection.klass.create_automatic_scope(method) if @reflection.klass.respond_to?(:create_automatic_scope))
|
38
39
|
end
|
39
40
|
alias_method_chain :proxy_respond_to?, :automatic_scopes
|
40
41
|
|
@@ -42,7 +43,9 @@ module ActiveRecord
|
|
42
43
|
private
|
43
44
|
|
44
45
|
def set_reverse_association(object)
|
45
|
-
if @owner.new_record? &&
|
46
|
+
if @owner.new_record? &&
|
47
|
+
(refl = @owner.class.reverse_reflection(@reflection.name)) &&
|
48
|
+
refl.macro == :belongs_to
|
46
49
|
bta = ActiveRecord::Associations::BelongsToAssociation.new(object, refl)
|
47
50
|
bta.replace(@owner)
|
48
51
|
object.instance_variable_set("@#{refl.name}", bta)
|
@@ -2,10 +2,19 @@ class ActiveRecord::Reflection::AssociationReflection
|
|
2
2
|
|
3
3
|
alias_method :association_name, :name
|
4
4
|
|
5
|
-
def
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
def klass_with_create_polymorphic_class
|
6
|
+
if options[:polymorphic]
|
7
|
+
begin
|
8
|
+
klass_without_create_polymorphic_class
|
9
|
+
rescue NameError => e
|
10
|
+
name = "#{active_record.name}::#{class_name}"
|
11
|
+
Object.class_eval "class #{name}; end"
|
12
|
+
active_record.const_get class_name
|
13
|
+
end
|
14
|
+
else
|
15
|
+
klass_without_create_polymorphic_class
|
16
|
+
end
|
9
17
|
end
|
10
|
-
|
18
|
+
alias_method_chain :klass, :create_polymorphic_class
|
19
|
+
|
11
20
|
end
|
data/lib/hobo.rb
CHANGED
data/lib/hobo/controller.rb
CHANGED
@@ -133,14 +133,15 @@ module Hobo
|
|
133
133
|
tag_renderer.send(name, options)
|
134
134
|
end
|
135
135
|
|
136
|
-
|
136
|
+
NO_SEARCH_RESULTS_HTML = "<p>Your search returned no matches.</p>"
|
137
137
|
def site_search(query)
|
138
|
-
|
139
|
-
|
140
|
-
|
138
|
+
results_hash = Hobo.find_by_search(query)
|
139
|
+
all_results = results_hash.values.flatten.select { |r| Hobo.can_view?(current_user, r, nil) }
|
140
|
+
if all_results.empty?
|
141
|
+
render :text => NO_SEARCH_RESULTS_HTML
|
141
142
|
else
|
142
143
|
# TODO: call one tag that renders all the search results with headings for each model
|
143
|
-
render_tags(
|
144
|
+
render_tags(all_results, :search_card, :for_type => true)
|
144
145
|
end
|
145
146
|
end
|
146
147
|
|
data/lib/hobo/dryml.rb
CHANGED
@@ -79,16 +79,16 @@ module Hobo
|
|
79
79
|
make_renderer_class("", page, local_names, DEFAULT_IMPORTS, included_taglibs)
|
80
80
|
@tag_page_renderer_classes[controller_class.name].new(page, view)
|
81
81
|
else
|
82
|
-
template_path =
|
83
|
-
|
84
|
-
mtime = File.mtime(
|
82
|
+
template_path = view.finder.pick_template(page, "dryml")
|
83
|
+
|
84
|
+
mtime = File.mtime(template_path)
|
85
85
|
renderer_class = @renderer_classes[page]
|
86
86
|
|
87
87
|
# do we need to recompile?
|
88
88
|
if (!renderer_class or # nothing cached?
|
89
89
|
(local_names - renderer_class.compiled_local_names).any? or # any new local names?
|
90
90
|
renderer_class.load_time < mtime) # cache out of date?
|
91
|
-
renderer_class = make_renderer_class(File.read(
|
91
|
+
renderer_class = make_renderer_class(File.read(template_path), template_path, local_names,
|
92
92
|
DEFAULT_IMPORTS, included_taglibs)
|
93
93
|
renderer_class.load_time = mtime
|
94
94
|
@renderer_classes[page] = renderer_class
|
data/lib/hobo/dryml/taglib.rb
CHANGED
@@ -67,13 +67,17 @@ module Hobo
|
|
67
67
|
@module = Module.new do
|
68
68
|
|
69
69
|
@tag_attrs = {}
|
70
|
-
@tag_aliases =
|
70
|
+
@tag_aliases = []
|
71
71
|
|
72
72
|
class << self
|
73
73
|
|
74
74
|
def included(base)
|
75
75
|
@tag_aliases.each do |tag, feature|
|
76
|
-
base.
|
76
|
+
if base.respond_to? :alias_method_chain_on_include
|
77
|
+
base.alias_method_chain_on_include tag, feature
|
78
|
+
else
|
79
|
+
base.send(:alias_method_chain, tag, feature)
|
80
|
+
end
|
77
81
|
end
|
78
82
|
end
|
79
83
|
|
@@ -83,7 +87,7 @@ module Hobo
|
|
83
87
|
attr_reader :tag_attrs
|
84
88
|
|
85
89
|
def alias_method_chain_on_include(tag, feature)
|
86
|
-
@tag_aliases[tag
|
90
|
+
@tag_aliases << [tag, feature]
|
87
91
|
end
|
88
92
|
|
89
93
|
end
|
@@ -136,7 +136,7 @@ module Hobo::Dryml
|
|
136
136
|
def dom_id(object=nil, attribute=nil)
|
137
137
|
if object.nil?
|
138
138
|
# nothing passed -- use context
|
139
|
-
if this_parent && this_field
|
139
|
+
if this_parent && this_field && !this_parent.respond_to?(:member_class)
|
140
140
|
object, attribute = this_parent, this_field
|
141
141
|
else
|
142
142
|
object = this
|
@@ -316,17 +316,17 @@ module Hobo::Dryml
|
|
316
316
|
def with_form_context
|
317
317
|
@_form_this = this
|
318
318
|
@_form_field_path = []
|
319
|
-
@_form_field_names = []
|
320
319
|
@_form_field_paths_by_object = { @_form_this => [] }
|
321
|
-
res =
|
322
|
-
|
323
|
-
|
324
|
-
|
320
|
+
res = scope.new_scope :in_form => true, :form_field_names => [] do
|
321
|
+
yield
|
322
|
+
end
|
323
|
+
@_form_this = @_form_field_path = @_form_field_paths_by_object = nil
|
324
|
+
res
|
325
325
|
end
|
326
326
|
|
327
327
|
|
328
328
|
def register_form_field(name)
|
329
|
-
|
329
|
+
scope.form_field_names << name
|
330
330
|
end
|
331
331
|
|
332
332
|
|