kozo 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3af664ebfefded7c930c271aefec9aae7d1d43d22476e9520e6b9e9ff6f4eb22
4
+ data.tar.gz: 11ac252c2cf7d89c0031a1564a91e412d09a4e80514d3c94353cbcf1ff5341f1
5
+ SHA512:
6
+ metadata.gz: ba28584312b4eb9f395c5af02a0fce4c5637e056eb74e50207e756840564930f5d08be647dd4c5fbeb7d5d2aa57d819a5dedf7462da57fcd1d32476d349cffd0
7
+ data.tar.gz: 99ceb6c915ef5420f019392675c8270027a04194648843e98fe317c78afb73afeea4508b62b14ddc5389d2971d3dbf9d26bbc378bec66a178dff83a6a4fbeaee
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ time: "04:00"
8
+ open-pull-requests-limit: 10
9
+ - package-ecosystem: github-actions
10
+ directory: "/"
11
+ schedule:
12
+ interval: weekly
13
+ time: "04:00"
14
+ open-pull-requests-limit: 10
@@ -0,0 +1,81 @@
1
+ name: Continuous Integration
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '**'
7
+ tags-ignore:
8
+ - 'production'
9
+
10
+ jobs:
11
+ test:
12
+ name: Test application
13
+ if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'skip ci')"
14
+ runs-on: ubuntu-latest
15
+
16
+ container:
17
+ image: ruby:2.7-alpine
18
+
19
+ steps:
20
+ - uses: actions/checkout@v2
21
+
22
+ - name: Install dependencies
23
+ run: |
24
+ apk add build-base curl-dev git
25
+ apk add tar
26
+
27
+ - name: Cache Gems
28
+ uses: actions/cache@v2.1.3
29
+ with:
30
+ path: vendor/bundle
31
+ key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }}
32
+ restore-keys: |
33
+ ${{ runner.os }}-gem-
34
+
35
+ - name: Install Gems
36
+ run: |
37
+ gem install bundler
38
+ bundle config path vendor/bundle
39
+ bundle install --jobs 4 --retry 3
40
+
41
+ - name: Test
42
+ run: |
43
+ bundle exec rspec --profile 10 --format progress
44
+
45
+ - name: Lint
46
+ run: bundle exec rubocop --parallel --display-cop-names
47
+
48
+ release:
49
+ name: Create release
50
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
51
+ runs-on: ubuntu-latest
52
+ needs: test
53
+
54
+ steps:
55
+ - uses: actions/checkout@v2
56
+
57
+ - name: Set version
58
+ run: |
59
+ echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
60
+
61
+ - name: Publish to RubyGems
62
+ run: |
63
+ mkdir -p ~/.gem
64
+ touch ~/.gem/credentials
65
+ chmod 0600 ~/.gem/credentials
66
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > ~/.gem/credentials
67
+ gem build *.gemspec
68
+ gem push *.gem
69
+ env:
70
+ GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
71
+
72
+ - name: Create Github Release
73
+ uses: actions/create-release@v1
74
+ env:
75
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76
+ with:
77
+ tag_name: ${{ github.ref }}
78
+ release_name: ${{ github.event.repository.name }} ${{ env.VERSION }}
79
+ prerelease: contains(github.ref, '-')
80
+ body: |
81
+ Application ${{ github.event.repository.name }} ${{ env.VERSION }} was released
@@ -0,0 +1,69 @@
1
+
2
+ # Created by https://www.toptal.com/developers/gitignore/api/ruby,rubymine
3
+ # Edit at https://www.toptal.com/developers/gitignore?templates=ruby,rubymine
4
+
5
+ ### Ruby ###
6
+ *.gem
7
+ *.rbc
8
+ /.config
9
+ /coverage/
10
+ /InstalledFiles
11
+ /pkg/
12
+ /spec/reports/
13
+ /spec/examples.txt
14
+ /test/tmp/
15
+ /test/version_tmp/
16
+ /tmp/
17
+
18
+ # Used by dotenv library to load environment variables.
19
+ # .env
20
+
21
+ # Ignore Byebug command history file.
22
+ .byebug_history
23
+
24
+ ## Specific to RubyMotion:
25
+ .dat*
26
+ .repl_history
27
+ build/
28
+ *.bridgesupport
29
+ build-iPhoneOS/
30
+ build-iPhoneSimulator/
31
+
32
+ ## Specific to RubyMotion (use of CocoaPods):
33
+ #
34
+ # We recommend against adding the Pods directory to your .gitignore. However
35
+ # you should judge for yourself, the pros and cons are mentioned at:
36
+ # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
37
+ # vendor/Pods/
38
+
39
+ ## Documentation cache and generated files:
40
+ /.yardoc/
41
+ /_yardoc/
42
+ /doc/
43
+ /rdoc/
44
+
45
+ ## Environment normalization:
46
+ /.bundle/
47
+ /vendor/bundle
48
+ /lib/bundler/man/
49
+
50
+ # for a library or gem, you might want to ignore these files since the code is
51
+ # intended to run in multiple environments; otherwise, check them in:
52
+ # Gemfile.lock
53
+ # .ruby-version
54
+ # .ruby-gemset
55
+
56
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
57
+ .rvmrc
58
+ .ruby-version
59
+ .ruby-gemset
60
+
61
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
62
+ # .rubocop-https?--*
63
+
64
+ ### Ruby Patch ###
65
+ # Used by RuboCop. Remote config files pulled in from inherit_from directive.
66
+ # .rubocop-https?--*
67
+
68
+ ### RubyMine ###
69
+ .idea
@@ -0,0 +1,31 @@
1
+ # Use this file to configure the Overcommit hooks you wish to use. This will
2
+ # extend the default configuration defined in:
3
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
4
+ #
5
+ # At the topmost level of this YAML file is a key representing type of hook
6
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
+ # customize each hook, such as whether to only run it on certain files (via
8
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
9
+ #
10
+ # For a complete list of hooks, see:
11
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
12
+ #
13
+ # For a complete list of options that you can use to customize hooks, see:
14
+ # https://github.com/sds/overcommit#configuration
15
+ #
16
+ # Uncomment the following lines to make the configuration take effect.
17
+
18
+ PreCommit:
19
+ RuboCop:
20
+ enabled: true
21
+ on_warn: fail # Treat all warnings as failures
22
+
23
+ TrailingWhitespace:
24
+ enabled: true
25
+
26
+ #PostCheckout:
27
+ # ALL: # Special hook name that customizes all hooks of this type
28
+ # quiet: true # Change all post-checkout hooks to only display output on failure
29
+ #
30
+ # IndexTags:
31
+ # enabled: true # Generate a tags file with `ctags` each time HEAD changes
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,70 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rspec
4
+
5
+ AllCops:
6
+ NewCops: enable
7
+ Exclude:
8
+ - tmp/**/*
9
+ - vendor/**/*
10
+ - bin/**/*
11
+ TargetRubyVersion: 2.7
12
+
13
+ Layout/LineLength:
14
+ Max: 120
15
+ Exclude:
16
+ - spec/**/*
17
+
18
+ Layout/MultilineMethodCallIndentation:
19
+ EnforcedStyle: indented
20
+
21
+ Layout/ParameterAlignment:
22
+ EnforcedStyle: with_fixed_indentation
23
+
24
+ Lint/EmptyClass:
25
+ Enabled: false
26
+
27
+ Metrics/AbcSize:
28
+ Max: 20
29
+
30
+ Metrics/BlockLength:
31
+ Exclude:
32
+ - spec/**/*
33
+ - "*.gemspec"
34
+
35
+ Metrics/MethodLength:
36
+ Max: 20
37
+
38
+ RSpec/ExampleLength:
39
+ Max: 20
40
+
41
+ RSpec/FilePath:
42
+ CustomTransform:
43
+ HCloud: hcloud
44
+
45
+ Style/Documentation:
46
+ Enabled: false
47
+
48
+ Style/StringLiterals:
49
+ EnforcedStyle: double_quotes
50
+
51
+ Style/TrailingCommaInArrayLiteral:
52
+ EnforcedStyleForMultiline: consistent_comma
53
+
54
+ Style/TrailingCommaInHashLiteral:
55
+ EnforcedStyleForMultiline: consistent_comma
56
+
57
+ Style/TrailingCommaInArguments:
58
+ EnforcedStyleForMultiline: consistent_comma
59
+
60
+ Style/SymbolArray:
61
+ EnforcedStyle: brackets
62
+
63
+ Style/PercentLiteralDelimiters:
64
+ PreferredDelimiters:
65
+ default: ()
66
+ "%i": "()"
67
+ "%I": "()"
68
+ "%r": "()"
69
+ "%w": "()"
70
+ "%W": "()"
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## Kozo v0.1.0
4
+
5
+ Initial release
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
6
+
7
+ ruby "~> 2.7"
8
+
9
+ gemspec
@@ -0,0 +1,126 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ kozo (0.1.0)
5
+ activesupport
6
+ zeitwerk
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activesupport (6.1.0)
12
+ concurrent-ruby (~> 1.0, >= 1.0.2)
13
+ i18n (>= 1.6, < 2)
14
+ minitest (>= 5.1)
15
+ tzinfo (~> 2.0)
16
+ zeitwerk (~> 2.3)
17
+ addressable (2.7.0)
18
+ public_suffix (>= 2.0.2, < 5.0)
19
+ ast (2.4.1)
20
+ attr_extras (6.2.4)
21
+ byebug (11.1.3)
22
+ childprocess (4.0.0)
23
+ climate_control (0.2.0)
24
+ coderay (1.1.3)
25
+ concurrent-ruby (1.1.7)
26
+ crack (0.4.4)
27
+ diff-lcs (1.4.4)
28
+ factory_bot (6.1.0)
29
+ activesupport (>= 5.0.0)
30
+ ffaker (2.17.0)
31
+ hashdiff (1.0.1)
32
+ i18n (1.8.5)
33
+ concurrent-ruby (~> 1.0)
34
+ iniparse (1.5.0)
35
+ method_source (1.0.0)
36
+ minitest (5.14.2)
37
+ overcommit (0.57.0)
38
+ childprocess (>= 0.6.3, < 5)
39
+ iniparse (~> 1.4)
40
+ parallel (1.20.1)
41
+ parser (2.7.2.0)
42
+ ast (~> 2.4.1)
43
+ patience_diff (1.1.0)
44
+ trollop (~> 1.16)
45
+ pry (0.13.1)
46
+ coderay (~> 1.1)
47
+ method_source (~> 1.0)
48
+ pry-byebug (3.9.0)
49
+ byebug (~> 11.0)
50
+ pry (~> 0.13.0)
51
+ public_suffix (4.0.6)
52
+ rainbow (3.0.0)
53
+ regexp_parser (2.0.0)
54
+ rexml (3.2.4)
55
+ rspec (3.10.0)
56
+ rspec-core (~> 3.10.0)
57
+ rspec-expectations (~> 3.10.0)
58
+ rspec-mocks (~> 3.10.0)
59
+ rspec-core (3.10.0)
60
+ rspec-support (~> 3.10.0)
61
+ rspec-expectations (3.10.0)
62
+ diff-lcs (>= 1.2.0, < 2.0)
63
+ rspec-support (~> 3.10.0)
64
+ rspec-mocks (3.10.0)
65
+ diff-lcs (>= 1.2.0, < 2.0)
66
+ rspec-support (~> 3.10.0)
67
+ rspec-support (3.10.0)
68
+ rubocop (1.6.1)
69
+ parallel (~> 1.10)
70
+ parser (>= 2.7.1.5)
71
+ rainbow (>= 2.2.2, < 4.0)
72
+ regexp_parser (>= 1.8, < 3.0)
73
+ rexml
74
+ rubocop-ast (>= 1.2.0, < 2.0)
75
+ ruby-progressbar (~> 1.7)
76
+ unicode-display_width (>= 1.4.0, < 2.0)
77
+ rubocop-ast (1.3.0)
78
+ parser (>= 2.7.1.5)
79
+ rubocop-performance (1.9.1)
80
+ rubocop (>= 0.90.0, < 2.0)
81
+ rubocop-ast (>= 0.4.0)
82
+ rubocop-rspec (2.1.0)
83
+ rubocop (~> 1.0)
84
+ rubocop-ast (>= 1.1.0)
85
+ ruby-progressbar (1.10.1)
86
+ shoulda-matchers (4.4.1)
87
+ activesupport (>= 4.2.0)
88
+ super_diff (0.5.2)
89
+ attr_extras (>= 6.2.4)
90
+ diff-lcs
91
+ patience_diff
92
+ timecop (0.9.2)
93
+ trollop (1.16.2)
94
+ tzinfo (2.0.4)
95
+ concurrent-ruby (~> 1.0)
96
+ unicode-display_width (1.7.0)
97
+ webmock (3.11.0)
98
+ addressable (>= 2.3.6)
99
+ crack (>= 0.3.2)
100
+ hashdiff (>= 0.4.0, < 2.0.0)
101
+ zeitwerk (2.4.2)
102
+
103
+ PLATFORMS
104
+ ruby
105
+
106
+ DEPENDENCIES
107
+ climate_control
108
+ factory_bot
109
+ ffaker
110
+ kozo!
111
+ overcommit
112
+ pry-byebug
113
+ rspec (~> 3.10)
114
+ rubocop
115
+ rubocop-performance
116
+ rubocop-rspec
117
+ shoulda-matchers
118
+ super_diff
119
+ timecop
120
+ webmock
121
+
122
+ RUBY VERSION
123
+ ruby 2.7.2p137
124
+
125
+ BUNDLED WITH
126
+ 2.1.4
@@ -0,0 +1,20 @@
1
+ Copyright 2020 Florian Dejonckheere
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.