hobo 1.3.0.pre10 → 1.3.0.pre11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/generators/hobo/i18n/i18n_generator.rb +0 -8
- data/lib/hobo/helper/translations.rb +1 -6
- data/lib/hobo/rapid/generators/rapid/pages.dryml.erb +3 -3
- data/lib/hobo/rapid/taglibs/rapid_i18n.dryml +13 -21
- metadata +13 -14
- data/lib/generators/hobo/i18n/templates/default_count_injection.rb +0 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.0.
|
1
|
+
1.3.0.pre11
|
@@ -31,13 +31,5 @@ module Hobo
|
|
31
31
|
remove_file 'config/locales/en.yml'
|
32
32
|
end
|
33
33
|
|
34
|
-
def add_default_count_helper
|
35
|
-
return if File.read('app/helpers/application_helper.rb') =~ /def default_count\b/
|
36
|
-
inject_into_file 'app/helpers/application_helper.rb',
|
37
|
-
File.read( File.expand_path('../templates/default_count_injection.rb', __FILE__)),
|
38
|
-
:after => "module ApplicationHelper\n"
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
34
|
end
|
43
35
|
end
|
@@ -75,18 +75,13 @@ module Hobo
|
|
75
75
|
end
|
76
76
|
# add :"hobo.#{key}" as the first fallback
|
77
77
|
options[:default].unshift("hobo.#{subkey}".to_sym)
|
78
|
-
# set the count option in order to allow multiple pluralization
|
79
|
-
count = options.delete(:count)
|
80
|
-
count = default_count if count.blank?
|
81
|
-
c = count.try.to_i || count==:dynamic && klass.try.count
|
82
78
|
# translate the model
|
83
79
|
# the singularize method is used because Hobo does not keep the ActiveRecord convention in its tags
|
84
80
|
# no default needed because human_name defaults to the model name
|
85
81
|
# try because Hobo class is not an ActiveRecord::Base subclass
|
86
|
-
translated_pluralized_model = klass.try.model_name.try.human(:count=>
|
82
|
+
translated_pluralized_model = klass.try.model_name.try.human(:count=>options[:count])
|
87
83
|
options[:model] = translated_pluralized_model
|
88
84
|
end
|
89
|
-
options[:count] = c
|
90
85
|
|
91
86
|
key_prefix = "<span class='translation-key'>#{key}</span>" if defined?(HOBO_SHOW_LOCALE_KEYS) && HOBO_SHOW_LOCALE_KEYS
|
92
87
|
|
@@ -4,7 +4,7 @@
|
|
4
4
|
<navigation class="main-nav" merge-attrs param="default">
|
5
5
|
<nav-item href="#{base_url}/">Home</nav-item>
|
6
6
|
<% models.select { |m| linkable?(m, :index) }[0..4].each do |m| -%>
|
7
|
-
<nav-item with="&<%= m.name %>"><ht key="<%= m.name.tableize %>.nav_item"><model-name-human/></ht></nav-item>
|
7
|
+
<nav-item with="&<%= m.name %>"><ht key="<%= m.name.tableize %>.nav_item" count="100"><model-name-human count="100"/></ht></nav-item>
|
8
8
|
<% end -%>
|
9
9
|
</navigation>
|
10
10
|
</def>
|
@@ -21,7 +21,7 @@ model_key = model.name.tableize
|
|
21
21
|
-%>
|
22
22
|
|
23
23
|
<def tag="index-page" for="<%= model.name %>">
|
24
|
-
<page merge title="#{ht '<%= model_key %>.index.title', :default=>[model.model_name.human(:count=>
|
24
|
+
<page merge title="#{ht '<%= model_key %>.index.title', :default=>[model.model_name.human(:count=>100)] }">
|
25
25
|
<body: class="index-page <%= model_class %>" param/>
|
26
26
|
|
27
27
|
<content: param>
|
@@ -283,7 +283,7 @@ new_link = :new.in?(actions)
|
|
283
283
|
-%>
|
284
284
|
<def tag="index-for-<%= owner.dasherize %>-page" polymorphic/>
|
285
285
|
<def tag="index-for-<%= owner.dasherize %>-page" for="<%= model.name %>">
|
286
|
-
<page merge title="#{ht '<%= model_key %>.index_for_owner.title', :default=>['<%= sq_escape(model_name(:plural)) %> for']} #{name :with => @<%= owner %>, :no_wrapper => true}">
|
286
|
+
<page merge title="#{ht '<%= model_key %>.index_for_owner.title', :count=>100, :default=>['<%= sq_escape(model_name(:plural)) %> for']} #{name :with => @<%= owner %>, :no_wrapper => true}">
|
287
287
|
<body: class="index-for-owner-page <%= owner.dasherize %> <%= model_class %>" param/>
|
288
288
|
<content: param>
|
289
289
|
<header param="content-header">
|
@@ -12,7 +12,7 @@ There is a default :count => 1
|
|
12
12
|
-->
|
13
13
|
<def tag="t"><%=
|
14
14
|
options = {}
|
15
|
-
|
15
|
+
all_attributes.each_pair{|k,v| options[k.to_sym] = h(v)}
|
16
16
|
k = options.delete(:key)
|
17
17
|
I18n.t(k, {:default=>all_parameters.default}.merge(options)).html_safe
|
18
18
|
%></def>
|
@@ -23,21 +23,16 @@ It dynamically pluralizes the human name by using the implicit model.count.
|
|
23
23
|
#### Attributes
|
24
24
|
|
25
25
|
- model - (optional) should be a model class or a record object (default to this)
|
26
|
-
- count - (optional) used to pick the inflected string for the model. It should be an integer
|
27
|
-
or the symbol :dynamic if you want to have the pluralization consistent with the model.count.
|
28
|
-
If you don't pass any count it uses the ApplicationHelper#default_count.
|
26
|
+
- count - (optional) used to pick the inflected string for the model. It should be an integer.
|
29
27
|
-->
|
30
28
|
|
31
29
|
<def tag="model-name-human" attrs="model, count"><%=
|
32
30
|
model ||= this
|
33
31
|
model = model.class unless model.kind_of? Class
|
34
|
-
# adapted from count tag
|
35
|
-
count = default_count if count.blank?
|
36
|
-
c = count.try.to_int || count==:dynamic && this.try.total_entries || (this.try.loaded? && this.try.length) || this.try.count || this.try.length
|
37
32
|
# prepare symbolized attributes for merging
|
38
33
|
attrs = {}
|
39
|
-
|
40
|
-
model.model_name.human(
|
34
|
+
all_attributes.each_pair{|k,v| attrs[k.to_sym] = v}
|
35
|
+
model.model_name.human( attrs )
|
41
36
|
%>
|
42
37
|
</def>
|
43
38
|
|
@@ -57,21 +52,20 @@ It dynamically pluralizes the human name by using the implicit model.count.
|
|
57
52
|
model = model.class unless model.kind_of? Class
|
58
53
|
# prepare symbolized attributes for merging
|
59
54
|
attrs = {}
|
60
|
-
|
55
|
+
all_attributes.each_pair{|k,v| attrs[k.to_sym] = v}
|
61
56
|
model.human_attribute_name( attribute.to_sym, attrs )
|
62
57
|
%>
|
63
58
|
</def>
|
64
59
|
|
65
60
|
<!-- Used to localize and pluralize collection names.
|
66
|
-
A collection name is a special case of an attribute name, (indeed you should store the collection names as attribute names in the locale files), so this tag internally uses human_attribute_name to return them.
|
61
|
+
A collection name is a special case of an attribute name, (indeed you should store the collection names as attribute names in the locale files), so this tag internally uses human_attribute_name to return them.
|
67
62
|
|
68
63
|
With the `your` attribute and in the special case the context is a Hobo::Model::User instance it automatically embeds the `your` tag funtionality. (note: :name is added by default as an interpolable variable)
|
69
64
|
|
70
65
|
### Attributes
|
71
66
|
|
72
67
|
- collection - the attribute/collection key to lookup in the `activerecord.attributes` namespace. (e.g. 'roles')
|
73
|
-
- count -
|
74
|
-
consistent with the collection.count. If you don't pass any count it uses the ApplicationHelper#default_count.
|
68
|
+
- count - used to pick the inflected string for the collection. It should be an integer.
|
75
69
|
- your - wraps the collection name in a `Your` tag
|
76
70
|
|
77
71
|
### Example
|
@@ -99,17 +93,17 @@ With the `your` attribute and in the special case the context is a Hobo::Model::
|
|
99
93
|
other: Ruoli di {{name}}"
|
100
94
|
|
101
95
|
# context is a Post instance ('your' is ignored)
|
102
|
-
<human-collection-name collection="comments" your/>
|
96
|
+
<human-collection-name collection="comments" count="&user.comments.count" your/>
|
103
97
|
I18n.locale = :en => "Comment" or "Comments"
|
104
98
|
I18n.locale = :it => "Commento" or "Commenti"
|
105
99
|
|
106
100
|
# context is an User instance
|
107
|
-
<human-collection-name collection="roles' your/>
|
101
|
+
<human-collection-name collection="roles' count="&user.roles.count" your/>
|
108
102
|
I18n.locale = :en => "Your Role" or "Jim's Role" or "Your Roles" or "Jim's Roles"
|
109
103
|
I18n.locale = :it => "Il tuo Ruolo" or "Il Ruolo di Jim" or "I tuoi Ruoli" or "I Ruoli di Jim"
|
110
104
|
(output is the same as <Your key="roles" count=>"&user.roles.count"/> )
|
111
105
|
|
112
|
-
<human-collection-name collection="roles"/>
|
106
|
+
<human-collection-name collection="roles" count="&user.roles.count"/>
|
113
107
|
I18n.locale = :en => "Role" or "Roles"
|
114
108
|
I18n.locale = :it => "Ruolo" or "Ruoli"
|
115
109
|
-->
|
@@ -117,17 +111,15 @@ With the `your` attribute and in the special case the context is a Hobo::Model::
|
|
117
111
|
raise Hobo::Error, "The 'collection' attribute must be defined" if collection.blank?
|
118
112
|
belong_class = this.kind_of?(Class) ? this : this.class
|
119
113
|
raise Hobo::Error, "The context is not an ActiveRecord::Base instance or class. (this = #{this.typed_id rescue this.inspect})" unless belong_class < ActiveRecord::Base
|
120
|
-
count = default_count if count.blank?
|
121
|
-
c = count.try.to_int || count==:dynamic && this.kind_of?(ActiveRecord::Base) && this.send(collection.to_sym).count
|
122
114
|
# prepare symbolized attributes for merging
|
123
115
|
attrs = {}
|
124
|
-
|
116
|
+
all_attributes.each_pair{|k,v| attrs[k.to_sym] = v} -%>
|
125
117
|
<% if your && belong_class < Hobo::Model::User && this.kind_of?(Hobo::Model::User) && I18n.locale == :en -%>
|
126
118
|
<your key="&collection" merge-attrs="&{:count=>c, :name=>this.name}.merge(attrs)" capitalize>
|
127
|
-
<%= belong_class.human_attribute_name(collection.to_sym,
|
119
|
+
<%= belong_class.human_attribute_name(collection.to_sym, attrs) %>
|
128
120
|
</your>
|
129
121
|
<% else -%>
|
130
|
-
<%= belong_class.human_attribute_name( collection.to_sym,
|
122
|
+
<%= belong_class.human_attribute_name( collection.to_sym, attrs ) %>
|
131
123
|
<% end %>
|
132
124
|
</def>
|
133
125
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -1637175962
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.3.0.
|
10
|
+
- pre11
|
11
|
+
version: 1.3.0.pre11
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- Tom Locke
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-10-
|
19
|
+
date: 2010-10-11 00:00:00 -04:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -59,13 +59,13 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
hash: -
|
62
|
+
hash: -1637175962
|
63
63
|
segments:
|
64
64
|
- 1
|
65
65
|
- 3
|
66
66
|
- 0
|
67
|
-
-
|
68
|
-
version: 1.3.0.
|
67
|
+
- pre11
|
68
|
+
version: 1.3.0.pre11
|
69
69
|
type: :runtime
|
70
70
|
version_requirements: *id003
|
71
71
|
- !ruby/object:Gem::Dependency
|
@@ -76,13 +76,13 @@ dependencies:
|
|
76
76
|
requirements:
|
77
77
|
- - "="
|
78
78
|
- !ruby/object:Gem::Version
|
79
|
-
hash: -
|
79
|
+
hash: -1637175962
|
80
80
|
segments:
|
81
81
|
- 1
|
82
82
|
- 3
|
83
83
|
- 0
|
84
|
-
-
|
85
|
-
version: 1.3.0.
|
84
|
+
- pre11
|
85
|
+
version: 1.3.0.pre11
|
86
86
|
type: :runtime
|
87
87
|
version_requirements: *id004
|
88
88
|
- !ruby/object:Gem::Dependency
|
@@ -93,13 +93,13 @@ dependencies:
|
|
93
93
|
requirements:
|
94
94
|
- - "="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
hash: -
|
96
|
+
hash: -1637175962
|
97
97
|
segments:
|
98
98
|
- 1
|
99
99
|
- 3
|
100
100
|
- 0
|
101
|
-
-
|
102
|
-
version: 1.3.0.
|
101
|
+
- pre11
|
102
|
+
version: 1.3.0.pre11
|
103
103
|
type: :runtime
|
104
104
|
version_requirements: *id005
|
105
105
|
- !ruby/object:Gem::Dependency
|
@@ -199,7 +199,6 @@ files:
|
|
199
199
|
- lib/generators/hobo/i18n/templates/app.es-DO.yml
|
200
200
|
- lib/generators/hobo/i18n/templates/app.it.yml
|
201
201
|
- lib/generators/hobo/i18n/templates/app.pt-PT.yml
|
202
|
-
- lib/generators/hobo/i18n/templates/default_count_injection.rb
|
203
202
|
- lib/generators/hobo/i18n/templates/hobo.en.yml
|
204
203
|
- lib/generators/hobo/i18n/templates/hobo.es-DO.yml
|
205
204
|
- lib/generators/hobo/i18n/templates/hobo.it.yml
|
@@ -1,10 +0,0 @@
|
|
1
|
-
|
2
|
-
# the default_count is called from i18n tags in order to produce the right pluralization
|
3
|
-
# when no count is explicitly passed. It is normally used to generate a plural.
|
4
|
-
# You can return different integers according to the needs of different languages
|
5
|
-
# if you return the symbol :dynamic the count will be the model count
|
6
|
-
# so the tag output will be singular or plural depending on the record count
|
7
|
-
def default_count
|
8
|
-
100 # fixed plural by default
|
9
|
-
end
|
10
|
-
|