mongoid_activity_tracker 0.0.1
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 +7 -0
- data/.gitignore +22 -0
- data/.travis.yml +14 -0
- data/Gemfile +4 -0
- data/Guardfile +8 -0
- data/LICENSE +21 -0
- data/README.md +83 -0
- data/Rakefile +9 -0
- data/lib/mongoid_activity_tracker/track_activity.rb +22 -0
- data/lib/mongoid_activity_tracker/tracker.rb +66 -0
- data/lib/mongoid_activity_tracker/version.rb +3 -0
- data/lib/mongoid_activity_tracker.rb +1 -0
- data/mongoid_activity_tracker.gemspec +30 -0
- data/test/mongoid_activity_tracker/track_activity_test.rb +33 -0
- data/test/mongoid_activity_tracker/tracker_test.rb +94 -0
- data/test/test_helper.rb +63 -0
- metadata +174 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 73473aba526b5c072e700088ae1a34673719233f
|
4
|
+
data.tar.gz: 70106be3454df722a79849544026e69910508ecb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ad2d58489e90642bb822d5eb2814e1d996f433734cb4d662776df1ba93ae4fdaf8c6b8e834d04ecf55211a8920045a10527932c4cf1b16287f3a3b8b4e755937
|
7
|
+
data.tar.gz: 64bb974d6b8648ab5d995e38452775ebcd9457dd5c2998ac94487b6c78ac20fe0753e0a4ebe9e17c5726939b1604dbd543e7548d3e5b1544676e9c656776e9e7
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Tomas Celizna
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
# Mongoid Activity Tracker
|
2
|
+
|
3
|
+
[](https://travis-ci.org/tomasc/mongoid_activity_tracker) [](http://badge.fury.io/rb/mongoid_activity_tracker) [](https://coveralls.io/r/tomasc/mongoid_activity_tracker)
|
4
|
+
|
5
|
+
Module and a service class to help with tracking activity in your application.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```Ruby
|
12
|
+
gem 'mongoid_activity_tracker'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
```
|
18
|
+
$ bundle
|
19
|
+
```
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
```
|
24
|
+
$ gem install mongoid_activity_tracker
|
25
|
+
```
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
Setup a class that will record the activity:
|
30
|
+
|
31
|
+
```Ruby
|
32
|
+
class MyTracker
|
33
|
+
include MongoidActivityTracker::Tracker
|
34
|
+
end
|
35
|
+
```
|
36
|
+
|
37
|
+
Track the activity:
|
38
|
+
|
39
|
+
```Ruby
|
40
|
+
my_tracker = MongoidActivityTracker::TrackActivity.with(MyTracker, current_user)
|
41
|
+
|
42
|
+
res = my_tracker.track('create')
|
43
|
+
|
44
|
+
res.actor # returns the current_user
|
45
|
+
res.actor_cache # => { to_s: … }
|
46
|
+
res.actor_cache_object.to_s # the 'actor_cache_object' wraps the actor_cache hash into an OpenStruct
|
47
|
+
res.action # => 'create'
|
48
|
+
```
|
49
|
+
|
50
|
+
## Configuration
|
51
|
+
|
52
|
+
Along the action, it is possible to track any number of related documents.
|
53
|
+
|
54
|
+
First, configure your tracker class using the `.tracks` macros:
|
55
|
+
|
56
|
+
```Ruby
|
57
|
+
class MyTracker
|
58
|
+
include MongoidActivityTracker::Tracker
|
59
|
+
tracks :subject, cache_methods: [:to_s, :id]
|
60
|
+
end
|
61
|
+
```
|
62
|
+
|
63
|
+
Then, specify your subject when tracking the activity along the action:
|
64
|
+
|
65
|
+
```Ruby
|
66
|
+
my_tracker = MongoidActivityTracker::TrackActivity.with(MyTracker, current_user)
|
67
|
+
|
68
|
+
res = my_tracker.track('create', subject: my_subject)
|
69
|
+
|
70
|
+
res.subject # returns my_subject
|
71
|
+
res.subject_cache # => { to_s: …, id: … }
|
72
|
+
res.subject_cache_object.to_s # …
|
73
|
+
```
|
74
|
+
|
75
|
+
By default, the `:cache_methods` parameters is set to track [:to_s].
|
76
|
+
|
77
|
+
## Contributing
|
78
|
+
|
79
|
+
1. Fork it ( https://github.com/tomasc/mongoid_activity_tracker/fork )
|
80
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
81
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
82
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
83
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
module MongoidActivityTracker
|
2
|
+
class TrackActivity
|
3
|
+
|
4
|
+
def self.with *args
|
5
|
+
new(*args)
|
6
|
+
end
|
7
|
+
|
8
|
+
# ---------------------------------------------------------------------
|
9
|
+
|
10
|
+
def initialize tracker_class, actor
|
11
|
+
@tracker_class = tracker_class
|
12
|
+
@actor = actor
|
13
|
+
end
|
14
|
+
|
15
|
+
def track action, options={}
|
16
|
+
@tracker_class.create(
|
17
|
+
{ action: action, actor: @actor}.merge(options)
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'mongoid'
|
2
|
+
require 'ostruct'
|
3
|
+
|
4
|
+
module MongoidActivityTracker
|
5
|
+
module Tracker
|
6
|
+
|
7
|
+
attr_accessor :actor_cache_methods
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
def tracks relation_name, cache_methods: %i(to_s)
|
11
|
+
belongs_to relation_name, polymorphic: true
|
12
|
+
|
13
|
+
field "#{relation_name}_cache", type: Hash, default: {}
|
14
|
+
|
15
|
+
attr_accessor "#{relation_name}_cache_methods"
|
16
|
+
|
17
|
+
define_method "#{relation_name}_cache_methods" do
|
18
|
+
instance_variable_set "@#{relation_name}_cache_methods", cache_methods unless instance_variable_get "@#{relation_name}_cache_methods"
|
19
|
+
instance_variable_get "@#{relation_name}_cache_methods"
|
20
|
+
end
|
21
|
+
|
22
|
+
define_method "#{relation_name}_cache_object" do
|
23
|
+
OpenStruct.new(send("#{relation_name}_cache"))
|
24
|
+
end
|
25
|
+
|
26
|
+
before_save -> { set_cache(relation_name) }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# ---------------------------------------------------------------------
|
31
|
+
|
32
|
+
def self.included base
|
33
|
+
base.extend ClassMethods
|
34
|
+
base.class_eval do
|
35
|
+
include Mongoid::Document
|
36
|
+
|
37
|
+
field :action, type: String
|
38
|
+
|
39
|
+
tracks :actor
|
40
|
+
|
41
|
+
validates :actor, presence: true
|
42
|
+
validates :action, presence: true
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
# =====================================================================
|
48
|
+
|
49
|
+
def created_at
|
50
|
+
self.id.generation_time.in_time_zone(Time.zone)
|
51
|
+
end
|
52
|
+
|
53
|
+
private # =============================================================
|
54
|
+
|
55
|
+
def set_cache name
|
56
|
+
return unless self.send("#{name}_cache_methods").present?
|
57
|
+
return unless self.send(name).present?
|
58
|
+
|
59
|
+
self.send("#{name}_cache_methods").each do |m|
|
60
|
+
next if self.send("#{name}_cache")[m].present?
|
61
|
+
self.send("#{name}_cache")[m] = self.send(name).send(m) if self.send(name).respond_to?(m)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require "mongoid_activity_tracker/version"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'mongoid_activity_tracker/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "mongoid_activity_tracker"
|
8
|
+
spec.version = MongoidActivityTracker::VERSION
|
9
|
+
spec.authors = ["Tomas Celizna"]
|
10
|
+
spec.email = ["tomas.celizna@gmail.com"]
|
11
|
+
spec.description = %q{Minimal set of classes and modules to help with activity tracking.}
|
12
|
+
spec.summary = %q{Minimal set of classes and modules to help with activity tracking.}
|
13
|
+
spec.homepage = "https://github.com/tomasc/mongoid_activity_tracker"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "mongoid", "~> 4.0"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
spec.add_development_dependency "coveralls"
|
25
|
+
spec.add_development_dependency "database_cleaner"
|
26
|
+
spec.add_development_dependency "guard"
|
27
|
+
spec.add_development_dependency "guard-minitest"
|
28
|
+
spec.add_development_dependency "minitest"
|
29
|
+
spec.add_development_dependency "rake"
|
30
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require_relative '../../lib/mongoid_activity_tracker/track_activity'
|
4
|
+
|
5
|
+
module MongoidActivityTracker
|
6
|
+
describe TrackActivity do
|
7
|
+
let(:actor) { TestActor.new }
|
8
|
+
subject { TrackActivity.with(TestTrackerTwo, actor) }
|
9
|
+
let(:sub) { TestSubject.new }
|
10
|
+
|
11
|
+
describe '.call' do
|
12
|
+
before do
|
13
|
+
@tracker = subject.track('create', subject: sub)
|
14
|
+
end
|
15
|
+
it 'returns the tracker instance' do
|
16
|
+
@tracker.must_be_kind_of TestTrackerTwo
|
17
|
+
end
|
18
|
+
it 'always sets the :actor' do
|
19
|
+
@tracker.actor.must_equal actor
|
20
|
+
end
|
21
|
+
it 'sets the :actor_cache with :to_s by default' do
|
22
|
+
@tracker.actor_cache.must_equal({ to_s: actor.to_s })
|
23
|
+
end
|
24
|
+
it 'always sets the :action' do
|
25
|
+
@tracker.action.must_equal 'create'
|
26
|
+
end
|
27
|
+
it 'sets any other attributes' do
|
28
|
+
@tracker.subject.must_equal sub
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require_relative '../../lib/mongoid_activity_tracker/tracker'
|
4
|
+
|
5
|
+
module MongoidActivityTracker
|
6
|
+
describe Tracker do
|
7
|
+
|
8
|
+
let(:actor) { TestActor.new }
|
9
|
+
subject { TestTracker.new }
|
10
|
+
|
11
|
+
describe 'associations' do
|
12
|
+
it 'belongs to :actor' do
|
13
|
+
subject.must_respond_to :actor
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe 'fields' do
|
18
|
+
it 'has :action' do
|
19
|
+
subject.must_respond_to :action
|
20
|
+
end
|
21
|
+
it 'has :actor_cache' do
|
22
|
+
subject.must_respond_to :actor_cache
|
23
|
+
subject.actor_cache.must_be_kind_of Hash
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# ---------------------------------------------------------------------
|
28
|
+
|
29
|
+
describe '.tracks' do
|
30
|
+
let(:tracker_two) { TestTrackerTwo.new }
|
31
|
+
it 'adds the belongs_to :subject relation' do
|
32
|
+
tracker_two.must_respond_to :subject
|
33
|
+
end
|
34
|
+
it 'adds the :subject_cache field' do
|
35
|
+
tracker_two.must_respond_to :subject_cache
|
36
|
+
tracker_two.subject_cache.must_be_kind_of Hash
|
37
|
+
end
|
38
|
+
it 'defines the :subject_cache_methods accessor' do
|
39
|
+
tracker_two.must_respond_to :subject_cache_methods
|
40
|
+
end
|
41
|
+
it 'sets :to_s as a default for the :subject_cache_methods' do
|
42
|
+
tracker_two.subject_cache_methods.must_equal %i(to_s)
|
43
|
+
end
|
44
|
+
it 'adds the :subject_cache_object wrapper' do
|
45
|
+
tracker_two.subject_cache_object.must_respond_to :to_s
|
46
|
+
end
|
47
|
+
it 'sets the cache before :save' do
|
48
|
+
test_subject = TestSubject.new
|
49
|
+
tracker_two.subject = test_subject
|
50
|
+
tracker_two.run_callbacks(:save)
|
51
|
+
tracker_two.subject_cache.fetch(:to_s).must_equal test_subject.to_s
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
# ---------------------------------------------------------------------
|
56
|
+
|
57
|
+
describe ':created_at' do
|
58
|
+
it 'infers time from BSON id' do
|
59
|
+
subject.must_respond_to :created_at
|
60
|
+
subject.created_at.must_be_kind_of Time
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe ':actor_cache' do
|
65
|
+
before do
|
66
|
+
subject.actor = actor
|
67
|
+
end
|
68
|
+
it 'sets :actor_cache on save' do
|
69
|
+
subject.run_callbacks(:save)
|
70
|
+
subject.actor_cache.fetch(:to_s).must_equal actor.to_s
|
71
|
+
end
|
72
|
+
it 'allows preset cache manually' do
|
73
|
+
subject.actor_cache[:to_s] = 'foo-bar'
|
74
|
+
subject.run_callbacks(:save)
|
75
|
+
subject.actor_cache.fetch(:to_s).must_equal 'foo-bar'
|
76
|
+
end
|
77
|
+
it 'allows to override the default cache methods' do
|
78
|
+
subject.actor_cache_methods = %i(class)
|
79
|
+
subject.run_callbacks(:save)
|
80
|
+
subject.actor_cache.fetch(:class).must_equal TestActor
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe ':actor_cache_object' do
|
85
|
+
it 'wraps the :actor_cache with a Struct' do
|
86
|
+
subject.actor_cache_object.must_be_kind_of OpenStruct
|
87
|
+
end
|
88
|
+
it 'converts keys to methods' do
|
89
|
+
subject.actor_cache_object.must_respond_to :to_s
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'database_cleaner'
|
3
|
+
require 'minitest'
|
4
|
+
require 'minitest/autorun'
|
5
|
+
require 'minitest/spec'
|
6
|
+
require 'mongoid'
|
7
|
+
require 'mongoid_activity_tracker'
|
8
|
+
require 'mongoid_activity_tracker/tracker'
|
9
|
+
|
10
|
+
if ENV["CI"]
|
11
|
+
require "coveralls"
|
12
|
+
Coveralls.wear!
|
13
|
+
end
|
14
|
+
|
15
|
+
ENV["MONGOID_TEST_HOST"] ||= "localhost"
|
16
|
+
ENV["MONGOID_TEST_PORT"] ||= "27017"
|
17
|
+
|
18
|
+
HOST = ENV["MONGOID_TEST_HOST"]
|
19
|
+
PORT = ENV["MONGOID_TEST_PORT"].to_i
|
20
|
+
|
21
|
+
def database_id
|
22
|
+
"mongoid_activity_tracker_test"
|
23
|
+
end
|
24
|
+
|
25
|
+
CONFIG = {
|
26
|
+
sessions: {
|
27
|
+
default: {
|
28
|
+
database: database_id,
|
29
|
+
hosts: [ "#{HOST}:#{PORT}" ]
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
Mongoid.configure do |config|
|
35
|
+
config.load_configuration(CONFIG)
|
36
|
+
end
|
37
|
+
|
38
|
+
DatabaseCleaner.orm = :mongoid
|
39
|
+
DatabaseCleaner.strategy = :truncation
|
40
|
+
|
41
|
+
class MiniTest::Spec
|
42
|
+
before(:each) { DatabaseCleaner.start }
|
43
|
+
after(:each) { DatabaseCleaner.clean }
|
44
|
+
end
|
45
|
+
|
46
|
+
# ---------------------------------------------------------------------
|
47
|
+
|
48
|
+
class TestTracker
|
49
|
+
include MongoidActivityTracker::Tracker
|
50
|
+
end
|
51
|
+
|
52
|
+
class TestTrackerTwo
|
53
|
+
include MongoidActivityTracker::Tracker
|
54
|
+
tracks :subject
|
55
|
+
end
|
56
|
+
|
57
|
+
class TestActor
|
58
|
+
include Mongoid::Document
|
59
|
+
end
|
60
|
+
|
61
|
+
class TestSubject
|
62
|
+
include Mongoid::Document
|
63
|
+
end
|
metadata
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mongoid_activity_tracker
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Tomas Celizna
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: mongoid
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coveralls
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: database_cleaner
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard
|
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'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard-minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rake
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Minimal set of classes and modules to help with activity tracking.
|
126
|
+
email:
|
127
|
+
- tomas.celizna@gmail.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".travis.yml"
|
134
|
+
- Gemfile
|
135
|
+
- Guardfile
|
136
|
+
- LICENSE
|
137
|
+
- README.md
|
138
|
+
- Rakefile
|
139
|
+
- lib/mongoid_activity_tracker.rb
|
140
|
+
- lib/mongoid_activity_tracker/track_activity.rb
|
141
|
+
- lib/mongoid_activity_tracker/tracker.rb
|
142
|
+
- lib/mongoid_activity_tracker/version.rb
|
143
|
+
- mongoid_activity_tracker.gemspec
|
144
|
+
- test/mongoid_activity_tracker/track_activity_test.rb
|
145
|
+
- test/mongoid_activity_tracker/tracker_test.rb
|
146
|
+
- test/test_helper.rb
|
147
|
+
homepage: https://github.com/tomasc/mongoid_activity_tracker
|
148
|
+
licenses:
|
149
|
+
- MIT
|
150
|
+
metadata: {}
|
151
|
+
post_install_message:
|
152
|
+
rdoc_options: []
|
153
|
+
require_paths:
|
154
|
+
- lib
|
155
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
requirements: []
|
166
|
+
rubyforge_project:
|
167
|
+
rubygems_version: 2.2.2
|
168
|
+
signing_key:
|
169
|
+
specification_version: 4
|
170
|
+
summary: Minimal set of classes and modules to help with activity tracking.
|
171
|
+
test_files:
|
172
|
+
- test/mongoid_activity_tracker/track_activity_test.rb
|
173
|
+
- test/mongoid_activity_tracker/tracker_test.rb
|
174
|
+
- test/test_helper.rb
|