kowl 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/bin/console +0 -7
- data/lib/kowl/version.rb +1 -1
- data/spec/kowl/docker_spec.rb +57 -0
- data/spec/kowl/helpers_spec.rb +22 -0
- data/spec/kowl/version_spec.rb +23 -0
- data/spec/spec_helper.rb +106 -0
- data/spec/support/simplecov.rb +4 -0
- metadata +13 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37626221be27260120fd6a0f658280f422fe7e93e696e5fac6502f7d644470f7
|
4
|
+
data.tar.gz: ec6f8debdb845e0638c7c3ad5739a59d8e164142a9dc3fced6150e0b6b8799c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 643d150a84ca6d872cf7fdb9488fea678e9edc6d0a1172175b804858cf46ef659bed67c90eefd0ea46845b9392cb7648ab1c425e7c2dda2206f68343f882aed0
|
7
|
+
data.tar.gz: a4d0ee1bfae9b4616d9de8502bd49b1aaa03517962767364c9755f8dd7ed9f60e6c384c73650cdac321fa7b083649c208bf1b961a23421c4d5b4d4c9089342b8
|
data/README.md
CHANGED
@@ -374,7 +374,7 @@ Project Link: [https://github.com/tarellel/kowl](https://github.com/tarellel/kow
|
|
374
374
|
[issues-shield]: https://img.shields.io/github/issues/tarellel/kowl.svg?style=flat-square
|
375
375
|
[issues-url]: https://github.com/tarellel/kowl/issues
|
376
376
|
[license-shield]: https://img.shields.io/github/license/tarellel/kowl.svg?style=flat-square
|
377
|
-
[license-url]: https://github.com/tarellel/kowl/blob/master/LICENSE
|
377
|
+
[license-url]: https://github.com/tarellel/kowl/blob/master/LICENSE
|
378
378
|
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555
|
379
379
|
[product-screenshot]: docs/images/cover.png
|
380
380
|
|
data/bin/console
CHANGED
@@ -3,12 +3,5 @@
|
|
3
3
|
require 'bundler/setup'
|
4
4
|
require 'kowl'
|
5
5
|
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require 'pry'
|
11
|
-
# Pry.start
|
12
|
-
|
13
6
|
require 'irb'
|
14
7
|
IRB.start(__FILE__)
|
data/lib/kowl/version.rb
CHANGED
@@ -0,0 +1,57 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe Kowl::Docker do
|
6
|
+
before(:each) do
|
7
|
+
# Include the Kowl::Docker module in a class in order to make it testible
|
8
|
+
# => This is because it is also included into the Rails generator class
|
9
|
+
class KowlClass
|
10
|
+
include Kowl::Docker
|
11
|
+
end
|
12
|
+
@kowl = KowlClass.new
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'Dockerfile migration' do
|
16
|
+
describe 'no database' do
|
17
|
+
it { expect(@kowl.dockerfile_migration_snip).to eq('') }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'sqlite3' do
|
21
|
+
it { expect(@kowl.dockerfile_migration_snip('sqlite3')).to eq(' && rails db:migrate db:seed') }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'other database' do
|
25
|
+
it { expect(@kowl.dockerfile_migration_snip('postgresql')).to include('# RUN ["bin/rails", "db:seed"]') }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'dockerfile args' do
|
30
|
+
it { expect(@kowl.dockerfile_database_args).to include('ARG DB_HOST') }
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'docker database port' do
|
34
|
+
it { expect(@kowl.docker_port_watcher('mysql', true)).to eq("dockerize -wait tcp://db:3306 -timeout 60m &&\n") }
|
35
|
+
it { expect(@kowl.docker_port_watcher('mysql')).to eq("dockerize -wait tcp://db:3306 -wait tcp://redis:6379 -timeout 60m &&\n") }
|
36
|
+
|
37
|
+
# to use sqlite and skip_sidekiq
|
38
|
+
it { expect(@kowl.docker_port_watcher('sqlite3', true)).to eq('') }
|
39
|
+
it { expect(@kowl.docker_port_watcher('sqlite3')).to eq("dockerize -wait tcp://redis:6379 -timeout 60m &&\n") }
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'database volumes' do
|
43
|
+
it { expect(@kowl.db_volumes('sqlite3')).to eq('') }
|
44
|
+
it { expect(@kowl.db_volumes('postgresql')).to eq("postgresconfig:\npostgresdata:\npostgreslog:\n") }
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'js volumes' do
|
48
|
+
it { expect(@kowl.js_volumes(true)).to eq('') }
|
49
|
+
it { expect(@kowl.js_volumes).to include('packs:') }
|
50
|
+
end
|
51
|
+
|
52
|
+
context 'redis volumes' do
|
53
|
+
it { expect(@kowl.redis_volumes).to eq('redis:') }
|
54
|
+
# with skip_sidekiq
|
55
|
+
it { expect(@kowl.redis_volumes(true)).to eq('') }
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe 'Kowl Helpers' do
|
6
|
+
context 'template engine str' do
|
7
|
+
it { expect(template_engine_gem_str('semantic')).to eq('semantic_ui') }
|
8
|
+
it { expect(template_engine_gem_str).to eq('bootstrap') }
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'highlight' do
|
12
|
+
it { expect(highlight('')).to eq('') }
|
13
|
+
# without string to split
|
14
|
+
it { expect(highlight('asdf')).to eq("\e[32masdf\e[0m") }
|
15
|
+
it { expect(highlight('asd=efg')).to eq("\e[32masd=\e[33mefg\e[0m") }
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'dh (default highlight)' do
|
19
|
+
it { expect(dh('foo')).to eq("\e[34mfoo\e[0m") }
|
20
|
+
it { expect(dh()).to eq('') }
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
RSpec.describe 'VERSIONS' do
|
6
|
+
context 'ensure versions defined' do
|
7
|
+
describe 'Kowl version defined' do
|
8
|
+
it { expect(::Kowl::VERSION).to be_truthy }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'ruby_version defined' do
|
12
|
+
it { expect(::Kowl::RUBY_VERSION).to be_truthy }
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'rails version defined' do
|
16
|
+
it { expect(::Kowl::RAILS_VERSION).to be_truthy }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'webpacker version defined' do
|
20
|
+
it { expect(::Kowl::WEBPACKER_VERSION).to be_truthy }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Dir[File.expand_path(File.join(File.dirname(__FILE__), 'support', '**', '*.rb'))].sort.each { |f| require f }
|
4
|
+
|
5
|
+
require 'kowl'
|
6
|
+
|
7
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
8
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
9
|
+
# The generated `.rspec` file contains `--require spec_helper` which will cause
|
10
|
+
# this file to always be loaded, without a need to explicitly require it in any
|
11
|
+
# files.
|
12
|
+
#
|
13
|
+
# Given that it is always loaded, you are encouraged to keep this file as
|
14
|
+
# light-weight as possible. Requiring heavyweight dependencies from this file
|
15
|
+
# will add to the boot time of your test suite on EVERY test run, even for an
|
16
|
+
# individual file that may not need all of that loaded. Instead, consider making
|
17
|
+
# a separate helper file that requires the additional dependencies and performs
|
18
|
+
# the additional setup, and require it from the spec files that actually need
|
19
|
+
# it.
|
20
|
+
#
|
21
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
22
|
+
RSpec.configure do |config|
|
23
|
+
# rspec-expectations config goes here. You can use an alternate
|
24
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
25
|
+
# assertions if you prefer.
|
26
|
+
config.expect_with :rspec do |expectations|
|
27
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
28
|
+
# and `failure_message` of custom matchers include text for helper methods
|
29
|
+
# defined using `chain`, e.g.:
|
30
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
31
|
+
# # => "be bigger than 2 and smaller than 4"
|
32
|
+
# ...rather than:
|
33
|
+
# # => "be bigger than 2"
|
34
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
35
|
+
end
|
36
|
+
|
37
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
38
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
39
|
+
config.mock_with :rspec do |mocks|
|
40
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
41
|
+
# a real object. This is generally recommended, and will default to
|
42
|
+
# `true` in RSpec 4.
|
43
|
+
mocks.verify_partial_doubles = true
|
44
|
+
end
|
45
|
+
|
46
|
+
# This option will default to `:apply_to_host_groups` in RSpec 4 (and will
|
47
|
+
# have no way to turn it off -- the option exists only for backwards
|
48
|
+
# compatibility in RSpec 3). It causes shared context metadata to be
|
49
|
+
# inherited by the metadata hash of host groups and examples, rather than
|
50
|
+
# triggering implicit auto-inclusion in groups with matching metadata.
|
51
|
+
config.shared_context_metadata_behavior = :apply_to_host_groups
|
52
|
+
|
53
|
+
# The settings below are suggested to provide a good initial experience
|
54
|
+
# with RSpec, but feel free to customize to your heart's content.
|
55
|
+
=begin
|
56
|
+
# This allows you to limit a spec run to individual examples or groups
|
57
|
+
# you care about by tagging them with `:focus` metadata. When nothing
|
58
|
+
# is tagged with `:focus`, all examples get run. RSpec also provides
|
59
|
+
# aliases for `it`, `describe`, and `context` that include `:focus`
|
60
|
+
# metadata: `fit`, `fdescribe` and `fcontext`, respectively.
|
61
|
+
config.filter_run_when_matching :focus
|
62
|
+
|
63
|
+
# Allows RSpec to persist some state between runs in order to support
|
64
|
+
# the `--only-failures` and `--next-failure` CLI options. We recommend
|
65
|
+
# you configure your source control system to ignore this file.
|
66
|
+
config.example_status_persistence_file_path = "spec/examples.txt"
|
67
|
+
|
68
|
+
# Limits the available syntax to the non-monkey patched syntax that is
|
69
|
+
# recommended. For more details, see:
|
70
|
+
# - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
|
71
|
+
# - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
72
|
+
# - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
|
73
|
+
config.disable_monkey_patching!
|
74
|
+
|
75
|
+
# This setting enables warnings. It's recommended, but in some cases may
|
76
|
+
# be too noisy due to issues in dependencies.
|
77
|
+
config.warnings = true
|
78
|
+
|
79
|
+
# Many RSpec users commonly either run the entire suite or an individual
|
80
|
+
# file, and it's useful to allow more verbose output when running an
|
81
|
+
# individual spec file.
|
82
|
+
if config.files_to_run.one?
|
83
|
+
# Use the documentation formatter for detailed output,
|
84
|
+
# unless a formatter has already been configured
|
85
|
+
# (e.g. via a command-line flag).
|
86
|
+
config.default_formatter = "doc"
|
87
|
+
end
|
88
|
+
|
89
|
+
# Print the 10 slowest examples and example groups at the
|
90
|
+
# end of the spec run, to help surface which specs are running
|
91
|
+
# particularly slow.
|
92
|
+
config.profile_examples = 10
|
93
|
+
|
94
|
+
# Run specs in random order to surface order dependencies. If you find an
|
95
|
+
# order dependency and want to debug it, you can fix the order by providing
|
96
|
+
# the seed, which is printed after each run.
|
97
|
+
# --seed 1234
|
98
|
+
config.order = :random
|
99
|
+
|
100
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
101
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
102
|
+
# test failures related to randomization by passing the same `--seed` value
|
103
|
+
# as the one that triggered the failure.
|
104
|
+
Kernel.srand config.seed
|
105
|
+
=end
|
106
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kowl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Hicks
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: 0.9.24
|
117
|
-
description: 'Used to generate a Rails application following a basic
|
117
|
+
description: 'Used to generate a Rails application following a basic setup of best
|
118
118
|
practices, guidelines, and basic setup; to get your Rails application started with
|
119
119
|
a bang. '
|
120
120
|
email:
|
@@ -374,6 +374,11 @@ files:
|
|
374
374
|
- lib/kowl/templates/text_files/robots.txt.tt
|
375
375
|
- lib/kowl/templates/text_files/security.txt
|
376
376
|
- lib/kowl/version.rb
|
377
|
+
- spec/kowl/docker_spec.rb
|
378
|
+
- spec/kowl/helpers_spec.rb
|
379
|
+
- spec/kowl/version_spec.rb
|
380
|
+
- spec/spec_helper.rb
|
381
|
+
- spec/support/simplecov.rb
|
377
382
|
homepage: https://github.com/tarellel/kowl
|
378
383
|
licenses:
|
379
384
|
- MIT
|
@@ -401,4 +406,9 @@ signing_key:
|
|
401
406
|
specification_version: 4
|
402
407
|
summary: A rails application generator to get you out the door and started without
|
403
408
|
wasting hours to get started.
|
404
|
-
test_files:
|
409
|
+
test_files:
|
410
|
+
- spec/kowl/docker_spec.rb
|
411
|
+
- spec/kowl/helpers_spec.rb
|
412
|
+
- spec/kowl/version_spec.rb
|
413
|
+
- spec/spec_helper.rb
|
414
|
+
- spec/support/simplecov.rb
|