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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12a83022282a232735d811e92857d5662ee21021b19710909339bf284cf866c8
4
- data.tar.gz: 62d665c8228c5d29e2f45b4bfa972ab24744cccbf4ca2a3f165576ef59a98f87
3
+ metadata.gz: a4226292441ab33a585ce9aaafe19829952515fae2a75a23dcacd39961e0fa6c
4
+ data.tar.gz: 225217df716f75d801e41dd42b78cd9ae680ec79a502e44b1015b79303d00642
5
5
  SHA512:
6
- metadata.gz: 45732eeacc349c2a826cf297a2d55317ddcb218885bb205c4ff575c00d2fb0c2f3f4592aa7933e134dbcdfc6b48eb27ddc546c209c344984e858d8dbcb5f3b4c
7
- data.tar.gz: db3657298bf64ea4a5633285d821be4d50d1c2c6432af5f49924406d9098c9f4ff20340549e8698785cafc4eb7848c2d96f28783d8f42e395b93a1bb194e682b
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
@@ -10,3 +10,7 @@
10
10
 
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+
14
+ # Generated by Appraisal
15
+ /gemfiles/*.gemfile.lock
16
+ /gemfiles/.bundle
@@ -1,5 +1,11 @@
1
1
  sudo: false
2
2
  language: ruby
3
+ cache: bundler
4
+
3
5
  rvm:
6
+ - 2.6.1
4
7
  - 2.5.3
5
- before_install: gem install bundler -v 1.17.1
8
+
9
+ gemfile:
10
+ - gemfiles/rails_5.1.gemfile
11
+ - gemfiles/rails_5.2.gemfile
@@ -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 [![Build Status](https://travis-ci.org/nowlinuxing/kushojin.svg?branch=master)](https://travis-ci.org/nowlinuxing/kushojin.svg?branch=master) [![Maintainability](https://api.codeclimate.com/v1/badges/33c293ed9b4f9f25ab2c/maintainability)](https://codeclimate.com/github/nowlinuxing/kushojin/maintainability)
1
+ # Kushojin
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/kushojin.svg)](https://badge.fury.io/rb/kushojin)
4
+ [![CI](https://github.com/nowlinuxing/kushojin/workflows/CI/badge.svg)](https://github.com/nowlinuxing/kushojin/actions)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/33c293ed9b4f9f25ab2c/maintainability)](https://codeclimate.com/github/nowlinuxing/kushojin/maintainability)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/33c293ed9b4f9f25ab2c/test_coverage)](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.
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 5.1.6"
6
+ gem "actionpack", "~> 5.1.6"
7
+ gem "sqlite3", "~> 1.3.6"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 5.2.2"
6
+ gem "actionpack", "~> 5.2.2"
7
+ gem "sqlite3", "~> 1.3.6"
8
+
9
+ gemspec path: "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "~> 6.0.0"
6
+ gem "actionpack", "~> 6.0.0"
7
+ gem "sqlite3", "~> 1.4"
8
+
9
+ gemspec path: "../"
@@ -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", "~> 5.1"
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
@@ -1,3 +1,3 @@
1
1
  module Kushojin
2
- VERSION = "0.1.4".freeze
2
+ VERSION = "0.1.5".freeze
3
3
  end
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
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: 2019-02-08 00:00:00.000000000 Z
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
- rubyforge_project:
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.