hobo 1.3.0.pre23 → 1.3.0.pre24
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/hobo.gemspec +1 -0
- data/lib/generators/hobo/controller.rb +5 -0
- data/lib/generators/hobo/i18n/templates/app.es.yml +30 -0
- data/lib/generators/hobo/i18n/templates/app.ru.yml +23 -0
- data/lib/generators/hobo/i18n/templates/hobo.en.yml +2 -1
- data/lib/generators/hobo/i18n/templates/{hobo.es-DO.yml → hobo.es.yml} +9 -7
- data/lib/generators/hobo/i18n/templates/hobo.it.yml +1 -0
- data/lib/generators/hobo/i18n/templates/hobo.pt-PT.yml +1 -0
- data/lib/generators/hobo/i18n/templates/hobo.ru.yml +193 -0
- data/lib/generators/hobo/setup_wizard/setup_wizard_generator.rb +27 -5
- data/lib/generators/hobo/test_framework/test_framework_generator.rb +2 -2
- data/lib/hobo/controller/model.rb +1 -1
- data/lib/hobo/engine.rb +1 -0
- data/lib/hobo/model/user.rb +8 -6
- data/lib/hobo/rapid/taglibs/rapid_forms.dryml +1 -1
- metadata +17 -15
- data/lib/generators/hobo/i18n/templates/app.es-DO.yml +0 -24
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.3.0.
|
1
|
+
1.3.0.pre24
|
data/hobo.gemspec
CHANGED
@@ -4,6 +4,10 @@ module Generators
|
|
4
4
|
|
5
5
|
check_class_collision :suffix => 'Controller'
|
6
6
|
|
7
|
+
class_option :helpers, :type => :boolean,
|
8
|
+
:desc => "Generates helper files",
|
9
|
+
:default => !Rails.application.config.hobo.dryml_only_templates
|
10
|
+
|
7
11
|
def self.banner
|
8
12
|
"rails generate hobo:controller #{self.arguments.map(&:usage).join(' ')}"
|
9
13
|
end
|
@@ -18,6 +22,7 @@ module Generators
|
|
18
22
|
end
|
19
23
|
|
20
24
|
def generate_helper
|
25
|
+
return unless options[:helpers]
|
21
26
|
invoke 'helper', [name], options
|
22
27
|
end
|
23
28
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Hobo application translation file for Spanish.
|
2
|
+
# Please, add the specific models and attributes for your application.
|
3
|
+
|
4
|
+
# Translated by Domizio Demichelis (dd.nexus@gmail.com)
|
5
|
+
# Corrections by Ricardo Pacheco
|
6
|
+
|
7
|
+
# This file might be used for other Latin America Spanish Countries without any change
|
8
|
+
# It might be ok also for Spain. If you find any error, or if you have any more specific translation,
|
9
|
+
# please post it to http://hobousers.googlegroups.com. Thank you!
|
10
|
+
|
11
|
+
es:
|
12
|
+
|
13
|
+
attributes:
|
14
|
+
created_at: Creado el
|
15
|
+
updated_at: Actualizado el
|
16
|
+
|
17
|
+
activerecord:
|
18
|
+
models:
|
19
|
+
user:
|
20
|
+
one: Usuario
|
21
|
+
other: Usuarios
|
22
|
+
attributes:
|
23
|
+
user:
|
24
|
+
name: Nombre
|
25
|
+
password: Contraseña
|
26
|
+
password_confirmation: Confirmación Contraseña
|
27
|
+
email_address: Correo Electrónico
|
28
|
+
# attribute_help:
|
29
|
+
# user:
|
30
|
+
# email_address:
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Hobo application translation file for Russian.
|
2
|
+
# Please, add the specific models and attributes for your application.
|
3
|
+
|
4
|
+
ru:
|
5
|
+
|
6
|
+
attributes:
|
7
|
+
created_at: Создано
|
8
|
+
updated_at: Обновлено
|
9
|
+
|
10
|
+
activerecord:
|
11
|
+
models:
|
12
|
+
user:
|
13
|
+
one: Пользователь
|
14
|
+
other: Пользователи
|
15
|
+
attributes:
|
16
|
+
user:
|
17
|
+
name: Имя
|
18
|
+
password: Пароль
|
19
|
+
password_confirmation: Подтверждение пароля
|
20
|
+
email_address: Электронный адрес
|
21
|
+
# attribute_help:
|
22
|
+
# user:
|
23
|
+
# email_address: We will never share your address with third parties
|
@@ -72,7 +72,7 @@ en:
|
|
72
72
|
|
73
73
|
account_page:
|
74
74
|
title: "Your Account"
|
75
|
-
heading: "Your
|
75
|
+
heading: "Your Account"
|
76
76
|
new_password: "New Password"
|
77
77
|
confirm_new_password: "Confirm New Password"
|
78
78
|
|
@@ -127,6 +127,7 @@ en:
|
|
127
127
|
permission_denied: "Permission Denied"
|
128
128
|
not_found: "The page you requested cannot be found."
|
129
129
|
unauthenticated: "Couldn't authenticate you"
|
130
|
+
validate_password: "must be at least 6 characters long and must not consist solely of lowercase letters"
|
130
131
|
current_password_is_not_correct: "is not correct"
|
131
132
|
you_are_site_admin: "You are now the site administrator"
|
132
133
|
you_signed_up: "You have signed up"
|
@@ -1,11 +1,12 @@
|
|
1
|
-
# Hobo internals translation file for Spanish (
|
1
|
+
# Hobo internals translation file for Spanish (Mexico).
|
2
2
|
# Translated by Domizio Demichelis (dd.nexus@gmail.com)
|
3
|
+
# Corrections by Ricardo Pacheco
|
3
4
|
|
4
5
|
# This file might be used for other Latin America Spanish Countries without any change
|
5
6
|
# It might be ok also for Spain. If you find any error, or if you have any more specific translation,
|
6
7
|
# please post it to http://hobousers.googlegroups.com. Thank you!
|
7
8
|
|
8
|
-
|
9
|
+
es:
|
9
10
|
hobo:
|
10
11
|
# default hobo pages translations
|
11
12
|
index:
|
@@ -62,8 +63,8 @@
|
|
62
63
|
forgot_password:
|
63
64
|
title: *forgot_password
|
64
65
|
heading: *forgot_password
|
65
|
-
text: "Ingresa la dirección de tu Correo Eléctronico que utilizaste cuando te
|
66
|
-
Te enviaremos un Correo Eléctronico que
|
66
|
+
text: "Ingresa la dirección de tu Correo Eléctronico que utilizaste cuando te inscribiste.
|
67
|
+
Te enviaremos un Correo Eléctronico que podrás utilizar para generar una nueva contraseña."
|
67
68
|
email_address: *email_address
|
68
69
|
send: "Enviar"
|
69
70
|
|
@@ -89,7 +90,7 @@
|
|
89
90
|
new: "Nuevo Registro de %{model}"
|
90
91
|
create: "Crear %{model}"
|
91
92
|
previous: "Precedente"
|
92
|
-
next: "
|
93
|
+
next: "Próxima"
|
93
94
|
add: "Añadir"
|
94
95
|
show_all: "Muestra todos %{model}..."
|
95
96
|
delete: "Borrar %{model}"
|
@@ -127,12 +128,13 @@
|
|
127
128
|
must_activate: "Tiene que activar la cuenta antes de iniciar la sesión. Por favor verifique su correo eléctronico."
|
128
129
|
login:
|
129
130
|
success: "La sesión ha iniciado."
|
130
|
-
error: "¡No se ingresaron %{login} y Contraseña
|
131
|
+
error: "¡No se ingresaron %{login} y Contraseña válidos!"
|
131
132
|
logout: "La sesión ha terminado."
|
132
133
|
reset_password: "Tu contraseña ha sido reiniciada."
|
133
134
|
permission_denied: "¡Permiso denegado!"
|
134
|
-
not_found: "La
|
135
|
+
not_found: "La página solicitada no se encuentra."
|
135
136
|
unauthenticated: "No se pudo autenticar."
|
137
|
+
validate_password: "debe contener tansiquiera 6 caracteres, letras mayúsculas y minúsculas"
|
136
138
|
current_password_is_not_correct: "no está correcta"
|
137
139
|
you_are_site_admin: "Ahora usted es el administrador del sitio."
|
138
140
|
you_signed_up: "Usted se inscribió."
|
@@ -133,6 +133,7 @@ it:
|
|
133
133
|
permission_denied: "Permesso negato!"
|
134
134
|
not_found: "La pagina richiesta non è stata trovata."
|
135
135
|
unauthenticated: "La tua utenticazione è fallita."
|
136
|
+
validate_password: "deve contenere almeno 6 caratteri, sia maiuscoli che minuscoli"
|
136
137
|
current_password_is_not_correct: "non è esatta"
|
137
138
|
you_are_site_admin: "Adesso sei amministratore del sito."
|
138
139
|
you_signed_up: "Ti sei iscritto."
|
@@ -128,6 +128,7 @@
|
|
128
128
|
permission_denied: "Sem autorização!"
|
129
129
|
not_found: "A página solicitada não foi encontrada"
|
130
130
|
unauthenticated: "Não foi possível indentificá-lo(a)."
|
131
|
+
validate_password: "tem que ter pelo menos 6 caracteres, letras maiúsculas e minúsculas"
|
131
132
|
current_password_is_not_correct: "não está correta."
|
132
133
|
you_are_site_admin: "Agora é o administrador do site"
|
133
134
|
you_signed_up: "Acabou de se registar"
|
@@ -0,0 +1,193 @@
|
|
1
|
+
# Hobo internals translation file for Russian
|
2
|
+
# Based on russian translations by Nick Gorbikoff
|
3
|
+
# https://github.com/konung/hobo-i18n-locales
|
4
|
+
# Adapted by Paul Shepel (http://github.com/tacid)
|
5
|
+
#
|
6
|
+
# If you find any error, please post it to http://hobousers.googlegroups.com.
|
7
|
+
# Thank you!
|
8
|
+
ru:
|
9
|
+
hobo:
|
10
|
+
# default hobo pages translations
|
11
|
+
index:
|
12
|
+
# if you uncomment the following you will loose the automatic selection of dinamically pluralized nav-tabs
|
13
|
+
# if you need a different title you should implement a different way to select the tab on your own
|
14
|
+
#title: "%{model} Index"
|
15
|
+
heading: "Список %{model}"
|
16
|
+
|
17
|
+
new:
|
18
|
+
title: "Создать %{model}"
|
19
|
+
heading: "Создать %{model}"
|
20
|
+
|
21
|
+
show:
|
22
|
+
title: "%{model}"
|
23
|
+
heading: "%{model} %{name}"
|
24
|
+
back_link: "Назад"
|
25
|
+
edit_link: "Изменить %{model}"
|
26
|
+
new_link: "Создать %{model}"
|
27
|
+
add_form_heading: "Добавить %{model}"
|
28
|
+
|
29
|
+
edit:
|
30
|
+
title: "Изменить %{model}"
|
31
|
+
heading: "Изменить %{model}"
|
32
|
+
|
33
|
+
index_for_owner:
|
34
|
+
title: "%{model} для"
|
35
|
+
# be aware that you will loose the automatic Your <collection> / Jom's <collection>
|
36
|
+
# default output for User models
|
37
|
+
# you better define the heading.* in the specific collection namespace
|
38
|
+
#heading:
|
39
|
+
subheading: "Для:"
|
40
|
+
|
41
|
+
new_for_owner:
|
42
|
+
title: "Создать %{model} для"
|
43
|
+
heading: "Создать %{model}"
|
44
|
+
subheading: "Для:"
|
45
|
+
|
46
|
+
login:
|
47
|
+
title: "Логин"
|
48
|
+
heading: "Логин"
|
49
|
+
email_address: &email_address "E-mail"
|
50
|
+
name: "Имя"
|
51
|
+
password: "Пароль"
|
52
|
+
remember_me: "Запомнить меня"
|
53
|
+
login: "Войти"
|
54
|
+
signup: "Регистрация"
|
55
|
+
forgot_password: &forgot_password "Забыли пароль?"
|
56
|
+
|
57
|
+
signup:
|
58
|
+
title: "Регистрация"
|
59
|
+
heading: "Регистрация нового пользователя"
|
60
|
+
|
61
|
+
forgot_password:
|
62
|
+
title: *forgot_password
|
63
|
+
heading: *forgot_password
|
64
|
+
text: "Введите адрес электроной почты, который Вы использовали при регистрации. Мы вышлем Вам на него инструкции для изменения пароля."
|
65
|
+
email_address: *email_address
|
66
|
+
send: "Выслать"
|
67
|
+
|
68
|
+
forgot_password_sent:
|
69
|
+
title: "Забытый пароль - Письмо отправлено"
|
70
|
+
heading: "Забытый пароль - Письмо с инструкциями отправлено"
|
71
|
+
text: "Письмо с инструкциями для восстановления пароля было выслано на %{email_address}. Если Вы не получили письмо, проверьте Ваш спам-фильтр."
|
72
|
+
|
73
|
+
account_disabled_page:
|
74
|
+
title: "Учётная запись не найдена"
|
75
|
+
heading: "Учётная запись не найдена"
|
76
|
+
text: "Мы не можем найти учётную запись соответствующую данному адресу электроной почты. Проверте, что он введён правельно."
|
77
|
+
|
78
|
+
account_page:
|
79
|
+
title: "Моя учётная запись"
|
80
|
+
heading: "Моя учётная запись"
|
81
|
+
new_password: "Новый пароль"
|
82
|
+
confirm_new_password: "Подверждение нового пароля"
|
83
|
+
|
84
|
+
# default hobo action translation
|
85
|
+
# The action with added model variable are new, create, delete, save,
|
86
|
+
# edit and back_to_parent
|
87
|
+
actions:
|
88
|
+
new: "Добавить %{model}"
|
89
|
+
create: "Создать %{model}"
|
90
|
+
previous: "Предыдущая"
|
91
|
+
next: "Следующая"
|
92
|
+
add: "Добавить"
|
93
|
+
show_all: "Показать все %{model}и..."
|
94
|
+
delete: "Удалить %{model}"
|
95
|
+
save: "Сохранить"
|
96
|
+
cancel: "Отменить"
|
97
|
+
edit: "Изменить %{model}"
|
98
|
+
back: "Назад к"
|
99
|
+
back_to_parent: "Назад к %{parent} %{name}"
|
100
|
+
send: "Отослать"
|
101
|
+
remove: "Убрать"
|
102
|
+
signup: "Регистрация"
|
103
|
+
login: "Войти"
|
104
|
+
logout: "Выйти"
|
105
|
+
logged_in_as: "Вы вошли как %{name}"
|
106
|
+
account: "Моя учетная запись"
|
107
|
+
save_account: "Сохранить данные"
|
108
|
+
|
109
|
+
# default hobo message translation
|
110
|
+
messages:
|
111
|
+
create:
|
112
|
+
success: "%{model} была создана без ошибок"
|
113
|
+
error: "Нельзя создать %{model}.\n%{errors}"
|
114
|
+
creator:
|
115
|
+
error: "Не могу исполнить указазания создателя %{name}.\n%{errors}"
|
116
|
+
transition:
|
117
|
+
error: "Не могу исполнить указазания изменителя %{name}.\n%{errors}"
|
118
|
+
update:
|
119
|
+
no_attribute_error: "Изменения не указаны в аттрибутах."
|
120
|
+
success: "Изменения сохранены."
|
121
|
+
error: "Не могу сохранить изменения. \n%{errors}"
|
122
|
+
destroy:
|
123
|
+
success: "Удаление %{model} было завершено без ошибок."
|
124
|
+
signup:
|
125
|
+
success: "Спасибо за регистрацию"
|
126
|
+
must_activate: "Вы должны активировать вашу учётную запись. Пожалуйста, проверте вашу электроную почту."
|
127
|
+
login:
|
128
|
+
success: "Вы зашли в систему."
|
129
|
+
error: "Имя пользователя (%{login}) и пароль предоставленные вами - неправильны!"
|
130
|
+
logout: "Вы вышли из системы."
|
131
|
+
reset_password: "Ваш пароль был изменён."
|
132
|
+
permission_denied: "Доступ закрыт!"
|
133
|
+
not_found: "Страницы, запрошеной вами, не существует."
|
134
|
+
unauthenticated: "Система не может подтвердить аутентичность вашой учётной записи."
|
135
|
+
validate_password: "должен быть не меньше 6 символов и НЕ должен состоять только из маленьких букв"
|
136
|
+
current_password_is_not_correct: "неправильно"
|
137
|
+
you_are_site_admin: "Вы получили права администратора сайта."
|
138
|
+
you_signed_up: "Вы зарегестрировались."
|
139
|
+
no: "Нет доступных %{model}ей."
|
140
|
+
confirm: "Вы уверены?"
|
141
|
+
|
142
|
+
# default hobo collection translation
|
143
|
+
collection:
|
144
|
+
count: &collection_count
|
145
|
+
zero: "Нет %{model}ей"
|
146
|
+
one: "В базе только одна %{model}."
|
147
|
+
other: "В базе %{count} %{model}ей"
|
148
|
+
# you can use the following to completely override the collection heading
|
149
|
+
# be aware that you will loose the automatic Your <collection> / Jom's <collection>
|
150
|
+
# default output for User models
|
151
|
+
# you better define the heading.* in the specific collection namespace
|
152
|
+
#heading:
|
153
|
+
add_form_heading: "Добавить %{model}"
|
154
|
+
empty_message: "Нет записей для отображения."
|
155
|
+
|
156
|
+
# default hobo form translation
|
157
|
+
form:
|
158
|
+
new:
|
159
|
+
heading: "Создать %{model}"
|
160
|
+
error:
|
161
|
+
heading: "Произошла ошибка:"
|
162
|
+
select_many:
|
163
|
+
prompt: "Добавить %{model}"
|
164
|
+
|
165
|
+
# hobo support
|
166
|
+
support:
|
167
|
+
or: "или"
|
168
|
+
a: ""
|
169
|
+
an: ""
|
170
|
+
|
171
|
+
table_plus:
|
172
|
+
search: "Поиск"
|
173
|
+
submit_label: "Искать"
|
174
|
+
|
175
|
+
live_search:
|
176
|
+
label: "Найти"
|
177
|
+
results_label: "Результаты поиска"
|
178
|
+
close_button: "закрыть"
|
179
|
+
no_results: "Не найдено записей удовлетворяюих критериям поиска"
|
180
|
+
|
181
|
+
dev_user_changer:
|
182
|
+
guest: "Гость"
|
183
|
+
|
184
|
+
admin:
|
185
|
+
subsite_name: "Админ"
|
186
|
+
invite_new_user: "Пригласить нового пользователя"
|
187
|
+
|
188
|
+
subsite:
|
189
|
+
back_link: "Показать сайт"
|
190
|
+
|
191
|
+
boolean_yes: "Да"
|
192
|
+
boolean_no: "Нет"
|
193
|
+
password_hidden: "[пароль скрыт]"
|
@@ -47,6 +47,9 @@ module Hobo
|
|
47
47
|
class_option :gitignore_auto_generated_files, :type => :boolean,
|
48
48
|
:desc => "Add the auto-generated files to .gitignore", :default => true
|
49
49
|
|
50
|
+
class_option :dryml_only_templates, :type => :boolean,
|
51
|
+
:desc => "The application uses only dryml templates",
|
52
|
+
:default => Rails.application.config.hobo.dryml_only_templates
|
50
53
|
|
51
54
|
def startup
|
52
55
|
if wizard?
|
@@ -81,7 +84,7 @@ module Hobo
|
|
81
84
|
def user_options
|
82
85
|
if wizard?
|
83
86
|
say_title 'User Resource'
|
84
|
-
@user_resource_name = ask("Choose a name for the user resource [<enter>=user|<custom_name>]
|
87
|
+
@user_resource_name = ask("Choose a name for the user resource: [<enter>=user|<custom_name>]", 'user')
|
85
88
|
@activation_email = @invite_only ? false : yes_no?("Do you want to send an activation email to activate the user?")
|
86
89
|
else
|
87
90
|
@user_resource_name = options[:user_resource_name]
|
@@ -116,6 +119,20 @@ NOTE: You might want to sign up as the administrator before adding this!
|
|
116
119
|
EOI
|
117
120
|
end
|
118
121
|
|
122
|
+
def dryml_only_templates_option
|
123
|
+
if wizard?
|
124
|
+
say_title 'Templates Option'
|
125
|
+
dryml_only_templates = yes_no?("Will you application use only hobo/dryml web page templates?\n(Choose 'n' only if you also plan to use plain rails/erb web page templates)")
|
126
|
+
else
|
127
|
+
dryml_only_templates = options[:dryml_only_templates]
|
128
|
+
end
|
129
|
+
if dryml_only_templates
|
130
|
+
remove_file 'app/views/layouts/application.html.erb'
|
131
|
+
remove_file 'app/helpers/application_helper.rb'
|
132
|
+
environment "\n config.hobo.dryml_only_templates = true\n"
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
119
136
|
def rapid
|
120
137
|
if wizard?
|
121
138
|
say_title 'Hobo Rapid'
|
@@ -127,7 +144,7 @@ EOI
|
|
127
144
|
def front_controller
|
128
145
|
if wizard?
|
129
146
|
say_title 'Front Controller'
|
130
|
-
front_controller_name = ask("Choose a name for the front controller [<enter>=front|<custom_name>]
|
147
|
+
front_controller_name = ask("Choose a name for the front controller: [<enter>=front|<custom_name>]", 'front')
|
131
148
|
say "Installing #{front_controller_name} controller..."
|
132
149
|
else
|
133
150
|
front_controller_name = options[:front_controller_name]
|
@@ -139,7 +156,7 @@ EOI
|
|
139
156
|
return unless @invite_only
|
140
157
|
if wizard?
|
141
158
|
say_title 'Admin Subsite'
|
142
|
-
@admin_subsite_name = ask("Choose a name for the admin subsite [<enter>=admin|<custom_name>]
|
159
|
+
@admin_subsite_name = ask("Choose a name for the admin subsite: [<enter>=admin|<custom_name>]", 'admin')
|
143
160
|
else
|
144
161
|
@admin_subsite_name = options[:admin_subsite_name]
|
145
162
|
end
|
@@ -161,7 +178,7 @@ EOI
|
|
161
178
|
def generate_migration
|
162
179
|
if wizard?
|
163
180
|
say_title 'DB Migration'
|
164
|
-
action = choose("Initial Migration: [s]kip, [g]enerate migration file only, generate and [m]igrate [s|g|m]
|
181
|
+
action = choose("Initial Migration: [s]kip, [g]enerate migration file only, generate and [m]igrate: [s|g|m]", /^(s|g|m)$/)
|
165
182
|
opt = case action
|
166
183
|
when 's'
|
167
184
|
return say('Migration skipped!')
|
@@ -203,7 +220,12 @@ EOI
|
|
203
220
|
ls = (locales - %w[en]).map {|l| ":#{l}" }
|
204
221
|
lstr = ls.to_sentence
|
205
222
|
invoke 'hobo:i18n', locales
|
206
|
-
say(
|
223
|
+
say(<<STR , Color::YELLOW) unless ls.empty?
|
224
|
+
NOTICE: You should manually install in 'config/locales' also the official Rails locale #{ls.size==1 ? 'file' : 'files'} for #{lstr} that your application will use.
|
225
|
+
Official rails I18n URLs:
|
226
|
+
- Readme: https://github.com/svenfuchs/rails-i18n/blob/master/README.md
|
227
|
+
- locale dir: https://github.com/svenfuchs/rails-i18n/tree/master/rails/locale/
|
228
|
+
STR
|
207
229
|
end
|
208
230
|
|
209
231
|
def git_repo
|
@@ -60,11 +60,11 @@ private
|
|
60
60
|
|
61
61
|
def add_generators_block
|
62
62
|
n = name == 'rspec_with_shoulda' ? 'rspec' : name
|
63
|
-
block = " config.generators do |g|"
|
63
|
+
block = "\n config.generators do |g|"
|
64
64
|
block << "\n g.test_framework :#{n}, :fixtures => #{options[:fixtures].inspect}" if !options[:fixtures] || name != 'test_unit'
|
65
65
|
block << "\n g.fallbacks[:#{n}] = :test_unit" unless name == 'test_unit'
|
66
66
|
block << "\n g.fixture_replacement => :#{options[:fixture_replacement]}" unless options[:fixture_replacement].blank?
|
67
|
-
block << "\n end"
|
67
|
+
block << "\n end\n"
|
68
68
|
environment block
|
69
69
|
end
|
70
70
|
|
data/lib/hobo/engine.rb
CHANGED
@@ -15,6 +15,7 @@ module Hobo
|
|
15
15
|
h.auto_taglibs_path = Pathname.new File.expand_path('app/views/taglibs/auto', Rails.root)
|
16
16
|
h.read_only_file_system = !!ENV['HEROKU_TYPE']
|
17
17
|
h.show_translation_keys = false
|
18
|
+
h.dryml_only_templates = false
|
18
19
|
end
|
19
20
|
|
20
21
|
ActiveSupport.on_load(:action_controller) do
|
data/lib/hobo/model/user.rb
CHANGED
@@ -32,7 +32,7 @@ module Hobo
|
|
32
32
|
end
|
33
33
|
|
34
34
|
validates_confirmation_of :password, :if => :new_password_required?
|
35
|
-
|
35
|
+
validate :validate_password
|
36
36
|
validate :validate_current_password_when_changing_password
|
37
37
|
|
38
38
|
# Virtual attributes for setting and changing the password
|
@@ -56,10 +56,6 @@ module Hobo
|
|
56
56
|
# Additional classmethods for authentication
|
57
57
|
module ClassMethods
|
58
58
|
|
59
|
-
# Validation of the plaintext password
|
60
|
-
def password_validations
|
61
|
-
validates_length_of :password, :within => 4..40, :if => :new_password_required?
|
62
|
-
end
|
63
59
|
|
64
60
|
def login_attribute=(attr, validate=true)
|
65
61
|
@login_attribute = attr = attr.to_sym
|
@@ -172,9 +168,15 @@ module Hobo
|
|
172
168
|
(new_record? && password) || lifecycle_changing_password? || changing_password?
|
173
169
|
end
|
174
170
|
|
171
|
+
# Validation of the plaintext password. Override this function to change your validation.
|
172
|
+
def validate_password
|
173
|
+
errors.add(:password, I18n.t("hobo.messages.validate_password", :default => "must be at least 6 characters long and must not consist solely of lowercase letters")) \
|
174
|
+
if new_password_required? && (password.nil? || password.length<6 || /^[[:lower:]]*$/.match(password))
|
175
|
+
end
|
175
176
|
|
176
177
|
def validate_current_password_when_changing_password
|
177
|
-
|
178
|
+
errors.add :current_password, I18n.t("hobo.messages.current_password_is_not_correct", :default => "is not correct") \
|
179
|
+
if changing_password? && !authenticated?(current_password)
|
178
180
|
end
|
179
181
|
|
180
182
|
end
|
@@ -797,7 +797,7 @@ An input for `has_many :through` associations that lets the user chose the items
|
|
797
797
|
To use this tag, the model of the items the user is chosing *must* have unique names, and the
|
798
798
|
-->
|
799
799
|
<def tag="select-many" attrs="options, targets, remove-label, prompt, disabled, name"><%
|
800
|
-
prompt ||= ht("#{
|
800
|
+
prompt ||= ht("#{this_field_reflection.klass.to_s.underscore}.form.select_many.prompt", :default=>"Add #{this_field.titleize.singularize}")
|
801
801
|
options ||= this_field_reflection.klass.all(:conditions =>this.send(:conditions)).select {|x| can_view?(x)}
|
802
802
|
name ||= param_name_for_this
|
803
803
|
|
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: -1637108446
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.3.0.
|
10
|
+
- pre24
|
11
|
+
version: 1.3.0.pre24
|
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-
|
19
|
+
date: 2010-12-15 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: -1637108446
|
63
63
|
segments:
|
64
64
|
- 1
|
65
65
|
- 3
|
66
66
|
- 0
|
67
|
-
-
|
68
|
-
version: 1.3.0.
|
67
|
+
- pre24
|
68
|
+
version: 1.3.0.pre24
|
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: -1637108446
|
80
80
|
segments:
|
81
81
|
- 1
|
82
82
|
- 3
|
83
83
|
- 0
|
84
|
-
-
|
85
|
-
version: 1.3.0.
|
84
|
+
- pre24
|
85
|
+
version: 1.3.0.pre24
|
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: -1637108446
|
97
97
|
segments:
|
98
98
|
- 1
|
99
99
|
- 3
|
100
100
|
- 0
|
101
|
-
-
|
102
|
-
version: 1.3.0.
|
101
|
+
- pre24
|
102
|
+
version: 1.3.0.pre24
|
103
103
|
type: :runtime
|
104
104
|
version_requirements: *id005
|
105
105
|
- !ruby/object:Gem::Dependency
|
@@ -194,13 +194,15 @@ files:
|
|
194
194
|
- lib/generators/hobo/front_controller/templates/index.dryml
|
195
195
|
- lib/generators/hobo/i18n/i18n_generator.rb
|
196
196
|
- lib/generators/hobo/i18n/templates/app.en.yml
|
197
|
-
- lib/generators/hobo/i18n/templates/app.es
|
197
|
+
- lib/generators/hobo/i18n/templates/app.es.yml
|
198
198
|
- lib/generators/hobo/i18n/templates/app.it.yml
|
199
199
|
- lib/generators/hobo/i18n/templates/app.pt-PT.yml
|
200
|
+
- lib/generators/hobo/i18n/templates/app.ru.yml
|
200
201
|
- lib/generators/hobo/i18n/templates/hobo.en.yml
|
201
|
-
- lib/generators/hobo/i18n/templates/hobo.es
|
202
|
+
- lib/generators/hobo/i18n/templates/hobo.es.yml
|
202
203
|
- lib/generators/hobo/i18n/templates/hobo.it.yml
|
203
204
|
- lib/generators/hobo/i18n/templates/hobo.pt-PT.yml
|
205
|
+
- lib/generators/hobo/i18n/templates/hobo.ru.yml
|
204
206
|
- lib/generators/hobo/invite_only.rb
|
205
207
|
- lib/generators/hobo/model/USAGE
|
206
208
|
- lib/generators/hobo/model/model_generator.rb
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# Hobo application translation file for Spanish.
|
2
|
-
# Please, add the specific models and attributes for your application.
|
3
|
-
|
4
|
-
es:
|
5
|
-
|
6
|
-
attributes:
|
7
|
-
created_at: Creado el
|
8
|
-
updated_at: Actualizado el
|
9
|
-
|
10
|
-
activerecord:
|
11
|
-
models:
|
12
|
-
user:
|
13
|
-
one: Usuario
|
14
|
-
other: Ususarios
|
15
|
-
attributes:
|
16
|
-
user:
|
17
|
-
name: Nombre
|
18
|
-
password: Contraseña
|
19
|
-
password_confirmation: Confirmacción Contraseña
|
20
|
-
email_address: Correo Electronico
|
21
|
-
# attribute_help:
|
22
|
-
# user:
|
23
|
-
# email_address:
|
24
|
-
|