kazan 0.1.0
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.
- checksums.yaml +7 -0
- data/.gitignore +10 -0
- data/.rspec +2 -0
- data/.ruby-version +1 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/LICENSE +21 -0
- data/README.md +92 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/kazan +30 -0
- data/bin/setup +8 -0
- data/kazan.gemspec +32 -0
- data/lib/kazan/actions.rb +33 -0
- data/lib/kazan/app_builder.rb +308 -0
- data/lib/kazan/generators/app_generator.rb +177 -0
- data/lib/kazan/generators/clockwork_generator.rb +7 -0
- data/lib/kazan/generators/sidekiq_generator.rb +7 -0
- data/lib/kazan/version.rb +5 -0
- data/lib/kazan.rb +5 -0
- data/spec/kazan_spec.rb +21 -0
- data/spec/project_spec.rb +222 -0
- data/spec/spec_helper.rb +7 -0
- data/spec/support/hooks.rb +15 -0
- data/spec/support/kazan_spec_helpers.rb +71 -0
- data/templates/Gemfile.api.erb +53 -0
- data/templates/Gemfile.erb +68 -0
- data/templates/Procfile.erb +1 -0
- data/templates/README.md.erb +16 -0
- data/templates/_flashes.html.erb +7 -0
- data/templates/_javascript.html.erb +12 -0
- data/templates/_styles.html.erb +7 -0
- data/templates/action_mailer.rb +5 -0
- data/templates/application.html.erb +17 -0
- data/templates/application.scss +9 -0
- data/templates/browserslist +3 -0
- data/templates/bullet.rb +6 -0
- data/templates/bundler_audit.rake +12 -0
- data/templates/database.yml.erb +31 -0
- data/templates/database_cleaner.rb +21 -0
- data/templates/envs/.env.development.example +21 -0
- data/templates/envs/.env.production +24 -0
- data/templates/errors.rb +33 -0
- data/templates/factory_girl.rb +3 -0
- data/templates/flashes_helper.rb +5 -0
- data/templates/gitignore +14 -0
- data/templates/i18n.rb +3 -0
- data/templates/json_encoding.rb +2 -0
- data/templates/puma.rb +14 -0
- data/templates/rack_mini_profiler.rb +6 -0
- data/templates/rails_helper.rb +21 -0
- data/templates/rollbar.rb +57 -0
- data/templates/settings.yml.erb +0 -0
- data/templates/shoulda_matchers.rb +6 -0
- data/templates/smtp.rb +14 -0
- data/templates/spec_helper.rb +24 -0
- metadata +164 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="<%= I18n.locale %>">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="ROBOTS" content="NOODP" />
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
7
|
+
<title><%= title %></title>
|
8
|
+
<%= stylesheet_link_tag :application, media: "all" %>
|
9
|
+
<%= csrf_meta_tags %>
|
10
|
+
</head>
|
11
|
+
<body class="<%%= body_class %>">
|
12
|
+
<%= render "shared/flashes" -%>
|
13
|
+
<%= yield %>
|
14
|
+
<%= render "shared/javascript" %>
|
15
|
+
<%= render "shared/styles" %>
|
16
|
+
</body>
|
17
|
+
</html>
|
data/templates/bullet.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
if Rails.env.development? || Rails.env.test?
|
2
|
+
require 'bundler/audit/cli'
|
3
|
+
|
4
|
+
namespace :bundler do
|
5
|
+
desc 'Updates the ruby-advisory-db and runs audit'
|
6
|
+
task :audit do
|
7
|
+
%w(update check).each do |command|
|
8
|
+
Bundler::Audit::CLI.start [command]
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
settings: &settings
|
2
|
+
adapter: postgresql
|
3
|
+
encoding: utf8
|
4
|
+
min_messages: warning
|
5
|
+
timeout: <%%= Integer(ENV.fetch('DATABASE_TIMEOUT', 5000))%>
|
6
|
+
pool: <%%= Integer(ENV.fetch('DATABASE_POOL', 5))%>
|
7
|
+
|
8
|
+
|
9
|
+
development:
|
10
|
+
<<: *settings
|
11
|
+
reaping_frequency: <%%= Integer(ENV.fetch('DATABASE_REAPING_FREQUENCY', 10))%>
|
12
|
+
database: <%= app_name %>_development
|
13
|
+
|
14
|
+
test:
|
15
|
+
<<: *settings
|
16
|
+
reaping_frequency: <%%= Integer(ENV.fetch('DATABASE_REAPING_FREQUENCY', 10))%>
|
17
|
+
database: <%= app_name %>_test
|
18
|
+
|
19
|
+
staging:
|
20
|
+
<<: *settings
|
21
|
+
database: <%= app_name %>_staging
|
22
|
+
|
23
|
+
|
24
|
+
production:
|
25
|
+
<<: *settings
|
26
|
+
username:
|
27
|
+
password:
|
28
|
+
database: <%= app_name %>_production
|
29
|
+
pool: <%%= [Integer(ENV.fetch("PUMA_THREADS", 5)), Integer(ENV.fetch("DATABASE_POOL", 5))].max %>
|
30
|
+
|
31
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
RSpec.configure do |config|
|
2
|
+
config.before(:suite) do
|
3
|
+
DatabaseCleaner.clean_with(:deletion)
|
4
|
+
end
|
5
|
+
|
6
|
+
config.before(:each) do
|
7
|
+
DatabaseCleaner.strategy = :transaction
|
8
|
+
end
|
9
|
+
|
10
|
+
config.before(:each, js: true) do
|
11
|
+
DatabaseCleaner.strategy = :deletion
|
12
|
+
end
|
13
|
+
|
14
|
+
config.before(:each) do
|
15
|
+
DatabaseCleaner.start
|
16
|
+
end
|
17
|
+
|
18
|
+
config.after(:each) do
|
19
|
+
DatabaseCleaner.clean
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
RACK_ENV = development
|
2
|
+
RACK_MINI_PROFILER = 0
|
3
|
+
RACK_TIMEOUT = 5
|
4
|
+
|
5
|
+
DATABASE_REAPING_FREQUENCY = 10
|
6
|
+
DATABASE_TIMEOUT = 5000
|
7
|
+
DATABASE_POOL = 5
|
8
|
+
|
9
|
+
PUMA_WORKERS = 2
|
10
|
+
PUMA_THREADS = 2
|
11
|
+
|
12
|
+
SMTP_ADDRESS =
|
13
|
+
SMTP_DOMAIN =
|
14
|
+
SMTP_PASSWORD =
|
15
|
+
SMTP_USERNAME =
|
16
|
+
|
17
|
+
APPLICATION_HOST = localhost
|
18
|
+
|
19
|
+
ROLLBAR_TOCKEN =
|
20
|
+
ROLLBAR_ENV =
|
21
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
RACK_ENV = staging
|
2
|
+
RACK_MINI_PROFILER = 0
|
3
|
+
RACK_TIMEOUT = 5
|
4
|
+
|
5
|
+
# SECRET_KEY_BASE
|
6
|
+
|
7
|
+
DATABASE_TIMEOUT = 5000
|
8
|
+
DATABASE_POOL = 5
|
9
|
+
# DATABASE_USERNAME
|
10
|
+
# DATABASE_PASSWORD
|
11
|
+
|
12
|
+
PUMA_WORKERS = 2
|
13
|
+
PUMA_THREADS = 2
|
14
|
+
|
15
|
+
SMTP_ADDRESS =
|
16
|
+
SMTP_DOMAIN =
|
17
|
+
SMTP_PASSWORD =
|
18
|
+
SMTP_USERNAME =
|
19
|
+
|
20
|
+
APPLICATION_HOST =
|
21
|
+
|
22
|
+
ROLLBAR_TOCKEN =
|
23
|
+
ROLLBAR_ENV =
|
24
|
+
|
data/templates/errors.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'net/smtp'
|
3
|
+
|
4
|
+
# begin
|
5
|
+
# some http call
|
6
|
+
# rescue *HTTP_ERRORS => error
|
7
|
+
# notify_hoptoad error
|
8
|
+
# end
|
9
|
+
|
10
|
+
HTTP_ERRORS = [
|
11
|
+
EOFError,
|
12
|
+
Errno::ECONNRESET,
|
13
|
+
Errno::EINVAL,
|
14
|
+
Net::HTTPBadResponse,
|
15
|
+
Net::HTTPHeaderSyntaxError,
|
16
|
+
Net::ProtocolError,
|
17
|
+
Timeout::Error,
|
18
|
+
]
|
19
|
+
|
20
|
+
SMTP_SERVER_ERRORS = [
|
21
|
+
IOError,
|
22
|
+
Net::SMTPAuthenticationError,
|
23
|
+
Net::SMTPServerBusy,
|
24
|
+
Net::SMTPUnknownError,
|
25
|
+
Timeout::Error,
|
26
|
+
]
|
27
|
+
|
28
|
+
SMTP_CLIENT_ERRORS = [
|
29
|
+
Net::SMTPFatalError,
|
30
|
+
Net::SMTPSyntaxError,
|
31
|
+
]
|
32
|
+
|
33
|
+
SMTP_ERRORS = SMTP_SERVER_ERRORS + SMTP_CLIENT_ERRORS
|
data/templates/gitignore
ADDED
data/templates/i18n.rb
ADDED
data/templates/puma.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
workers Integer(ENV.fetch("PUMA_WORKERS", 2))
|
2
|
+
threads_count = Integer(ENV.fetch("PUMA_THREADS", 2))
|
3
|
+
threads(threads_count, threads_count)
|
4
|
+
|
5
|
+
preload_app!
|
6
|
+
|
7
|
+
rackup DefaultRackup
|
8
|
+
environment ENV.fetch('RACK_ENV', 'development')
|
9
|
+
|
10
|
+
on_worker_boot do
|
11
|
+
# Worker specific setup for Rails 4.1+
|
12
|
+
# See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
|
13
|
+
# ActiveRecord::Base.establish_connection
|
14
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
ENV['RACK_ENV'] = 'test'
|
2
|
+
|
3
|
+
require File.expand_path('../../config/environment', __FILE__)
|
4
|
+
abort('DATABASE_URL environment variable is set') if ENV['DATABASE_URL']
|
5
|
+
|
6
|
+
require 'rspec/rails'
|
7
|
+
|
8
|
+
Dir[Rails.root.join('spec/support/**/*.rb')].sort.each { |file| require file }
|
9
|
+
|
10
|
+
module Features
|
11
|
+
include Formulaic::Dsl if defined? Formulaic
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
config.include Features, type: :feature
|
16
|
+
config.infer_base_class_for_anonymous_controllers = false
|
17
|
+
config.infer_spec_type_from_file_location!
|
18
|
+
config.use_transactional_fixtures = false
|
19
|
+
end
|
20
|
+
|
21
|
+
ActiveRecord::Migration.maintain_test_schema!
|
@@ -0,0 +1,57 @@
|
|
1
|
+
Rollbar.configure do |config|
|
2
|
+
# Without configuration, Rollbar is enabled in all environments.
|
3
|
+
# To disable in specific environments, set config.enabled=false.
|
4
|
+
|
5
|
+
config.access_token = ENV['ROLLBAR_TOCKEN']
|
6
|
+
|
7
|
+
# Here we'll disable in 'test':
|
8
|
+
if Rails.env.test? || Rails.env.development?
|
9
|
+
config.enabled = false
|
10
|
+
end
|
11
|
+
|
12
|
+
# By default, Rollbar will try to call the `current_user` controller method
|
13
|
+
# to fetch the logged-in user object, and then call that object's `id`,
|
14
|
+
# `username`, and `email` methods to fetch those properties. To customize:
|
15
|
+
# config.person_method = "my_current_user"
|
16
|
+
# config.person_id_method = "my_id"
|
17
|
+
# config.person_username_method = "my_username"
|
18
|
+
# config.person_email_method = "my_email"
|
19
|
+
|
20
|
+
# If you want to attach custom data to all exception and message reports,
|
21
|
+
# provide a lambda like the following. It should return a hash.
|
22
|
+
# config.custom_data_method = lambda { {:some_key => "some_value" } }
|
23
|
+
|
24
|
+
# Add exception class names to the exception_level_filters hash to
|
25
|
+
# change the level that exception is reported at. Note that if an exception
|
26
|
+
# has already been reported and logged the level will need to be changed
|
27
|
+
# via the rollbar interface.
|
28
|
+
# Valid levels: 'critical', 'error', 'warning', 'info', 'debug', 'ignore'
|
29
|
+
# 'ignore' will cause the exception to not be reported at all.
|
30
|
+
# config.exception_level_filters.merge!('MyCriticalException' => 'critical')
|
31
|
+
#
|
32
|
+
# You can also specify a callable, which will be called with the exception instance.
|
33
|
+
# config.exception_level_filters.merge!('MyCriticalException' => lambda { |e| 'critical' })
|
34
|
+
|
35
|
+
# Enable asynchronous reporting (uses girl_friday or Threading if girl_friday
|
36
|
+
# is not installed)
|
37
|
+
# config.use_async = true
|
38
|
+
# Supply your own async handler:
|
39
|
+
# config.async_handler = Proc.new { |payload|
|
40
|
+
# Thread.new { Rollbar.process_from_async_handler(payload) }
|
41
|
+
# }
|
42
|
+
|
43
|
+
# Enable asynchronous reporting (using sucker_punch)
|
44
|
+
# config.use_sucker_punch
|
45
|
+
|
46
|
+
# Enable delayed reporting (using Sidekiq)
|
47
|
+
# config.use_sidekiq
|
48
|
+
# You can supply custom Sidekiq options:
|
49
|
+
# config.use_sidekiq 'queue' => 'default'
|
50
|
+
|
51
|
+
# If you run your staging application instance in production environment then
|
52
|
+
# you'll want to override the environment reported by `Rails.env` with an
|
53
|
+
# environment variable like this: `ROLLBAR_ENV=staging`. This is a recommended
|
54
|
+
# setup for Heroku. See:
|
55
|
+
# https://devcenter.heroku.com/articles/deploying-to-a-custom-rails-environment
|
56
|
+
config.environment = ENV['ROLLBAR_ENV'] || Rails.env
|
57
|
+
end
|
File without changes
|
data/templates/smtp.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
SMTP_SETTINGS = {
|
2
|
+
address: ENV.fetch('SMTP_ADDRESS'), # example: 'smtp.sendgrid.net'
|
3
|
+
authentication: :plain,
|
4
|
+
domain: ENV.fetch('SMTP_DOMAIN'), # example: 'heroku.com'
|
5
|
+
enable_starttls_auto: true,
|
6
|
+
password: ENV.fetch('SMTP_PASSWORD'),
|
7
|
+
port: '587',
|
8
|
+
user_name: ENV.fetch('SMTP_USERNAME')
|
9
|
+
}
|
10
|
+
|
11
|
+
if ENV['EMAIL_RECIPIENTS'].present?
|
12
|
+
Mail.register_interceptor RecipientInterceptor.new(ENV['EMAIL_RECIPIENTS'])
|
13
|
+
end
|
14
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
if ENV.fetch('COVERAGE', false)
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start 'rails'
|
4
|
+
end
|
5
|
+
|
6
|
+
require 'webmock/rspec'
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.expect_with :rspec do |expectations|
|
10
|
+
expectations.syntax = :expect
|
11
|
+
end
|
12
|
+
|
13
|
+
config.mock_with :rspec do |mocks|
|
14
|
+
mocks.syntax = :expect
|
15
|
+
mocks.verify_partial_doubles = true
|
16
|
+
end
|
17
|
+
|
18
|
+
config.example_status_persistence_file_path = 'tmp/rspec_examples.txt'
|
19
|
+
config.order = :random
|
20
|
+
|
21
|
+
config.infer_spec_type_from_file_location!
|
22
|
+
end
|
23
|
+
|
24
|
+
WebMock.disable_net_connect!(allow_localhost: true)
|
metadata
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kazan
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marat Khusnetdinov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 5.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 5.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.5'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.5'
|
69
|
+
description: Kazan creates rails project and setups predefined gems and tools.
|
70
|
+
email:
|
71
|
+
- marat@khusnetdinov.ru
|
72
|
+
executables:
|
73
|
+
- kazan
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files:
|
76
|
+
- README.md
|
77
|
+
- LICENSE
|
78
|
+
files:
|
79
|
+
- ".gitignore"
|
80
|
+
- ".rspec"
|
81
|
+
- ".ruby-version"
|
82
|
+
- ".travis.yml"
|
83
|
+
- Gemfile
|
84
|
+
- LICENSE
|
85
|
+
- README.md
|
86
|
+
- Rakefile
|
87
|
+
- bin/console
|
88
|
+
- bin/kazan
|
89
|
+
- bin/setup
|
90
|
+
- kazan.gemspec
|
91
|
+
- lib/kazan.rb
|
92
|
+
- lib/kazan/actions.rb
|
93
|
+
- lib/kazan/app_builder.rb
|
94
|
+
- lib/kazan/generators/app_generator.rb
|
95
|
+
- lib/kazan/generators/clockwork_generator.rb
|
96
|
+
- lib/kazan/generators/sidekiq_generator.rb
|
97
|
+
- lib/kazan/version.rb
|
98
|
+
- spec/kazan_spec.rb
|
99
|
+
- spec/project_spec.rb
|
100
|
+
- spec/spec_helper.rb
|
101
|
+
- spec/support/hooks.rb
|
102
|
+
- spec/support/kazan_spec_helpers.rb
|
103
|
+
- templates/Gemfile.api.erb
|
104
|
+
- templates/Gemfile.erb
|
105
|
+
- templates/Procfile.erb
|
106
|
+
- templates/README.md.erb
|
107
|
+
- templates/_flashes.html.erb
|
108
|
+
- templates/_javascript.html.erb
|
109
|
+
- templates/_styles.html.erb
|
110
|
+
- templates/action_mailer.rb
|
111
|
+
- templates/application.html.erb
|
112
|
+
- templates/application.scss
|
113
|
+
- templates/browserslist
|
114
|
+
- templates/bullet.rb
|
115
|
+
- templates/bundler_audit.rake
|
116
|
+
- templates/database.yml.erb
|
117
|
+
- templates/database_cleaner.rb
|
118
|
+
- templates/envs/.env.development.example
|
119
|
+
- templates/envs/.env.production
|
120
|
+
- templates/errors.rb
|
121
|
+
- templates/factory_girl.rb
|
122
|
+
- templates/flashes_helper.rb
|
123
|
+
- templates/gitignore
|
124
|
+
- templates/i18n.rb
|
125
|
+
- templates/json_encoding.rb
|
126
|
+
- templates/puma.rb
|
127
|
+
- templates/rack_mini_profiler.rb
|
128
|
+
- templates/rails_helper.rb
|
129
|
+
- templates/rollbar.rb
|
130
|
+
- templates/settings.yml.erb
|
131
|
+
- templates/shoulda_matchers.rb
|
132
|
+
- templates/smtp.rb
|
133
|
+
- templates/spec_helper.rb
|
134
|
+
homepage: https://github.com/khusnetdinov/kazan
|
135
|
+
licenses:
|
136
|
+
- MIT
|
137
|
+
metadata: {}
|
138
|
+
post_install_message:
|
139
|
+
rdoc_options:
|
140
|
+
- "--charset=UTF-8"
|
141
|
+
require_paths:
|
142
|
+
- lib
|
143
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - '='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: 2.3.1
|
148
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
requirements: []
|
154
|
+
rubyforge_project:
|
155
|
+
rubygems_version: 2.5.1
|
156
|
+
signing_key:
|
157
|
+
specification_version: 4
|
158
|
+
summary: Kazan creates rails project and setups predefined gems and tools.
|
159
|
+
test_files:
|
160
|
+
- spec/kazan_spec.rb
|
161
|
+
- spec/project_spec.rb
|
162
|
+
- spec/spec_helper.rb
|
163
|
+
- spec/support/hooks.rb
|
164
|
+
- spec/support/kazan_spec_helpers.rb
|