transcript 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f7e0bce657957b28879eed8f4cdaa8ccdda7805
4
- data.tar.gz: '038ccf85c9a23d3e8ddd5c90c6b695cc2c875d57'
3
+ metadata.gz: e40cbe00a5f0d1cbdbd6a0788aee7ee43cc5ec65
4
+ data.tar.gz: fdbd435fbfbc04acac4bf6a7f3a01f2c57e526aa
5
5
  SHA512:
6
- metadata.gz: a256c85f89bbc56b70b47594406cf8e78f26456c95bc040d4c1287eea7c10c9362d934dec5584583b704e9394dbf71844597099a31a2b771e2792666bb19241b
7
- data.tar.gz: 05d6bc6d592b3dfa89dc1006033a297e2012d5f8a6d949be4810c4b80c7e1cc7ae79ff8fbbb25ca0ea61a6f363c8d16cb836df758e227cfdaf1222770d17110f
6
+ metadata.gz: bff92a3f1a25b83eea7ab70e107cfa70112ed56f39c4858399a3d9f8d7bcaacef7fa1aad659774414bd6f9a336d75e64f222255cacb734db23c3080294e252d1
7
+ data.tar.gz: c2d234318b68cd987f881500f2f6fa877c655109d6254c6a1a929c514f6b3e0ea673893795d7ab337a3e120e2355585a0ea8da0410566e05624ae43426986a8f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- transcript (0.2.1)
4
+ transcript (0.3.0)
5
5
  rails (~> 5.0)
6
6
 
7
7
  GEM
@@ -11,6 +11,7 @@ module Transcript
11
11
  "actor:references{polymorphic}",
12
12
  "receiver:references{polymorphic}",
13
13
  "receiver_serialized:jsonb",
14
+ "meta:jsonb",
14
15
  ]
15
16
  end
16
17
 
@@ -4,10 +4,10 @@ module Transcript
4
4
  module Controller
5
5
  extend ActiveSupport::Concern
6
6
 
7
- def audit_action(actor, receiver, action = action_name)
7
+ def audit_action(actor, receiver, action = action_name, meta = nil)
8
8
  Transcript::Job.send(
9
9
  Transcript.configuration.job_method,
10
- actor, receiver, action
10
+ actor, receiver, action, meta
11
11
  )
12
12
  end
13
13
  end
@@ -4,11 +4,12 @@ module Transcript
4
4
  class Job < ActiveJob::Base
5
5
  queue_as :default
6
6
 
7
- def perform(actor, receiver, action)
7
+ def perform(actor, receiver, action, meta)
8
8
  Transcript.configuration.audit_model.create(
9
9
  actor: actor,
10
10
  action: action,
11
11
  receiver: receiver,
12
+ meta: meta,
12
13
  receiver_serialized: receiver,
13
14
  )
14
15
  end
@@ -1,3 +1,3 @@
1
1
  module Transcript
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -7,6 +7,7 @@ RSpec.describe AuditEntry, type: :model do
7
7
  it { is_expected.to have_db_column(:action).of_type(:string) }
8
8
  # TODO This should be :jsonb, which doesn't work with SQLite
9
9
  it { is_expected.to have_db_column(:receiver_serialized).of_type(:string) }
10
+ it { is_expected.to have_db_column(:meta).of_type(:string) }
10
11
  it { is_expected.to have_db_column(:receiver_id).of_type(:integer) }
11
12
  it { is_expected.to have_db_column(:receiver_type).of_type(:string) }
12
13
  it { is_expected.to have_db_column(:actor_id).of_type(:integer) }
@@ -5,6 +5,7 @@ class CreateAuditEntries < ActiveRecord::Migration[5.0]
5
5
  t.references :actor, polymorphic: true
6
6
  t.references :receiver, polymorphic: true
7
7
  t.string :receiver_serialized
8
+ t.string :meta
8
9
 
9
10
  t.timestamps
10
11
  end
@@ -19,6 +19,7 @@ ActiveRecord::Schema.define(version: 20160823152659) do
19
19
  t.string "receiver_type"
20
20
  t.integer "receiver_id"
21
21
  t.string "receiver_serialized"
22
+ t.string "meta"
22
23
  t.datetime "created_at", null: false
23
24
  t.datetime "updated_at", null: false
24
25
  t.index ["actor_type", "actor_id"], name: "index_audit_entries_on_actor_type_and_actor_id"
@@ -4,6 +4,7 @@ FactoryGirl.define do
4
4
  receiver_serialized ""
5
5
  receiver nil
6
6
  actor nil
7
+ meta ""
7
8
  receiver_changes ""
8
9
  end
9
10
  end
data/spec/factories.rb CHANGED
@@ -2,6 +2,7 @@ FactoryGirl.define do
2
2
  factory :audit_entry do
3
3
  action "edit"
4
4
  receiver_serialized { (receiver || create(:post)).to_json }
5
+ meta "metadata"
5
6
  association :receiver, factory: :post
6
7
  association :actor, factory: :user
7
8
  end
@@ -5,7 +5,8 @@ RSpec.describe Transcript::Controller, type: :controller do
5
5
  def edit
6
6
  @user = FactoryGirl.create(:user)
7
7
  @post = FactoryGirl.create(:post)
8
- audit_action @user, @post
8
+ @meta = "metadata"
9
+ audit_action @user, @post, @meta
9
10
 
10
11
  head :ok
11
12
  end
@@ -13,7 +14,8 @@ RSpec.describe Transcript::Controller, type: :controller do
13
14
  def custom
14
15
  @user = FactoryGirl.create(:user)
15
16
  @post = FactoryGirl.create(:post)
16
- audit_action @user, @post, "custom"
17
+ @meta = "metadata"
18
+ audit_action @user, @post, "custom", @meta
17
19
 
18
20
  head :ok
19
21
  end
@@ -26,10 +28,11 @@ RSpec.describe Transcript::Controller, type: :controller do
26
28
  get :edit
27
29
 
28
30
  expect(Transcript::Job).to have_been_enqueued
29
- .with do |actor, receiver, action|
31
+ .with do |actor, receiver, action, meta|
30
32
  expect(actor).to be_a User
31
33
  expect(receiver).to be_a Post
32
34
  expect(action).to eq "edit"
35
+ expect(meta).to eq "metadata"
33
36
  end
34
37
  end
35
38
 
@@ -40,10 +43,11 @@ RSpec.describe Transcript::Controller, type: :controller do
40
43
  get :custom
41
44
 
42
45
  expect(Transcript::Job).to have_been_enqueued
43
- .with do |actor, receiver, action|
46
+ .with do |actor, receiver, action, meta|
44
47
  expect(actor).to be_a User
45
48
  expect(receiver).to be_a Post
46
49
  expect(action).to eq "custom"
50
+ expect(meta).to eq "metadata"
47
51
  end
48
52
  end
49
53
  end
@@ -6,9 +6,10 @@ RSpec.describe Transcript::Job, type: :job do
6
6
  it "creates an audit entry for the given objects" do
7
7
  user = create(:user)
8
8
  post = create(:post)
9
+ reference = "metadata"
9
10
 
10
11
  expect {
11
- Transcript::Job.perform_now(user, post, "edit")
12
+ Transcript::Job.perform_now(user, post, "edit", reference)
12
13
  }.to change(AuditEntry, :count).by(1)
13
14
  end
14
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transcript
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Logan Leger
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-07-14 00:00:00.000000000 Z
12
+ date: 2017-07-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ammeter