recorder 0.1.10 → 0.1.11
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/README.md +6 -1
- data/lib/recorder/config.rb +30 -0
- data/lib/recorder/observer.rb +9 -1
- data/lib/recorder/rails/railtie.rb +7 -0
- data/lib/recorder/sidekiq/revisions_worker.rb +13 -0
- data/lib/recorder/tape.rb +5 -1
- data/lib/recorder/version.rb +1 -1
- data/lib/recorder.rb +27 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 284c1bc23118fdc7bc7d8bd37ac1b1bd705796ab
|
4
|
+
data.tar.gz: 1aa407eba7453c44efb9726eb8b4b4e3042b2930
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66e09ecc7cb06fd5106391f8ec7254fe91f82734b2e55812661eb55c4119338ebd3c00633ab903fcfe233c14db52acb005d9577cbe24ddfb6fc2021bc2edd9b7
|
7
|
+
data.tar.gz: ad30ee43b319c8f13bcb4157cc044cff5fdd23e6131e9714e2d9df6ade6c887f04055caeb015f9cd8778d7a5bc8e274c81fe94b2713b3d623155e64e0c805204
|
data/README.md
CHANGED
@@ -30,8 +30,13 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
30
30
|
|
31
31
|
## Contributing
|
32
32
|
|
33
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
33
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/jetrockets/recorder.
|
34
34
|
|
35
|
+
## Credits
|
36
|
+
|
37
|
+

|
38
|
+
|
39
|
+
Recorder is maintained by [JetRockets](http://www.jetrockets.ru).
|
35
40
|
|
36
41
|
## License
|
37
42
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
module Recorder
|
4
|
+
# Global configuration options
|
5
|
+
class Config
|
6
|
+
include Singleton
|
7
|
+
attr_accessor :sidekiq_options
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
# Variables which affect all threads, whose access is synchronized.
|
11
|
+
@mutex = Mutex.new
|
12
|
+
@enabled = true
|
13
|
+
|
14
|
+
@sidekiq_options = {
|
15
|
+
:queue => 'recorder',
|
16
|
+
:retry => 10,
|
17
|
+
:backtrace => true
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
# Indicates whether Recorder is on or off. Default: true.
|
22
|
+
def enabled
|
23
|
+
@mutex.synchronize { !!@enabled }
|
24
|
+
end
|
25
|
+
|
26
|
+
def enabled=(enable)
|
27
|
+
@mutex.synchronize { @enabled = enable }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/recorder/observer.rb
CHANGED
@@ -6,7 +6,15 @@ module Recorder
|
|
6
6
|
extend ::ActiveSupport::Concern
|
7
7
|
|
8
8
|
included do
|
9
|
-
has_many :revisions, :class_name => '::Recorder::Revision', :inverse_of => :item, :as => :item
|
9
|
+
has_many :revisions, :class_name => '::Recorder::Revision', :inverse_of => :item, :as => :item do
|
10
|
+
def create_async(params)
|
11
|
+
Recorder::Sidekiq::RevisionsWorker.perform_async(
|
12
|
+
proxy_association.owner.class.to_s,
|
13
|
+
proxy_association.owner.id,
|
14
|
+
params
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
10
18
|
end
|
11
19
|
|
12
20
|
module ClassMethods
|
data/lib/recorder/tape.rb
CHANGED
@@ -64,7 +64,11 @@ module Recorder
|
|
64
64
|
:action_date => Date.today
|
65
65
|
})
|
66
66
|
|
67
|
-
self.item.
|
67
|
+
if self.item.recorder_options[:async]
|
68
|
+
self.item.revisions.create_async(params)
|
69
|
+
else
|
70
|
+
self.item.revisions.create(params)
|
71
|
+
end
|
68
72
|
end
|
69
73
|
|
70
74
|
def sanitize_attributes(attributes = {})
|
data/lib/recorder/version.rb
CHANGED
data/lib/recorder.rb
CHANGED
@@ -1,12 +1,27 @@
|
|
1
|
+
require 'recorder/config'
|
1
2
|
require 'recorder/version'
|
2
3
|
require 'recorder/changeset'
|
3
4
|
require 'recorder/observer'
|
4
5
|
require 'recorder/rails/controller_concern'
|
6
|
+
require 'recorder/rails/railtie' if defined? ::Rails::Railtie
|
5
7
|
|
6
8
|
require 'request_store'
|
7
9
|
|
8
10
|
module Recorder
|
9
11
|
class << self
|
12
|
+
# Switches Recorder on or off.
|
13
|
+
# @api public
|
14
|
+
def enabled=(value)
|
15
|
+
Recorder.config.enabled = value
|
16
|
+
end
|
17
|
+
|
18
|
+
# Returns `true` if Recorder is on, `false` otherwise.
|
19
|
+
# Recorder is enabled by default.
|
20
|
+
# @api public
|
21
|
+
def enabled?
|
22
|
+
!!Recorder.config.enabled
|
23
|
+
end
|
24
|
+
|
10
25
|
# Sets Recorder information from the controller.
|
11
26
|
# @api public
|
12
27
|
def info=(hash)
|
@@ -25,6 +40,14 @@ module Recorder
|
|
25
40
|
@active_record_protected_attributes ||= !!defined?(ProtectedAttributes)
|
26
41
|
end
|
27
42
|
|
43
|
+
# Returns Recorder's configuration object.
|
44
|
+
# @api private
|
45
|
+
def config
|
46
|
+
@config ||= Recorder::Config.instance
|
47
|
+
yield @config if block_given?
|
48
|
+
@config
|
49
|
+
end
|
50
|
+
|
28
51
|
# Returns version of Recorder as +String+
|
29
52
|
def version
|
30
53
|
VERSION::STRING
|
@@ -38,4 +61,8 @@ module Recorder
|
|
38
61
|
end
|
39
62
|
end
|
40
63
|
|
64
|
+
# if defined?(Sidekiq)
|
65
|
+
# require 'recorder/sidekiq/revisions_worker'
|
66
|
+
# end
|
67
|
+
|
41
68
|
require 'recorder/revision'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recorder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Alexandrov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -157,9 +157,12 @@ files:
|
|
157
157
|
- lib/generators/recorder/templates/create_recorder_revisions.rb
|
158
158
|
- lib/recorder.rb
|
159
159
|
- lib/recorder/changeset.rb
|
160
|
+
- lib/recorder/config.rb
|
160
161
|
- lib/recorder/observer.rb
|
161
162
|
- lib/recorder/rails/controller_concern.rb
|
163
|
+
- lib/recorder/rails/railtie.rb
|
162
164
|
- lib/recorder/revision.rb
|
165
|
+
- lib/recorder/sidekiq/revisions_worker.rb
|
163
166
|
- lib/recorder/tape.rb
|
164
167
|
- lib/recorder/version.rb
|
165
168
|
- recorder.gemspec
|