kazan 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 58853891fe8da4be3358010f40f2a01ef1627fa4
4
- data.tar.gz: 2aaded8479739ef637e4cadc8e4c0cf1af6bee5b
3
+ metadata.gz: 1a146cf90117988b0e012a40f7caaad4e4fabd78
4
+ data.tar.gz: 3d12728bee49099e001b83d07a30a5880291e433
5
5
  SHA512:
6
- metadata.gz: 9c695920aca3d9de686e53c47a11e69d3bf74ee8f5fd0714e2b4754d14068cddae00464d9069b1b464e823361f0fd5a9718a629bd50c3f633fa35eb9e7eef998
7
- data.tar.gz: 27899722fd8c02e3f8bb5879b94eb2aa08f1d3e4e0b07f50e596797d98badd43dcdbae9637d96b01daa0c0bc3a1a42886b7a46f6f21740b5547f0326b4bf2dc9
6
+ metadata.gz: '0933b186353c97a1fff600a1fd413f11bb26739d98ad83f73536196507d54ab636c3e162eed4e392084c31b0095bb5eb6e323395567bf6dd0ea7bdcebd05b37c'
7
+ data.tar.gz: b7481dba81323156d85a26890b99861dfdf67c71f1f346618aa9f0d48e4a335c03e7638fabae5417b33dca4d4662805c0e855526fb54165a8e8e5b8a6b0b55cd
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Kazan creates rails project and setups predefined gems and tools.
4
4
 
5
- ![img](http://res.cloudinary.com/dtoqqxqjv/image/upload/c_scale,w_300/v1480266858/imageedit_4_6229938689_bt8x5c.png)
5
+ ![img](http://res.cloudinary.com/dtoqqxqjv/image/upload/c_scale,w_300/v1489144588/github/imageedit_4_6229938689_bt8x5c.png)
6
6
 
7
7
  ## Installation
8
8
 
@@ -24,10 +24,6 @@ This generator maps all flags to rails native generator, for example you can cre
24
24
 
25
25
  See all gems that will be installed to project in [Gemfile](https://github.com/khusnetdinov/kazan/blob/master/templates/Gemfile.erb) for web application or for api [Gemfile.api](https://github.com/khusnetdinov/kazan/blob/master/templates/Gemfile.api.erb).
26
26
 
27
- ## Options
28
-
29
- - `--static` to use [Bitters](https://github.com/thoughtbot/bitters), [Bourbon](https://github.com/thoughtbot/bourbon), [Neat](https://github.com/thoughtbot/neat), [Refills](https://github.com/thoughtbot/refills).
30
-
31
27
  ## Gems
32
28
 
33
29
  It includes applications gems:
@@ -36,9 +32,7 @@ It includes applications gems:
36
32
  - [I18n](https://github.com/svenfuchs/rails-i18n) is central point to collect locale data for use in Ruby on Rails.
37
33
  - [PostgreSQL](https://www.postgresql.org/) database with [PG](https://rubygems.org/gems/pg/versions/0.18.4) adapter is used by defaul.
38
34
  - [Puma](http://puma.io/) is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications.
39
- - [Rack Canonical Host](https://github.com/tylerhunt/rack-canonical-host) is middleware that lets you define a single host name as the canonical host for your application. Requests for other host names will then be redirected to the canonical host.
40
35
  - [Rack Timeout](https://github.com/heroku/rack-timeout) aborts requests that are taking too long; an exception is raised.
41
- - [Recepient Interceptor](https://github.com/croaky/recipient_interceptor) never accidentally send emails to real people from your staging environment.
42
36
  - [Rails 5.0.0](http://rubyonrails.org/)
43
37
  - [Rails Config](https://github.com/railsconfig/config) helps you easily manage environment specific settings in an easy and usable manner.
44
38
  - [Rollbar](https://rollbar.com/) error monitoring fits right into your continuous delivery and deployment workflows to provide confidence in every code release.
@@ -46,7 +40,6 @@ It includes applications gems:
46
40
 
47
41
  It includes assets gems [API EXCLUDED]:
48
42
 
49
- - [Autoprefixer Rails](https://github.com/ai/autoprefixer-rails) is a tool to parse CSS and add vendor prefixes to CSS rules using values from the [Can I Use](http://caniuse.com/).
50
43
  - [Normalize Css](https://necolas.github.io/normalize.css/) makes browsers render all elements more consistently and in line with modern standards. It precisely targets only the styles that need normalizing.
51
44
  - [Sass](http://sass-lang.com/) is the most mature, stable, and powerful professional grade CSS extension language in the world.
52
45
 
@@ -72,6 +65,8 @@ It includes tests gems:
72
65
  - [Factory Girl](https://github.com/thoughtbot/factory_girl) is a fixtures replacement with a straightforward definition syntax.
73
66
  - [Faker](https://github.com/stympy/faker) a port of Perl's Data::Faker library that generates fake data.
74
67
  - [Formulaic](https://github.com/thoughtbot/formulaic) [API EXCLUDED] the tedium of formulaic form filling with Capybara.
68
+ - [I18n-Tasks](https://github.com/glebm/i18n-tasks) [API EXCLUDED] Gem that helps manage locales and test if are there problems.
69
+ - [I18n-Yaml-Sorter](https://github.com/redealumni/i18n_yaml_sorter) [API EXCLUDED] Sort all locales by keys.
75
70
  - [Launchy](https://github.com/copiousfreetime/launchy) [API EXCLUDED] helper class for launching cross-platform applications in a fire and forget manner.
76
71
  - [Rspec](https://github.com/rspec/rspec-rails) is a testing framework for Rails.
77
72
  - [Simplecov](https://github.com/colszowka/simplecov) is a code coverage analysis tool for Ruby.
@@ -65,7 +65,6 @@ module Kazan
65
65
  end
66
66
 
67
67
  def assets_config
68
- copy_file 'browserslist', 'app/assets/stylesheets/browserslist'
69
68
  copy_file 'errors.rb', 'config/initializers/errors.rb'
70
69
  copy_file 'json_encoding.rb', 'config/initializers/json_encoding.rb'
71
70
  end
@@ -150,11 +149,6 @@ module Kazan
150
149
 
151
150
  def stylesheets_gems
152
151
  gems = <<-RUBY
153
-
154
- gem 'bourbon', '5.0.0.beta.6'
155
- gem 'neat', '~> 1.8.0'
156
- gem 'bitters'
157
- gem 'refills', group: [:development, :test]
158
152
  RUBY
159
153
 
160
154
  inject_into_file 'Gemfile', gems,
@@ -171,15 +165,6 @@ gem 'refills', group: [:development, :test]
171
165
  force: true)
172
166
  end
173
167
 
174
- def refills
175
- generate 'refills:import', 'flashes'
176
- remove_dir 'app/views/refills'
177
- end
178
-
179
- def bitters
180
- run 'bitters install --path app/assets/stylesheets'
181
- end
182
-
183
168
  def static_pages
184
169
  meta_tags = <<-EOS
185
170
  <meta charset="utf-8" />
@@ -193,6 +178,11 @@ gem 'refills', group: [:development, :test]
193
178
  end
194
179
  end
195
180
 
181
+ def setup_locales
182
+ copy_file 'i18n-tasks.yml', 'config/i18n-tasks.yml'
183
+ copy_file 'i18n_spec.rb', 'spec/i18n_spec.rb'
184
+ end
185
+
196
186
  def bundler_audit_config
197
187
  copy_file 'bundler_audit.rake', 'lib/tasks/bundler_audit.rake'
198
188
  append_file 'Rakefile', %{\ntask default: 'bundler:audit'\n}
@@ -33,6 +33,7 @@ module Kazan
33
33
  invoke :setup_assets
34
34
  invoke :setup_helpers
35
35
  invoke :setup_error_pages
36
+ invoke :setup_locales
36
37
 
37
38
  invoke :setup_static
38
39
 
@@ -135,8 +136,6 @@ module Kazan
135
136
  build :remove_turbolinks
136
137
  build :stylesheets_gems
137
138
  build :stylesheets_manifest
138
- build :refils
139
- build :bitters
140
139
  end
141
140
  end
142
141
  end
@@ -148,6 +147,13 @@ module Kazan
148
147
  end
149
148
  end
150
149
 
150
+ def setup_locales
151
+ unless options[:api]
152
+ say 'Setup locales tools'
153
+ build :setup_locales
154
+ end
155
+ end
156
+
151
157
  def setup_bundler_audit
152
158
  say 'Setup bundler audit'
153
159
  build :bundler_audit_config
@@ -1,5 +1,5 @@
1
1
  module Kazan
2
- VERSION = '0.3.1'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  RAILS_VERSION = '~> 5.0.0'.freeze
4
4
  RUBY_PROJECT_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip.freeze
5
5
  end
@@ -20,7 +20,6 @@ RSpec.describe 'Project with configuration' do
20
20
  'Gemfile',
21
21
  'Procfile',
22
22
  'README.md',
23
- # 'browserList',
24
23
  '.ruby-version',
25
24
  '.gitignore',
26
25
  '.env.local.example',
@@ -44,11 +43,9 @@ RSpec.describe 'Project with configuration' do
44
43
 
45
44
  GEMS = [
46
45
  'annotate',
47
- 'autoprefixer-rails',
48
46
  'awesome_print',
49
47
  'better_errors',
50
48
  'bullet',
51
- 'bundler-audit',
52
49
  'capybara',
53
50
  'config',
54
51
  'database_cleaner',
@@ -67,11 +64,10 @@ RSpec.describe 'Project with configuration' do
67
64
  'pry-rails',
68
65
  'puma',
69
66
  'rack-mini-profiler',
70
- 'rack-canonical-host',
71
67
  'rack-timeout',
72
- 'recipient_interceptor',
73
68
  'rails',
74
- 'rails-i18n',
69
+ 'i18n-tasks',
70
+ 'i18n_yaml_sorter',
75
71
  'rollbar',
76
72
  'rspec-rails',
77
73
  'sass-rails',
@@ -141,12 +137,6 @@ RSpec.describe 'Project with configuration' do
141
137
  end
142
138
  end
143
139
 
144
- # describe 'simple_from.rb' do
145
- # subject { load_file 'config/initializers/simple_form.rb' }
146
-
147
- # it { is_expected.to be_truthy }
148
- # end
149
-
150
140
  RSPEC.each do |helper|
151
141
  describe helper do
152
142
  subject { load_file "spec/#{helper}" }
@@ -10,8 +10,6 @@ gem 'pg'
10
10
 
11
11
  gem 'rollbar'
12
12
 
13
- gem 'recipient_interceptor'
14
- gem 'rack-canonical-host'
15
13
  gem 'puma'
16
14
 
17
15
  group :development do
@@ -8,7 +8,6 @@ gem 'config'
8
8
 
9
9
  gem 'pg'
10
10
 
11
- gem 'autoprefixer-rails'
12
11
  gem 'normalize-rails', '~> 3.0.0'
13
12
  gem 'sass-rails', '~> 5.0'
14
13
 
@@ -22,8 +21,6 @@ gem 'simple_form'
22
21
 
23
22
  gem 'rollbar'
24
23
 
25
- gem 'recipient_interceptor'
26
- gem 'rack-canonical-host'
27
24
  gem 'puma'
28
25
 
29
26
  group :development do
@@ -35,6 +32,8 @@ group :development do
35
32
  gem 'spring'
36
33
  gem 'spring-commands-rspec'
37
34
  gem 'web-console'
35
+ gem 'i18n-tasks'
36
+ gem 'i18n_yaml_sorter'
38
37
  end
39
38
 
40
39
  group :development, :test do
@@ -4,14 +4,14 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="ROBOTS" content="NOODP" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
7
- <title><%= title %></title>
7
+ <title>Application</title>
8
8
  <%= stylesheet_link_tag :application, media: "all" %>
9
9
  <%= csrf_meta_tags %>
10
10
  </head>
11
- <body class="<%%= body_class %>">
12
- <%= render "shared/flashes" -%>
11
+ <body>
12
+ <%= render "layouts/shared/flashes" -%>
13
13
  <%= yield %>
14
- <%= render "shared/javascript" %>
15
- <%= render "shared/styles" %>
14
+ <%= render "layouts/shared/javascript" %>
15
+ <%= render "layouts/shared/styles" %>
16
16
  </body>
17
17
  </html>
@@ -2,8 +2,6 @@
2
2
 
3
3
  <%= yield :javascript %>
4
4
 
5
- <%= render "analytics" %>
6
-
7
5
  <% if Rails.env.test? %>
8
6
  <%= javascript_tag do %>
9
7
  $.fx.off = true;
@@ -0,0 +1,121 @@
1
+ # i18n-tasks finds and manages missing and unused translations: https://github.com/glebm/i18n-tasks
2
+
3
+ # The "main" locale.
4
+ base_locale: en
5
+ ## All available locales are inferred from the data by default. Alternatively, specify them explicitly:
6
+ # locales: [es, fr]
7
+ ## Reporting locale, default: en. Available: en, ru.
8
+ # internal_locale: en
9
+
10
+ # Read and write translations.
11
+ data:
12
+ ## Translations are read from the file system. Supported format: YAML, JSON.
13
+ ## Provide a custom adapter:
14
+ # adapter: I18n::Tasks::Data::FileSystem
15
+
16
+ # Locale files or `File.find` patterns where translations are read from:
17
+ read:
18
+ ## Default:
19
+ # - config/locales/%{locale}.yml
20
+ ## More files:
21
+ # - config/locales/**/*.%{locale}.yml
22
+ ## Another gem (replace %#= with %=):
23
+ # - "<%#= %x[bundle show vagrant].chomp %>/templates/locales/%{locale}.yml"
24
+
25
+ # Locale files to write new keys to, based on a list of key pattern => file rules. Matched from top to bottom:
26
+ # `i18n-tasks normalize -p` will force move the keys according to these rules
27
+ write:
28
+ ## For example, write devise and simple form keys to their respective files:
29
+ # - ['{devise, simple_form}.*', 'config/locales/\1.%{locale}.yml']
30
+ ## Catch-all default:
31
+ # - config/locales/%{locale}.yml
32
+
33
+ ## Specify the router (see Readme for details). Valid values: conservative_router, pattern_router, or a custom class.
34
+ # router: conservative_router
35
+
36
+ yaml:
37
+ write:
38
+ # do not wrap lines at 80 characters
39
+ line_width: -1
40
+
41
+ ## Pretty-print JSON:
42
+ # json:
43
+ # write:
44
+ # indent: ' '
45
+ # space: ' '
46
+ # object_nl: "\n"
47
+ # array_nl: "\n"
48
+
49
+ # Find translate calls
50
+ search:
51
+ ## Paths or `File.find` patterns to search in:
52
+ # paths:
53
+ # - app/
54
+
55
+ ## Root directories for relative keys resolution.
56
+ # relative_roots:
57
+ # - app/controllers
58
+ # - app/helpers
59
+ # - app/mailers
60
+ # - app/presenters
61
+ # - app/views
62
+
63
+ ## Files or `File.fnmatch` patterns to exclude from search. Some files are always excluded regardless of this setting:
64
+ ## %w(*.jpg *.png *.gif *.svg *.ico *.eot *.otf *.ttf *.woff *.woff2 *.pdf *.css *.sass *.scss *.less *.yml *.json)
65
+ exclude:
66
+ - app/assets/images
67
+ - app/assets/fonts
68
+ - app/assets/videos
69
+
70
+ ## Alternatively, the only files or `File.fnmatch patterns` to search in `paths`:
71
+ ## If specified, this settings takes priority over `exclude`, but `exclude` still applies.
72
+ # only: ["*.rb", "*.html.slim"]
73
+
74
+ ## If `strict` is `false`, guess usages such as t("categories.#{category}.title"). The default is `true`.
75
+ # strict: true
76
+
77
+ ## Multiple scanners can be used. Their results are merged.
78
+ ## The options specified above are passed down to each scanner. Per-scanner options can be specified as well.
79
+ ## See this example of a custom scanner: https://github.com/glebm/i18n-tasks/wiki/A-custom-scanner-example
80
+
81
+ ## Google Translate
82
+ # translation:
83
+ # # Get an API key and set billing info at https://code.google.com/apis/console to use Google Translate
84
+ # api_key: "AbC-dEf5"
85
+
86
+ ## Do not consider these keys missing:
87
+ # ignore_missing:
88
+ # - 'errors.messages.{accepted,blank,invalid,too_short,too_long}'
89
+ # - '{devise,simple_form}.*'
90
+
91
+ ## Consider these keys used:
92
+ # ignore_unused:
93
+ # - 'activerecord.attributes.*'
94
+ # - '{devise,kaminari,will_paginate}.*'
95
+ # - 'simple_form.{yes,no}'
96
+ # - 'simple_form.{placeholders,hints,labels}.*'
97
+ # - 'simple_form.{error_notification,required}.:'
98
+
99
+ ## Exclude these keys from the `i18n-tasks eq-base' report:
100
+ # ignore_eq_base:
101
+ # all:
102
+ # - common.ok
103
+ # fr,es:
104
+ # - common.brand
105
+
106
+ ## Ignore these keys completely:
107
+ # ignore:
108
+ # - kaminari.*
109
+
110
+ ## Sometimes, it isn't possible for i18n-tasks to match the key correctly,
111
+ ## e.g. in case of a relative key defined in a helper method.
112
+ ## In these cases you can use the built-in PatternMapper to map patterns to keys, e.g.:
113
+ #
114
+ # <%# I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
115
+ # only: %w(*.html.haml *.html.slim),
116
+ # patterns: [['= title\b', '.page_title']] %>
117
+ #
118
+ # The PatternMapper can also match key literals via a special %{key} interpolation, e.g.:
119
+ #
120
+ # <%# I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
121
+ # patterns: [['\bSpree\.t[( ]\s*%{key}', 'spree.%{key}']] %>
@@ -0,0 +1,17 @@
1
+ require 'i18n/tasks'
2
+
3
+ RSpec.describe 'I18n' do
4
+ let(:i18n) { I18n::Tasks::BaseTask.new }
5
+ let(:missing_keys) { i18n.missing_keys }
6
+ let(:unused_keys) { i18n.unused_keys }
7
+
8
+ it 'does not have missing keys' do
9
+ message = "Missing #{missing_keys.leaves.count} i18n keys, run `i18n-tasks missing' to show them"
10
+ expect(missing_keys).to be_empty, message
11
+ end
12
+
13
+ it 'does not have unused keys' do
14
+ message = "#{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to show them"
15
+ expect(unused_keys).to be_empty, message
16
+ end
17
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kazan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marat Khusnetdinov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-21 00:00:00.000000000 Z
11
+ date: 2017-12-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -118,7 +118,9 @@ files:
118
118
  - templates/errors.rb
119
119
  - templates/factory_girl.rb
120
120
  - templates/flashes_helper.rb
121
+ - templates/i18n-tasks.yml
121
122
  - templates/i18n.rb
123
+ - templates/i18n_spec.rb
122
124
  - templates/json_encoding.rb
123
125
  - templates/project_gitignore
124
126
  - templates/puma.rb
@@ -150,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
152
  version: '0'
151
153
  requirements: []
152
154
  rubyforge_project:
153
- rubygems_version: 2.5.1
155
+ rubygems_version: 2.6.14
154
156
  signing_key:
155
157
  specification_version: 4
156
158
  summary: Kazan creates rails project and setups predefined gems and tools.