r4 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +4 -0
- data/README.md +64 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/r4 +4 -0
- data/bin/setup +7 -0
- data/lib/r4.rb +5 -0
- data/lib/r4/config.rb +12 -0
- data/lib/r4/installations/default.rb +44 -0
- data/lib/r4/installations/testing.rb +4 -0
- data/lib/r4/odin.rb +76 -0
- data/lib/r4/recipes/bootstrap.rb +9 -0
- data/lib/r4/recipes/bootstrap_app.rb +10 -0
- data/lib/r4/recipes/devise.rb +94 -0
- data/lib/r4/recipes/exception_notification.rb +10 -0
- data/lib/r4/recipes/gemfile.rb +34 -0
- data/lib/r4/recipes/gitignore.rb +8 -0
- data/lib/r4/recipes/install_questions.rb +20 -0
- data/lib/r4/recipes/lazy_high_charts.rb +18 -0
- data/lib/r4/recipes/mysql.rb +22 -0
- data/lib/r4/recipes/rspec_generators.rb +18 -0
- data/lib/r4/recipes/upload_app.rb +9 -0
- data/lib/r4/recipes/wicked_pdf.rb +35 -0
- data/lib/r4/recipes/xlsx_support.rb +6 -0
- data/lib/r4/starter.rb +116 -0
- data/lib/r4/template/.ruby-version +1 -0
- data/lib/r4/template/app/assets/javascripts/main.js.rb +11 -0
- data/lib/r4/template/app/assets/stylesheets/custom.css.scss +128 -0
- data/lib/r4/template/app/assets/stylesheets/main.css.scss +7 -0
- data/lib/r4/template/app/assets/stylesheets/theme.css +7089 -0
- data/lib/r4/template/app/assets/stylesheets/timepress.css.scss +127 -0
- data/lib/r4/template/app/controllers/users_controller.rb +106 -0
- data/lib/r4/template/app/views/layouts/application.html.erb +64 -0
- data/lib/r4/template/app/views/users/_form.html.erb +64 -0
- data/lib/r4/template/app/views/users/edit.html.erb +10 -0
- data/lib/r4/template/app/views/users/edit_password.html.erb +49 -0
- data/lib/r4/template/app/views/users/index.html.erb +36 -0
- data/lib/r4/template/app/views/users/index.json.jbuilder +4 -0
- data/lib/r4/template/app/views/users/new.html.erb +9 -0
- data/lib/r4/template/app/views/users/show.html.erb +14 -0
- data/lib/r4/template/app/views/users/show.json.jbuilder +1 -0
- data/lib/r4/template/config/initializers/html_helpers.rb +99 -0
- data/lib/r4/template/config/locales/cs.yml +307 -0
- data/lib/r4/template/lib/tasks/bootstrap.rake +20 -0
- data/lib/r4/template/lib/tasks/upload.rake +24 -0
- data/lib/r4/version.rb +3 -0
- data/r4.gemspec +29 -0
- metadata +136 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<%= link_to users_path, :class => 'btn btn-default' do %>
|
3
|
+
<span class="glyphicon glyphicon-list-alt"></span>
|
4
|
+
Back
|
5
|
+
<% end %>
|
6
|
+
<%= link_to edit_user_path(@user), :class => 'btn btn-primary' do %>
|
7
|
+
<span class="glyphicon glyphicon-pencil"></span>
|
8
|
+
Edit
|
9
|
+
<% end %>
|
10
|
+
<h1>Show user</h1>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<dl class="dl-horizontal">
|
14
|
+
</dl>
|
@@ -0,0 +1 @@
|
|
1
|
+
json.extract! @user, :id, :created_at, :updated_at
|
@@ -0,0 +1,99 @@
|
|
1
|
+
module ApplicationHelper
|
2
|
+
|
3
|
+
def t_header name
|
4
|
+
header = t("activerecord.attributes.#{name}")
|
5
|
+
header[0] = header[0].upcase
|
6
|
+
header
|
7
|
+
end
|
8
|
+
|
9
|
+
# make long text short with '...'
|
10
|
+
def shorten text, length=20
|
11
|
+
return '' unless text.present?
|
12
|
+
res = text.scan /^(.{1,#{length}})(.*)/
|
13
|
+
"#{res[0][0]}#{res[0][1].present? ? '...' : ''}"
|
14
|
+
end
|
15
|
+
|
16
|
+
def num_warn condition
|
17
|
+
"num #{'warn' if condition}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def records_filter
|
21
|
+
concat t('records') + ': ' +
|
22
|
+
select_tag('filter[per_page]', options_for_select(%w[30 50 100],
|
23
|
+
filter.params[:per_page]) ) + "\n"
|
24
|
+
end
|
25
|
+
|
26
|
+
def menu_item name, url, test
|
27
|
+
%Q{<li#{' class=active' if params[:controller]+params[:action]=~test }><a href="#{url}">#{ name }</a></li>}.html_safe
|
28
|
+
end
|
29
|
+
|
30
|
+
def dropdown_menu name, test, &block
|
31
|
+
out = %Q[<li #{"class='active'" if params[:controller] =~ /#{test}/} id='fat-menu' class='dropdown'>]
|
32
|
+
out += %Q[<a href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">]
|
33
|
+
out += %Q[<i class="icon-user"></i>#{name}]
|
34
|
+
out += %Q[<i class="icon-caret-down"></i></a>]
|
35
|
+
out += %Q[<ul class="dropdown-menu">]
|
36
|
+
out += capture(&block)
|
37
|
+
out += %Q[</ul></li>]
|
38
|
+
out.html_safe
|
39
|
+
end
|
40
|
+
|
41
|
+
# same as I18n.l() but ignores nil
|
42
|
+
def lf date, options={}
|
43
|
+
l(date, options) if date
|
44
|
+
end
|
45
|
+
|
46
|
+
# selecting - yes, no, nil
|
47
|
+
def yes_no_select
|
48
|
+
[nil, [t('yes'), 'yes'], [t('no'), 'no'] ]
|
49
|
+
end
|
50
|
+
|
51
|
+
# same as I18n.l() but ignores nil
|
52
|
+
def lf date, options={}
|
53
|
+
options[:format] = options[:format].to_sym if options[:format]
|
54
|
+
I18n.l(date, options) if date
|
55
|
+
end
|
56
|
+
|
57
|
+
def num number, options={:precision=>2}
|
58
|
+
return number unless number.is_a? Numeric
|
59
|
+
return '' if options[:skip_zero] && number==0
|
60
|
+
number_with_precision( number, options )
|
61
|
+
end
|
62
|
+
|
63
|
+
def c_num number, precision=2, skip_zero=false
|
64
|
+
return '' if skip_zero && number==0
|
65
|
+
return number unless number.is_a? Float
|
66
|
+
number_with_precision( number, :precision=>precision, :delimiter => ' ')
|
67
|
+
# c_number_with_precision( number, precision )
|
68
|
+
end
|
69
|
+
|
70
|
+
def num3 number, skip_zero=false
|
71
|
+
c_num number, 3, skip_zero
|
72
|
+
end
|
73
|
+
|
74
|
+
def num2 number, skip_zero=false
|
75
|
+
c_num number, 2, skip_zero
|
76
|
+
end
|
77
|
+
|
78
|
+
def num0 number, skip_zero=false
|
79
|
+
return '' if skip_zero && number==0
|
80
|
+
return number if number.is_a? Fixnum
|
81
|
+
c_num number, 0, skip_zero
|
82
|
+
end
|
83
|
+
|
84
|
+
def numx number, precision=3, skip_zero=false
|
85
|
+
c_num number, precision, skip_zero
|
86
|
+
end
|
87
|
+
|
88
|
+
def delete_button objekt, text
|
89
|
+
link_to 'Odstranit', objekt, method: :delete, data: { confirm: text }, class: 'btn btn-danger pull-right' if params[:action] == 'edit'
|
90
|
+
end
|
91
|
+
|
92
|
+
def session_debug
|
93
|
+
"#{session['debug_params']}<br />#{link_to_function 'debug', "$('#debug_div').toggle()",
|
94
|
+
class: 'btn thin'}<hr class='separation'/><div class='box white spaced' id='debug_div'
|
95
|
+
style='display:none'>params:#{params.inspect}<br /><br />session#{session.inspect
|
96
|
+
}<br /><br />referrer:#{request.referrer}".html_safe if DEVEL && session['debug_params']
|
97
|
+
session['debug_params']=''
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,307 @@
|
|
1
|
+
cs:
|
2
|
+
date:
|
3
|
+
abbr_day_names:
|
4
|
+
- Ne
|
5
|
+
- Po
|
6
|
+
- Út
|
7
|
+
- St
|
8
|
+
- Čt
|
9
|
+
- Pá
|
10
|
+
- So
|
11
|
+
abbr_month_names:
|
12
|
+
-
|
13
|
+
- led
|
14
|
+
- úno
|
15
|
+
- bře
|
16
|
+
- dub
|
17
|
+
- kvě
|
18
|
+
- čvn
|
19
|
+
- čvc
|
20
|
+
- srp
|
21
|
+
- zář
|
22
|
+
- říj
|
23
|
+
- lis
|
24
|
+
- pro
|
25
|
+
day_names:
|
26
|
+
- neděle
|
27
|
+
- pondělí
|
28
|
+
- úterý
|
29
|
+
- středa
|
30
|
+
- čtvrtek
|
31
|
+
- pátek
|
32
|
+
- sobota
|
33
|
+
formats:
|
34
|
+
default: ! '%d. %m. %Y'
|
35
|
+
long: ! '%d. %B %Y'
|
36
|
+
short: ! '%d %b'
|
37
|
+
pdf: ! '[%d/ %m/ %Y], [06:00] hodin'
|
38
|
+
pdf_en: ! '[%d/ %m/ %Y], [06:00] hours'
|
39
|
+
pdf_en_date: ! '[%d/ %m/ %Y]'
|
40
|
+
pdf_en_foot: ! '%d/ %m/ %Y'
|
41
|
+
month_names:
|
42
|
+
-
|
43
|
+
- leden
|
44
|
+
- únor
|
45
|
+
- březen
|
46
|
+
- duben
|
47
|
+
- květen
|
48
|
+
- červen
|
49
|
+
- červenec
|
50
|
+
- srpen
|
51
|
+
- září
|
52
|
+
- říjen
|
53
|
+
- listopad
|
54
|
+
- prosinec
|
55
|
+
order:
|
56
|
+
- :day
|
57
|
+
- :month
|
58
|
+
- :year
|
59
|
+
datetime:
|
60
|
+
distance_in_words:
|
61
|
+
about_x_hours:
|
62
|
+
one: asi hodinou
|
63
|
+
few: asi %{count} hodinami
|
64
|
+
other: asi %{count} hodinami
|
65
|
+
about_x_months:
|
66
|
+
one: asi měsícem
|
67
|
+
few: asi %{count} měsíci
|
68
|
+
other: asi %{count} měsíci
|
69
|
+
about_x_years:
|
70
|
+
one: asi rokem
|
71
|
+
few: asi %{count} roky
|
72
|
+
other: asi %{count} roky
|
73
|
+
almost_x_years:
|
74
|
+
one: téměř rokem
|
75
|
+
few: téměř %{count} roky
|
76
|
+
other: téměř %{count} roky
|
77
|
+
half_a_minute: půl minutou
|
78
|
+
less_than_x_minutes:
|
79
|
+
one: necelou minutou
|
80
|
+
few: ani ne %{count} minutami
|
81
|
+
other: ani ne %{count} minutami
|
82
|
+
less_than_x_seconds:
|
83
|
+
one: necelou sekundou
|
84
|
+
few: ani ne %{count} sekundami
|
85
|
+
other: ani ne %{count} sekundami
|
86
|
+
over_x_years:
|
87
|
+
one: více než rokem
|
88
|
+
few: více než %{count} roky
|
89
|
+
other: více než %{count} roky
|
90
|
+
x_days:
|
91
|
+
one: 24 hodinami
|
92
|
+
few: ! '%{count} dny'
|
93
|
+
other: ! '%{count} dny'
|
94
|
+
x_minutes:
|
95
|
+
one: minutou
|
96
|
+
few: ! '%{count} minutami'
|
97
|
+
other: ! '%{count} minutami'
|
98
|
+
x_months:
|
99
|
+
one: měsícem
|
100
|
+
few: ! '%{count} měsíci'
|
101
|
+
other: ! '%{count} měsíci'
|
102
|
+
x_seconds:
|
103
|
+
one: sekundou
|
104
|
+
few: ! '%{count} sekundami'
|
105
|
+
other: ! '%{count} sekundami'
|
106
|
+
prompts:
|
107
|
+
day: Den
|
108
|
+
hour: Hodina
|
109
|
+
minute: Minuta
|
110
|
+
month: Měsíc
|
111
|
+
second: Sekunda
|
112
|
+
year: Rok
|
113
|
+
errors:
|
114
|
+
format: ! '%{attribute} %{message}'
|
115
|
+
messages:
|
116
|
+
accepted: musí být potvrzeno
|
117
|
+
blank: je povinná položka
|
118
|
+
present: musí být prázdný/á/é
|
119
|
+
confirmation: nebylo potvrzeno
|
120
|
+
empty: nesmí být prázdný/á/é
|
121
|
+
equal_to: musí být rovno %{count}
|
122
|
+
even: musí být sudé číslo
|
123
|
+
exclusion: je vyhrazeno pro jiný účel
|
124
|
+
greater_than: musí být větší než %{count}
|
125
|
+
greater_than_or_equal_to: musí být větší nebo rovno %{count}
|
126
|
+
inclusion: není v seznamu povolených hodnot
|
127
|
+
invalid: není platná hodnota
|
128
|
+
less_than: musí být méně než %{count}
|
129
|
+
less_than_or_equal_to: musí být méně nebo rovno %{count}
|
130
|
+
not_a_number: není číslo
|
131
|
+
not_an_integer: musí být celé číslo
|
132
|
+
odd: musí být liché číslo
|
133
|
+
record_invalid: ! 'Validace je neúspešná: %{errors}'
|
134
|
+
restrict_dependent_destroy:
|
135
|
+
one: "Nemůžu smazat položku protože existuje závislá/ý/é %{record}"
|
136
|
+
many: "Nemůžu smazat položku protože existuje závislé/ý %{record}"
|
137
|
+
taken: již databáze obsahuje
|
138
|
+
too_long: je příliš dlouhý/á/é (max. %{count} znaků)
|
139
|
+
too_short: je příliš krátký/á/é (min. %{count} znaků)
|
140
|
+
wrong_length: nemá správnou délku (očekáváno %{count} znaků)
|
141
|
+
other_than: "musí být rozdílný/á/é od %{count}"
|
142
|
+
template:
|
143
|
+
body: ! 'Následující pole obsahují chybně vyplněné údaje: '
|
144
|
+
header:
|
145
|
+
one: Při ukládání objektu %{model} došlo k chybám a nebylo jej možné uložit
|
146
|
+
few: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné
|
147
|
+
jej uložit
|
148
|
+
other: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné
|
149
|
+
jej uložit
|
150
|
+
helpers:
|
151
|
+
select:
|
152
|
+
prompt: Prosím vyberte si
|
153
|
+
submit:
|
154
|
+
create: Vytvořit %{model}
|
155
|
+
submit: Uložit %{model}
|
156
|
+
update: Aktualizovat %{model}
|
157
|
+
number:
|
158
|
+
currency:
|
159
|
+
format:
|
160
|
+
delimiter: ! ' '
|
161
|
+
format: ! '%n %u'
|
162
|
+
precision: 2
|
163
|
+
separator: ! ','
|
164
|
+
significant: false
|
165
|
+
strip_insignificant_zeros: false
|
166
|
+
unit: Kč
|
167
|
+
format:
|
168
|
+
delimiter: ! '.'
|
169
|
+
precision: 3
|
170
|
+
separator: ','
|
171
|
+
significant: false
|
172
|
+
strip_insignificant_zeros: false
|
173
|
+
human:
|
174
|
+
decimal_units:
|
175
|
+
format: ! '%n %u'
|
176
|
+
units:
|
177
|
+
billion: Miliarda
|
178
|
+
million: Milion
|
179
|
+
quadrillion: Kvadrilion
|
180
|
+
thousand: Tisíc
|
181
|
+
trillion: Bilion
|
182
|
+
unit: ''
|
183
|
+
format:
|
184
|
+
delimiter: ''
|
185
|
+
precision: 1
|
186
|
+
significant: false
|
187
|
+
strip_insignificant_zeros: false
|
188
|
+
storage_units:
|
189
|
+
format: ! '%n %u'
|
190
|
+
units:
|
191
|
+
byte: B
|
192
|
+
gb: GB
|
193
|
+
kb: KB
|
194
|
+
mb: MB
|
195
|
+
tb: TB
|
196
|
+
percentage:
|
197
|
+
format:
|
198
|
+
delimiter: ''
|
199
|
+
format: "%n%"
|
200
|
+
precision:
|
201
|
+
format:
|
202
|
+
delimiter: ''
|
203
|
+
support:
|
204
|
+
array:
|
205
|
+
last_word_connector: ! ' a '
|
206
|
+
two_words_connector: ! ' a '
|
207
|
+
words_connector: ! ', '
|
208
|
+
time:
|
209
|
+
am: am
|
210
|
+
formats:
|
211
|
+
default: ! '%a %d. %B %Y %H:%M %z'
|
212
|
+
long: ! '%A %d. %B %Y %H:%M'
|
213
|
+
short: ! '%d. %m. %H:%M'
|
214
|
+
pm: pm
|
215
|
+
|
216
|
+
activerecord:
|
217
|
+
errors:
|
218
|
+
models:
|
219
|
+
user:
|
220
|
+
attributes:
|
221
|
+
password_confirmation:
|
222
|
+
confirmation: 'Hesla nesouhlasí.'
|
223
|
+
password:
|
224
|
+
too_short: 'Zvolené heslo je příliš krátké. Minimum je 6 znaků.'
|
225
|
+
current_password:
|
226
|
+
invalid: 'Současné heslo bylo zadáno chybně.'
|
227
|
+
email:
|
228
|
+
invalid: 'Zadali jste neplatný e-mail.'
|
229
|
+
taken: 'V systému již existuje uživatel se stejným e-mailem.'
|
230
|
+
|
231
|
+
|
232
|
+
#
|
233
|
+
# Czech translation for Devise - config/locales/devise.cz.yml
|
234
|
+
# 'cs' locale by https://github.com/bver
|
235
|
+
# Feel free to correct my translation.
|
236
|
+
#
|
237
|
+
# Note: devise.failure.invalid was intentionally changed from "email" to "identity" -
|
238
|
+
# - not all configurations use config.authentication_keys = [ :email ]
|
239
|
+
#
|
240
|
+
# Additional translations at http://github.com/plataformatec/devise/wiki/I18n
|
241
|
+
|
242
|
+
|
243
|
+
errors:
|
244
|
+
messages:
|
245
|
+
expired: "vypršel, požádejte prosím o nový"
|
246
|
+
not_found: "nenalezen"
|
247
|
+
already_confirmed: "byl již potvrzen, prosím, zkuste se přihlásit"
|
248
|
+
not_locked: "nebyl uzamčen"
|
249
|
+
not_saved:
|
250
|
+
one: "%{resource} nebyl uložen kvůli chybě:"
|
251
|
+
other: "%{resource} nebyl uložen kvůli %{count} chybám:"
|
252
|
+
confirmation_period_expired: "musí být potvrzen během %{period}, požádejte prosím o nový"
|
253
|
+
|
254
|
+
devise:
|
255
|
+
failure:
|
256
|
+
already_authenticated: 'Přihlášení již proběhlo.'
|
257
|
+
unauthenticated: 'Musíte se zaregistrovat nebo přihlásit, pak můžete pokračovat.'
|
258
|
+
unconfirmed: 'Musíte potvrdit svůj účet, pak můžete pokračovat.'
|
259
|
+
locked: 'Váš účet je uzamčen.'
|
260
|
+
not_found_in_database: 'Neplatný e-mail nebo heslo.'
|
261
|
+
invalid: 'Neplatný e-mail nebo heslo.'
|
262
|
+
invalid_token: 'Neplatný ověřovací symbol.'
|
263
|
+
timeout: 'Vaše relace vypršela, přihlašte se prosím znovu, pak můžete pokračovat.'
|
264
|
+
inactive: 'Váš účet ještě nebyl aktivován.'
|
265
|
+
sessions:
|
266
|
+
signed_in: 'Přihlášení úspěšné.'
|
267
|
+
signed_out: 'Odhlášení úspěšné.'
|
268
|
+
passwords:
|
269
|
+
send_instructions: 'Za několik minut obdržíte email s instrukcemi k nastavení nového hesla.'
|
270
|
+
updated: 'Vaše heslo bylo úspěšně změněno. Nyní jste přihlášen(a).'
|
271
|
+
updated_not_active: 'Vaše heslo bylo změněno.'
|
272
|
+
send_paranoid_instructions: "Pokud je e-mailová adresa v naší databázi, obdržíte na ni e-mail pro obnovení hesla."
|
273
|
+
no_token: "Tato stránka je přístupná pouze přes e-mail k obnovení hesla. Pokud jste se na stránku dostali z e-mailu pro obnovení hesla, zkontrolujte prosím, zda jste použili celou adresu."
|
274
|
+
confirmations:
|
275
|
+
send_instructions: 'Za několik minut obdržíte email s instrukcemi k potvrzení vašeho účtu.'
|
276
|
+
send_paranoid_instructions: 'Pokud je e-mailová adresa v naší databázi, obdržíte na ní instrukce pro potvrzení vašeho účtu.'
|
277
|
+
confirmed: 'Váš účet byl úspěšně potvrzen. Nyní jste přihlášen(a).'
|
278
|
+
registrations:
|
279
|
+
signed_up: 'Vítejte! Registrace byla úspěšná.'
|
280
|
+
signed_up_but_unconfirmed: 'Na váš email by měla přijít zpráva s odkazem pro aktivaci účtu.'
|
281
|
+
signed_up_but_inactive: 'Registrace byla úspěšná. Nicméně se nemůžete přihlásit, protože váš účet dosud nebyl aktivován.'
|
282
|
+
signed_up_but_locked: 'Registrace byla úspěšná. Nicméně se nemůžete přihlásit, protože váš účet je uzamčen.'
|
283
|
+
updated: 'Váš účet byl úspěšně aktualizován.'
|
284
|
+
update_needs_confirmation: "Váš účet byl aktualizován, nicméně musíme ověřit vaši adresu e-mailu. Poslali jsme vám e-mail s odkazem, použijte jej prosím pro potvrzení změny e-mailové adresy."
|
285
|
+
destroyed: 'Nashle! Váš účet byl úspěšně zrušen. Doufáme, že se brzy opět uvidíme.'
|
286
|
+
unlocks:
|
287
|
+
send_instructions: 'Za několik minut obdržíte email s instrukcemi, jak odemknout svůj účet.'
|
288
|
+
unlocked: 'Váš účet byl úspěšně odemknut. Nyní jste přihlášen(a).'
|
289
|
+
send_paranoid_instructions: 'Pokud váš účet existuje, obdržíte e-mail s instrukcemi pro jeho odemčení.'
|
290
|
+
omniauth_callbacks:
|
291
|
+
success: 'Úspěšná autorizace z účtu %{kind}.'
|
292
|
+
failure: 'Není možné autorizovat z %{kind}, protože: "%{reason}".'
|
293
|
+
mailer:
|
294
|
+
confirmation_instructions:
|
295
|
+
subject: 'Instrukce pro potvrzení účtu'
|
296
|
+
reset_password_instructions:
|
297
|
+
subject: 'Instrukce k nastavení nového hesla'
|
298
|
+
unlock_instructions:
|
299
|
+
subject: 'Instrukce k odemknutí účtu'
|
300
|
+
|
301
|
+
Action: 'Akce'
|
302
|
+
New: 'Nový'
|
303
|
+
Edit: 'Změnit'
|
304
|
+
Destroy: 'Smazat'
|
305
|
+
Save: 'Uložit'
|
306
|
+
Show: 'Zobrazit'
|
307
|
+
Back: 'Zpět'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
namespace :app do
|
2
|
+
desc 'Bootstrap the application -- create admin/admin user, migrate database, etc'
|
3
|
+
task :bootstrap => :environment do
|
4
|
+
|
5
|
+
`rake db:migrate`
|
6
|
+
puts '* Migrated database'
|
7
|
+
|
8
|
+
u = User.new :login => "ADMIN_LOGIN",
|
9
|
+
:password => "ADMIN_PASSWORD",
|
10
|
+
:password_confirmation => "ADMIN_PASSWORD",
|
11
|
+
:email => "ADMIN_EMAIL",
|
12
|
+
:lastname => "ADMIN_LASTNAME"
|
13
|
+
u.admin = true
|
14
|
+
u.save
|
15
|
+
puts '* Created default *** INSECURE *** account.'
|
16
|
+
end
|
17
|
+
|
18
|
+
task :seed do
|
19
|
+
end
|
20
|
+
end
|