kushojin 0.1.4 → 0.1.5
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 +4 -4
- data/.github/workflows/CI.yml +51 -0
- data/.github/workflows/release_gem.yml +25 -0
- data/.gitignore +4 -0
- data/.travis.yml +7 -1
- data/Appraisals +19 -0
- data/README.md +6 -1
- data/gemfiles/rails_5.1.gemfile +9 -0
- data/gemfiles/rails_5.2.gemfile +9 -0
- data/gemfiles/rails_6.0.gemfile +9 -0
- data/kushojin.gemspec +4 -2
- data/lib/kushojin/model_methods/change.rb +21 -0
- data/lib/kushojin/version.rb +1 -1
- metadata +45 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4226292441ab33a585ce9aaafe19829952515fae2a75a23dcacd39961e0fa6c
|
4
|
+
data.tar.gz: 225217df716f75d801e41dd42b78cd9ae680ec79a502e44b1015b79303d00642
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9cc6ec2cb91791cb54f705d8f2bd57cbddaf6f84e2acd4760cdaa588a24b0d62e06e268773ce561b9e4c8433da3c42812b6d3c936f8d55b7daa09a245e0a993
|
7
|
+
data.tar.gz: 173c8fe0091452cb2e263b7663a061a2505159abde7280b0e2bb546ce2c302684049776ad96c8e0082d5fa49a1f3280d58125d04fde988659216adbb9d5738e0
|
@@ -0,0 +1,51 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
ruby:
|
12
|
+
- 2.5.x
|
13
|
+
- 2.6.x
|
14
|
+
|
15
|
+
gemfile:
|
16
|
+
- rails_5.1.gemfile
|
17
|
+
- rails_5.2.gemfile
|
18
|
+
- rails_6.0.gemfile
|
19
|
+
|
20
|
+
steps:
|
21
|
+
- uses: actions/checkout@v1
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: actions/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
26
|
+
|
27
|
+
- name: Setup Code Climate test-reporter
|
28
|
+
env:
|
29
|
+
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
30
|
+
run: |
|
31
|
+
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
32
|
+
chmod +x ./cc-test-reporter
|
33
|
+
./cc-test-reporter before-build
|
34
|
+
|
35
|
+
- name: Build and test with Rake
|
36
|
+
env:
|
37
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}
|
38
|
+
COVERAGE: true
|
39
|
+
run: |
|
40
|
+
sudo apt-get update
|
41
|
+
sudo apt-get install -y libsqlite3-dev
|
42
|
+
gem install bundler
|
43
|
+
bundle install --jobs 4 --retry 3
|
44
|
+
bundle exec rspec
|
45
|
+
|
46
|
+
- name: Upload coverage
|
47
|
+
env:
|
48
|
+
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
49
|
+
GIT_COMMIT_SHA: ${{ github.sha }}
|
50
|
+
run: |
|
51
|
+
GIT_BRANCH=$(echo $GITHUB_REF | sed -e 's|.*/||') ./cc-test-reporter after-build
|
@@ -0,0 +1,25 @@
|
|
1
|
+
name: Release a gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
|
8
|
+
jobs:
|
9
|
+
build:
|
10
|
+
name: Build + Publish
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@master
|
15
|
+
|
16
|
+
- name: Set up Ruby 2.6
|
17
|
+
uses: actions/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
version: 2.6.x
|
20
|
+
|
21
|
+
- name: Create a tag and release to rubygems.org
|
22
|
+
uses: nowlinuxing/action-release-gem@v1
|
23
|
+
env:
|
24
|
+
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
25
|
+
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Appraisals
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
appraise "rails-5.1" do
|
2
|
+
gem "activerecord", "~> 5.1.6"
|
3
|
+
gem "actionpack", "~> 5.1.6"
|
4
|
+
|
5
|
+
# activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
|
6
|
+
gem "sqlite3", "~> 1.3.6"
|
7
|
+
end
|
8
|
+
|
9
|
+
appraise "rails-5.2" do
|
10
|
+
gem "activerecord", "~> 5.2.2"
|
11
|
+
gem "actionpack", "~> 5.2.2"
|
12
|
+
gem "sqlite3", "~> 1.3.6"
|
13
|
+
end
|
14
|
+
|
15
|
+
appraise "rails-6.0" do
|
16
|
+
gem "activerecord", "~> 6.0.0"
|
17
|
+
gem "actionpack", "~> 6.0.0"
|
18
|
+
gem "sqlite3", "~> 1.4"
|
19
|
+
end
|
data/README.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
# Kushojin
|
1
|
+
# Kushojin
|
2
|
+
|
3
|
+
[](https://badge.fury.io/rb/kushojin)
|
4
|
+
[](https://github.com/nowlinuxing/kushojin/actions)
|
5
|
+
[](https://codeclimate.com/github/nowlinuxing/kushojin/maintainability)
|
6
|
+
[](https://codeclimate.com/github/nowlinuxing/kushojin/test_coverage)
|
2
7
|
|
3
8
|
Kushojin gathers changes to the attributes of the ActiveRecord model and sends them externally via Fluentd.
|
4
9
|
This is useful for logging, tracking and real-time aggregation of accesses involving database updates.
|
data/kushojin.gemspec
CHANGED
@@ -21,14 +21,16 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_dependency "activerecord", "
|
24
|
+
spec.add_dependency "activerecord", ">= 5.1"
|
25
25
|
spec.add_dependency "fluent-logger"
|
26
26
|
|
27
27
|
spec.add_development_dependency "bundler"
|
28
28
|
spec.add_development_dependency "rake"
|
29
|
+
spec.add_development_dependency "appraisal"
|
29
30
|
spec.add_development_dependency "actionpack", ">= 5.0"
|
30
31
|
spec.add_development_dependency "rspec", ">= 3.0"
|
31
|
-
spec.add_development_dependency "sqlite3", "~> 1.3.6"
|
32
|
+
spec.add_development_dependency "sqlite3", "~> 1.3", ">= 1.3.6"
|
32
33
|
spec.add_development_dependency "pry-byebug"
|
33
34
|
spec.add_development_dependency "rubocop"
|
35
|
+
spec.add_development_dependency "simplecov"
|
34
36
|
end
|
@@ -10,6 +10,27 @@ module Kushojin
|
|
10
10
|
@model = take_copy_of(model).freeze
|
11
11
|
end
|
12
12
|
|
13
|
+
# Returns changes of the ActiveRecord model.
|
14
|
+
#
|
15
|
+
# class User < ApplicationRecord
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# user = User.create(name: "bill")
|
19
|
+
# Kushojin::ModelMethods::Change.new(:create, user).changes # => { "id" => [nil, 123], "name" => [nil, "bill"], "created_at" => [nil, 2019-01-23 00:00:00 UTC], "updated_at" => [nil, 2019-12-31 12:34:56 UTC]
|
20
|
+
# # }
|
21
|
+
#
|
22
|
+
# If a model is updated by +touch+ method, this returns the changed
|
23
|
+
# attributes when activerecord is 6.0.0 or later.
|
24
|
+
#
|
25
|
+
# # activerecord 5.x
|
26
|
+
# user.touch
|
27
|
+
# Kushojin::ModelMethods::Change.new(:touch, user).changes # => {}
|
28
|
+
#
|
29
|
+
# # activerecord 6.x
|
30
|
+
# user.touch
|
31
|
+
# Kushojin::ModelMethods::Change.new(:touch, user).changes # => { "updated_at" => [2019-09-16 15:25:43 UTC, 2019-09-16 16:33:48 UTC] }
|
32
|
+
#
|
33
|
+
# See https://github.com/rails/rails/issues/33429
|
13
34
|
def changes
|
14
35
|
@model.saved_changes
|
15
36
|
end
|
data/lib/kushojin/version.rb
CHANGED
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kushojin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loose coupling
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '5.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '5.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: appraisal
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: actionpack
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,6 +113,9 @@ dependencies:
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.3'
|
118
|
+
- - ">="
|
102
119
|
- !ruby/object:Gem::Version
|
103
120
|
version: 1.3.6
|
104
121
|
type: :development
|
@@ -106,6 +123,9 @@ dependencies:
|
|
106
123
|
version_requirements: !ruby/object:Gem::Requirement
|
107
124
|
requirements:
|
108
125
|
- - "~>"
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '1.3'
|
128
|
+
- - ">="
|
109
129
|
- !ruby/object:Gem::Version
|
110
130
|
version: 1.3.6
|
111
131
|
- !ruby/object:Gem::Dependency
|
@@ -136,6 +156,20 @@ dependencies:
|
|
136
156
|
- - ">="
|
137
157
|
- !ruby/object:Gem::Version
|
138
158
|
version: '0'
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: simplecov
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
166
|
+
type: :development
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
139
173
|
description: Detect changes of model attributes and send to outside.
|
140
174
|
email:
|
141
175
|
- loosecplg@gmail.com
|
@@ -143,16 +177,22 @@ executables: []
|
|
143
177
|
extensions: []
|
144
178
|
extra_rdoc_files: []
|
145
179
|
files:
|
180
|
+
- ".github/workflows/CI.yml"
|
181
|
+
- ".github/workflows/release_gem.yml"
|
146
182
|
- ".gitignore"
|
147
183
|
- ".rspec"
|
148
184
|
- ".rubocop.yml"
|
149
185
|
- ".travis.yml"
|
186
|
+
- Appraisals
|
150
187
|
- Gemfile
|
151
188
|
- LICENSE.txt
|
152
189
|
- README.md
|
153
190
|
- Rakefile
|
154
191
|
- bin/console
|
155
192
|
- bin/setup
|
193
|
+
- gemfiles/rails_5.1.gemfile
|
194
|
+
- gemfiles/rails_5.2.gemfile
|
195
|
+
- gemfiles/rails_6.0.gemfile
|
156
196
|
- kushojin.gemspec
|
157
197
|
- lib/kushojin.rb
|
158
198
|
- lib/kushojin/config.rb
|
@@ -190,8 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
190
230
|
- !ruby/object:Gem::Version
|
191
231
|
version: '0'
|
192
232
|
requirements: []
|
193
|
-
|
194
|
-
rubygems_version: 2.7.6
|
233
|
+
rubygems_version: 3.0.3
|
195
234
|
signing_key:
|
196
235
|
specification_version: 4
|
197
236
|
summary: Detect changes of model attributes and send to outside.
|