blueberry_rails 0.3.8 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/README.md +12 -1
  4. data/blueberry_rails.gemspec +17 -18
  5. data/lib/blueberry_rails/action_helpers.rb +4 -0
  6. data/lib/blueberry_rails/app_builder.rb +151 -18
  7. data/lib/blueberry_rails/generators/app_generator.rb +60 -2
  8. data/lib/blueberry_rails/version.rb +1 -1
  9. data/spec/blueberry_rails_spec.rb +42 -1
  10. data/spec/support/blueberry_rails_helpers.rb +1 -1
  11. data/templates/Gemfile_custom.erb +20 -5
  12. data/templates/admin_assets/javascripts/admin.coffee +6 -0
  13. data/templates/admin_assets/javascripts/admin/.keep +0 -0
  14. data/templates/admin_assets/stylesheets/admin.sass +4 -0
  15. data/templates/admin_assets/stylesheets/admin/.keep +0 -0
  16. data/templates/admin_controllers/base_controller.rb +6 -0
  17. data/templates/admin_controllers/dashboard_controller.rb +6 -0
  18. data/templates/admin_views/dashboard/show.html.slim +12 -0
  19. data/templates/admin_views/partials/_menu.html.slim +13 -0
  20. data/templates/assets/icons/_font_icons.scss +18 -0
  21. data/templates/assets/images/blueberry-logo.png +0 -0
  22. data/templates/assets/javascripts/application.coffee +6 -0
  23. data/templates/assets/javascripts/common/.keep +0 -0
  24. data/templates/assets/javascripts/frontend/.keep +0 -0
  25. data/templates/assets/stylesheets/application.sass +17 -0
  26. data/templates/assets/stylesheets/frontend/base/buttons.sass +0 -0
  27. data/templates/assets/stylesheets/frontend/base/fonts.sass +0 -0
  28. data/templates/assets/stylesheets/frontend/base/typo.sass +0 -0
  29. data/templates/assets/stylesheets/frontend/common/bootstrap-ms.sass +128 -0
  30. data/templates/assets/stylesheets/frontend/common/bootstrap-override.sass +4 -0
  31. data/templates/assets/stylesheets/frontend/common/variables.sass +26 -0
  32. data/templates/assets/stylesheets/frontend/components/.keep +0 -0
  33. data/templates/assets/stylesheets/frontend/components/navigation.sass +0 -0
  34. data/templates/assets/stylesheets/frontend/layout/body.sass +0 -0
  35. data/templates/assets/stylesheets/frontend/layout/footer.sass +0 -0
  36. data/templates/assets/stylesheets/frontend/layout/header.sass +0 -0
  37. data/templates/assets/stylesheets/frontend/pages/.keep +0 -0
  38. data/templates/assets/stylesheets/frontend/third-party/includes.sass +1 -0
  39. data/templates/assets/stylesheets/frontend/utils/functions.sass +23 -0
  40. data/templates/assets/stylesheets/frontend/utils/make-columns.sass +67 -0
  41. data/templates/assets/stylesheets/frontend/utils/mixins.sass +24 -0
  42. data/templates/assets/stylesheets/frontend/utils/render-to.sass +27 -0
  43. data/templates/assets/stylesheets/frontend/utils/renderto-debug.sass +22 -0
  44. data/templates/assets/stylesheets/ie.sass +0 -0
  45. data/templates/assets/stylesheets/print.sass +0 -0
  46. data/templates/config/initializers/airbrake.rb +6 -0
  47. data/templates/config/initializers/simple_form_bootstrap.rb +151 -0
  48. data/templates/config/initializers/translation_engine.rb +23 -0
  49. data/templates/controllers/errors_controller.rb +13 -0
  50. data/templates/fontcustom.yml +22 -0
  51. data/templates/helpers/application_helper.rb +23 -0
  52. data/templates/helpers/body_class_helper.rb +16 -0
  53. data/templates/helpers/gtm_helper.rb +30 -0
  54. data/templates/helpers/images_helper.rb +13 -0
  55. data/templates/locales/cs/cs.devise.yml +69 -0
  56. data/templates/locales/cs/cs.meta.yml +5 -0
  57. data/templates/locales/cs/cs.rails.yml +211 -0
  58. data/templates/locales/cs/cs.yml +4 -0
  59. data/templates/locales/en/en.meta.yml +5 -0
  60. data/templates/locales/en/en.yml +4 -0
  61. data/templates/public/icons/android-icon-144x144.png +0 -0
  62. data/templates/public/icons/android-icon-192x192.png +0 -0
  63. data/templates/public/icons/android-icon-36x36.png +0 -0
  64. data/templates/public/icons/android-icon-48x48.png +0 -0
  65. data/templates/public/icons/android-icon-72x72.png +0 -0
  66. data/templates/public/icons/android-icon-96x96.png +0 -0
  67. data/templates/public/icons/apple-icon-114x114.png +0 -0
  68. data/templates/public/icons/apple-icon-120x120.png +0 -0
  69. data/templates/public/icons/apple-icon-144x144.png +0 -0
  70. data/templates/public/icons/apple-icon-152x152.png +0 -0
  71. data/templates/public/icons/apple-icon-180x180.png +0 -0
  72. data/templates/public/icons/apple-icon-57x57.png +0 -0
  73. data/templates/public/icons/apple-icon-60x60.png +0 -0
  74. data/templates/public/icons/apple-icon-72x72.png +0 -0
  75. data/templates/public/icons/apple-icon-76x76.png +0 -0
  76. data/templates/public/icons/apple-icon-precomposed.png +0 -0
  77. data/templates/public/icons/apple-icon.png +0 -0
  78. data/templates/public/icons/favicon-16x16.png +0 -0
  79. data/templates/public/icons/favicon-32x32.png +0 -0
  80. data/templates/public/icons/favicon-96x96.png +0 -0
  81. data/templates/public/icons/favicon.ico +0 -0
  82. data/templates/public/icons/ms-icon-144x144.png +0 -0
  83. data/templates/public/icons/ms-icon-150x150.png +0 -0
  84. data/templates/public/icons/ms-icon-310x310.png +0 -0
  85. data/templates/public/icons/ms-icon-70x70.png +0 -0
  86. data/templates/{root_controller_spec.rb → spec/controllers/root_controller_spec.rb} +0 -0
  87. data/templates/{database_cleaner_setup.rb → spec/database_cleaner_setup.rb} +0 -0
  88. data/templates/spec/factories/administrators.rb +6 -0
  89. data/templates/{users_factory.rb → spec/factories/users.rb} +0 -0
  90. data/templates/{factories_spec.rb → spec/factories_spec.rb} +0 -0
  91. data/templates/{factory_girl_syntax.rb → spec/factory_girl_syntax.rb} +0 -0
  92. data/templates/{mail_body_helpers.rb → spec/mail_body_helpers.rb} +0 -0
  93. data/templates/{spec_helper.rb → spec/spec_helper.rb} +5 -0
  94. data/templates/tasks/icons.rake +19 -0
  95. data/templates/tasks/images.rake +12 -0
  96. data/templates/travis.yml.erb +19 -18
  97. data/templates/views/application/_favicon.html.slim +16 -0
  98. data/templates/views/application/_flashes.html.slim +5 -0
  99. data/templates/views/application/_footer.html.slim +1 -0
  100. data/templates/views/application/_gtm.html.slim +7 -0
  101. data/templates/views/application/_header.html.slim +1 -0
  102. data/templates/views/layouts/admin.html.slim.erb +21 -0
  103. data/templates/views/layouts/application.html.slim.erb +26 -0
  104. metadata +95 -12
  105. data/templates/_flashes.html.slim +0 -5
  106. data/templates/layout.html.slim +0 -15
@@ -0,0 +1,13 @@
1
+ module ImagesHelper
2
+ # Acts as a thin wrapper for image_tag and generates an srcset attribute for regular image tags
3
+ # for usage with responsive images polyfills like picturefill.js, supports asset pipeline path helpers.
4
+ #
5
+ # image_set_tag 'pic_1980.jpg', { 'pic_640.jpg' => '640w', 'pic_1024.jpg' => '1024w', 'pic_1980.jpg' => '1980w' }, sizes: '100vw', class: 'my-image'
6
+ #
7
+ # => <img src="/assets/ants_1980.jpg" srcset="/assets/pic_640.jpg 640w, /assets/pic_1024.jpg 1024w, /assets/pic_1980.jpg 1980w" sizes="100vw" class="my-image">
8
+ #
9
+ def image_set_tag(source, srcset = {}, options = {})
10
+ srcset = srcset.map { |src, size| "#{path_to_image(src)} #{size}" }.join(', ')
11
+ image_tag(source, options.merge(srcset: srcset))
12
+ end
13
+ end
@@ -0,0 +1,69 @@
1
+ #
2
+ # Czech translation for Devise - config/locales/devise.cz.yml
3
+ # 'cs' locale by https://github.com/bver
4
+ # Feel free to correct my translation.
5
+ #
6
+ # Note: devise.failure.invalid was intentionally changed from "email" to "identity" -
7
+ # - not all configurations use config.authentication_keys = [ :email ]
8
+ #
9
+ # Additional translations at http://github.com/plataformatec/devise/wiki/I18n
10
+
11
+ cs:
12
+ errors:
13
+ messages:
14
+ expired: "vypršel, požádejte prosím o nový"
15
+ not_found: "nenalezen"
16
+ already_confirmed: "byl již potvrzen, prosím, zkuste se přihlásit"
17
+ not_locked: "nebyl uzamčen"
18
+ not_saved:
19
+ one: "%{resource} nebyl uložen kvůli chybě:"
20
+ other: "%{resource} nebyl uložen kvůli %{count} chybám:"
21
+ confirmation_period_expired: "musí být potvrzen během %{period}, požádejte prosím o nový"
22
+
23
+ devise:
24
+ failure:
25
+ already_authenticated: 'Přihlášení již proběhlo.'
26
+ unauthenticated: 'Musíte se zaregistrovat nebo přihlásit, pak můžete pokračovat.'
27
+ unconfirmed: 'Musíte potvrdit svůj účet, pak můžete pokračovat.'
28
+ locked: 'Váš účet je uzamčen.'
29
+ not_found_in_database: 'Neplatný e-mail nebo heslo.'
30
+ invalid: 'Neplatný e-mail nebo heslo.'
31
+ invalid_token: 'Neplatný ověřovací symbol.'
32
+ suspended: 'Váš účet byl zablokován.'
33
+ timeout: 'Vaše relace vypršela, přihlašte se prosím znovu, pak můžete pokračovat.'
34
+ inactive: 'Váš účet ještě nebyl aktivován.'
35
+ sessions:
36
+ signed_in: 'Přihlášení úspěšné.'
37
+ signed_out: 'Odhlášení úspěšné.'
38
+ passwords:
39
+ send_instructions: 'Za několik minut obdržíte email s instrukcemi k nastavení nového hesla.'
40
+ updated: 'Vaše heslo bylo úspěšně změněno. Nyní jste přihlášen(a).'
41
+ updated_not_active: 'Vaše heslo bylo změněno.'
42
+ send_paranoid_instructions: "Pokud je e-mailová adresa v naší databázi, obdržíte na ni e-mail pro obnovení hesla."
43
+ 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."
44
+ confirmations:
45
+ send_instructions: 'Za několik minut obdržíte email s instrukcemi k potvrzení vašeho účtu.'
46
+ send_paranoid_instructions: 'Pokud je e-mailová adresa v naší databázi, obdržíte na ní instrukce pro potvrzení vašeho účtu.'
47
+ confirmed: 'Váš účet byl úspěšně potvrzen. Nyní jste přihlášen(a).'
48
+ registrations:
49
+ signed_up: 'Vítejte! Registrace byla úspěšná.'
50
+ signed_up_but_unconfirmed: 'Na váš email by měla přijít zpráva s odkazem pro aktivaci účtu.'
51
+ signed_up_but_inactive: 'Registrace byla úspěšná. Nicméně se nemůžete přihlásit, protože váš účet dosud nebyl aktivován.'
52
+ signed_up_but_locked: 'Registrace byla úspěšná. Nicméně se nemůžete přihlásit, protože váš účet je uzamčen.'
53
+ updated: 'Váš účet byl úspěšně aktualizován.'
54
+ 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."
55
+ destroyed: 'Nashle! Váš účet byl úspěšně zrušen. Doufáme, že se brzy opět uvidíme.'
56
+ unlocks:
57
+ send_instructions: 'Za několik minut obdržíte email s instrukcemi, jak odemknout svůj účet.'
58
+ unlocked: 'Váš účet byl úspěšně odemknut. Nyní jste přihlášen(a).'
59
+ send_paranoid_instructions: 'Pokud váš účet existuje, obdržíte e-mail s instrukcemi pro jeho odemčení.'
60
+ omniauth_callbacks:
61
+ success: 'Úspěšná autorizace z účtu %{kind}.'
62
+ failure: 'Není možné autorizovat z %{kind}, protože: "%{reason}".'
63
+ mailer:
64
+ confirmation_instructions:
65
+ subject: 'Instrukce pro potvrzení účtu'
66
+ reset_password_instructions:
67
+ subject: 'Instrukce k nastavení nového hesla'
68
+ unlock_instructions:
69
+ subject: 'Instrukce k odemknutí účtu'
@@ -0,0 +1,5 @@
1
+ cs:
2
+ root:
3
+ index:
4
+ meta_title: "Ahoj světe!"
5
+ meta_description: "Blueberry Rails default project description"
@@ -0,0 +1,211 @@
1
+ ---
2
+ cs:
3
+ date:
4
+ abbr_day_names:
5
+ - Ne
6
+ - Po
7
+ - Út
8
+ - St
9
+ - Čt
10
+ - Pá
11
+ - So
12
+ abbr_month_names:
13
+ -
14
+ - led
15
+ - úno
16
+ - bře
17
+ - dub
18
+ - kvě
19
+ - čvn
20
+ - čvc
21
+ - srp
22
+ - zář
23
+ - říj
24
+ - lis
25
+ - pro
26
+ day_names:
27
+ - neděle
28
+ - pondělí
29
+ - úterý
30
+ - středa
31
+ - čtvrtek
32
+ - pátek
33
+ - sobota
34
+ formats:
35
+ default: "%d. %m. %Y"
36
+ long: "%d. %B %Y"
37
+ short: "%d %b"
38
+ month_names:
39
+ -
40
+ - leden
41
+ - únor
42
+ - březen
43
+ - duben
44
+ - květen
45
+ - červen
46
+ - červenec
47
+ - srpen
48
+ - září
49
+ - říjen
50
+ - listopad
51
+ - prosinec
52
+ order:
53
+ - :day
54
+ - :month
55
+ - :year
56
+ datetime:
57
+ distance_in_words:
58
+ about_x_hours:
59
+ one: asi hodinou
60
+ few: asi %{count} hodinami
61
+ other: asi %{count} hodinami
62
+ about_x_months:
63
+ one: asi měsícem
64
+ few: asi %{count} měsíci
65
+ other: asi %{count} měsíci
66
+ about_x_years:
67
+ one: asi rokem
68
+ few: asi %{count} roky
69
+ other: asi %{count} roky
70
+ almost_x_years:
71
+ one: téměř rokem
72
+ few: téměř %{count} roky
73
+ other: téměř %{count} roky
74
+ half_a_minute: půl minutou
75
+ less_than_x_minutes:
76
+ one: necelou minutou
77
+ few: ani ne %{count} minutami
78
+ other: ani ne %{count} minutami
79
+ less_than_x_seconds:
80
+ one: necelou sekundou
81
+ few: ani ne %{count} sekundami
82
+ other: ani ne %{count} sekundami
83
+ over_x_years:
84
+ one: více než rokem
85
+ few: více než %{count} roky
86
+ other: více než %{count} roky
87
+ x_days:
88
+ one: 24 hodinami
89
+ few: "%{count} dny"
90
+ other: "%{count} dny"
91
+ x_minutes:
92
+ one: minutou
93
+ few: "%{count} minutami"
94
+ other: "%{count} minutami"
95
+ x_months:
96
+ one: měsícem
97
+ few: "%{count} měsíci"
98
+ other: "%{count} měsíci"
99
+ x_seconds:
100
+ one: sekundou
101
+ few: "%{count} sekundami"
102
+ other: "%{count} sekundami"
103
+ prompts:
104
+ day: Den
105
+ hour: Hodina
106
+ minute: Minuta
107
+ month: Měsíc
108
+ second: Sekunda
109
+ year: Rok
110
+ errors:
111
+ format: "%{attribute} %{message}"
112
+ messages:
113
+ accepted: musí být potvrzeno
114
+ blank: je povinná položka
115
+ present: musí být prázdný/á/é
116
+ confirmation: nebylo potvrzeno
117
+ empty: nesmí být prázdný/á/é
118
+ equal_to: musí být rovno %{count}
119
+ even: musí být sudé číslo
120
+ exclusion: je vyhrazeno pro jiný účel
121
+ greater_than: musí být větší než %{count}
122
+ greater_than_or_equal_to: musí být větší nebo rovno %{count}
123
+ inclusion: není v seznamu povolených hodnot
124
+ invalid: není platná hodnota
125
+ less_than: musí být méně než %{count}
126
+ less_than_or_equal_to: musí být méně nebo rovno %{count}
127
+ not_a_number: není číslo
128
+ not_an_integer: musí být celé číslo
129
+ odd: musí být liché číslo
130
+ record_invalid: 'Validace je neúspešná: %{errors}'
131
+ restrict_dependent_destroy:
132
+ one: Nemůžu smazat položku protože existuje závislá/ý/é %{record}
133
+ many: Nemůžu smazat položku protože existuje závislé/ý %{record}
134
+ taken: již databáze obsahuje
135
+ too_long: je příliš dlouhý/á/é (max. %{count} znaků)
136
+ too_short: je příliš krátký/á/é (min. %{count} znaků)
137
+ wrong_length: nemá správnou délku (očekáváno %{count} znaků)
138
+ other_than: musí být rozdílný/á/é od %{count}
139
+ template:
140
+ body: 'Následující pole obsahují chybně vyplněné údaje: '
141
+ header:
142
+ one: Při ukládání objektu %{model} došlo k chybám a nebylo jej možné uložit
143
+ few: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné
144
+ jej uložit
145
+ other: Při ukládání objektu %{model} došlo ke %{count} chybám a nebylo možné
146
+ jej uložit
147
+ helpers:
148
+ select:
149
+ prompt: Prosím vyberte si
150
+ submit:
151
+ create: Vytvořit %{model}
152
+ submit: Uložit %{model}
153
+ update: Upravit %{model}
154
+ number:
155
+ currency:
156
+ format:
157
+ delimiter: " "
158
+ format: "%n %u"
159
+ precision: 2
160
+ separator: ","
161
+ significant: false
162
+ strip_insignificant_zeros: false
163
+ unit: Kč
164
+ format:
165
+ delimiter: "."
166
+ precision: 3
167
+ separator: ","
168
+ significant: false
169
+ strip_insignificant_zeros: false
170
+ human:
171
+ decimal_units:
172
+ format: "%n %u"
173
+ units:
174
+ billion: Miliarda
175
+ million: Milion
176
+ quadrillion: Kvadrilion
177
+ thousand: Tisíc
178
+ trillion: Bilion
179
+ unit: ''
180
+ format:
181
+ delimiter: ''
182
+ precision: 1
183
+ significant: false
184
+ strip_insignificant_zeros: false
185
+ storage_units:
186
+ format: "%n %u"
187
+ units:
188
+ byte: B
189
+ gb: GB
190
+ kb: KB
191
+ mb: MB
192
+ tb: TB
193
+ percentage:
194
+ format:
195
+ delimiter: ''
196
+ format: "%n%"
197
+ precision:
198
+ format:
199
+ delimiter: ''
200
+ support:
201
+ array:
202
+ last_word_connector: " a "
203
+ two_words_connector: " a "
204
+ words_connector: ", "
205
+ time:
206
+ am: am
207
+ formats:
208
+ default: "%a %d. %B %Y %H:%M %z"
209
+ long: "%A %d. %B %Y %H:%M"
210
+ short: "%d. %m. %Y %H:%M"
211
+ pm: pm
@@ -0,0 +1,4 @@
1
+ cs:
2
+ root:
3
+ index:
4
+ hello: "Ahoj světe!"
@@ -0,0 +1,5 @@
1
+ en:
2
+ root:
3
+ index:
4
+ meta_title: "Hello world!"
5
+ meta_description: "Blueberry Rails default project description"
@@ -0,0 +1,4 @@
1
+ en:
2
+ root:
3
+ index:
4
+ hello: "Hello world!"
Binary file
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :administrator do
3
+ sequence(:email) { |n| "joe#{n}@example.com" }
4
+ password 'joesthebest'
5
+ end
6
+ end
@@ -21,8 +21,13 @@ RSpec.configure do |config|
21
21
  config.infer_base_class_for_anonymous_controllers = false
22
22
  config.order = 'random'
23
23
  config.use_transactional_fixtures = false
24
+ config.include MailBodyHelpers, type: :mailer
24
25
  end
25
26
 
26
27
  Capybara.javascript_driver = :poltergeist
27
28
 
29
+ Capybara.register_driver :poltergeist do |app|
30
+ Capybara::Poltergeist::Driver.new(app, { js_errors: false, timeout: 15 })
31
+ end
32
+
28
33
  WebMock.disable_net_connect!(allow_localhost: true, allow: 'codeclimate.com')
@@ -0,0 +1,19 @@
1
+ namespace :icons do
2
+ task :compile do
3
+ puts "Start of icons optimizing"
4
+
5
+ files = Dir.glob("#{Rails.root}/app/assets/icons/*.svg")
6
+
7
+ files.each do |file|
8
+ SvgOptimizer.optimize_file(file)
9
+ end
10
+
11
+ puts "Svg optimizing done."
12
+ puts "----------------------"
13
+ puts 'Compiling icons...'
14
+ puts `fontcustom compile`
15
+ puts "----------------------"
16
+ puts "Icons compilation done."
17
+
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ namespace :images do
2
+ task :optimize do
3
+ puts "Start of images optimizing"
4
+
5
+ files = Dir.glob("#{Rails.root}/app/assets/images/*")
6
+ files.each do |file|
7
+ ImageOptimizer.new(file).optimize
8
+ end
9
+
10
+ puts "Images optimizing done"
11
+ end
12
+ end