transcript 0.2.1 → 0.3.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.
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