best_boy 2.0.3 → 2.1.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 +7 -0
- data/README.md +41 -14
- data/Rakefile +0 -0
- data/app/assets/images/best_boy/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/best_boy/glyphicons-halflings.png +0 -0
- data/app/assets/javascripts/best_boy/bootstrap_datepicker.js +0 -0
- data/app/assets/stylesheets/best_boy/bootstrap.scss +0 -0
- data/app/assets/stylesheets/best_boy/bootstrap_datepicker.css +0 -0
- data/lib/best_boy.rb +30 -10
- data/lib/best_boy/controllers/best_boy_controller.rb +4 -6
- data/lib/best_boy/engine.rb +4 -3
- data/lib/best_boy/models/active_record/{best_boy_day_report.rb → best_boy/day_report.rb} +2 -0
- data/lib/best_boy/models/active_record/best_boy/eventable.rb +12 -16
- data/lib/best_boy/models/active_record/{best_boy_month_report.rb → best_boy/month_report.rb} +2 -0
- data/lib/best_boy/models/active_record/best_boy/obeys_test_mode.rb +11 -0
- data/lib/best_boy/models/active_record/best_boy_event.rb +4 -2
- data/lib/best_boy/version.rb +1 -1
- data/lib/generators/active_record/best_boy_generator.rb +0 -0
- data/lib/generators/active_record/templates/create_best_boy_events_table.rb +0 -0
- data/lib/generators/best_boy_generator.rb +0 -0
- data/lib/generators/templates/best_boy.rb +0 -0
- metadata +19 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 052c16860b6631958848facca1874befa90c03ea
|
4
|
+
data.tar.gz: 691c93a312656f98fc39db8f253fb39acfb3be22
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ef3642b2d03a4399f348563be130118bf95e1da1eb0b8f990b2a6bdfbe3d9fad714205a1f16e9136233092c07d524656529b1ba9eaa45a76685d0389796d6c55
|
7
|
+
data.tar.gz: 3b7ad04877352de616c77193bd897947e4bf374d818d7850089febfa344a76f7ac38ca018e3b322889897443be8e549a2dc4f22dfde7bcfdcd3344273576aee7
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ A simple event driven logging for ActiveRecord models.
|
|
10
10
|
What does this gem do?
|
11
11
|
----------------------
|
12
12
|
|
13
|
-
best_boy logs "create" and "delete" events as well as custom events triggered
|
13
|
+
best_boy logs "create" and "delete" events as well as custom events triggered by controller actions. It uses its own polymorphic database table to log each event.
|
14
14
|
At the moment, best_boy only provides support for ActiveRecord models.
|
15
15
|
|
16
16
|
|
@@ -59,6 +59,17 @@ Run the migration
|
|
59
59
|
rake db:migrate
|
60
60
|
|
61
61
|
|
62
|
+
Changelog
|
63
|
+
---------
|
64
|
+
#### 2.1.0
|
65
|
+
* Code cleanup - now compatible with RSpec 3 syntax
|
66
|
+
* Support a "dry-run" test mode
|
67
|
+
* Reduce public methods added by `BestBoy::Eventable` ([#4](https://github.com/Absolventa/best_boy/issues/4))
|
68
|
+
* Remove mass-assignments that could cause problems with the protected_attributes gem [#8](https://github.com/Absolventa/best_boy/issues/8)
|
69
|
+
* Do not expose mixed-in controller method ([#9](https://github.com/Absolventa/best_boy/issues/9)))
|
70
|
+
* Avoid potential callbacks for callbacks switch ([#10](https://github.com/Absolventa/best_boy/issues/10))
|
71
|
+
|
72
|
+
|
62
73
|
Update in Version 2
|
63
74
|
--------------------------------
|
64
75
|
|
@@ -107,6 +118,24 @@ This will log custom events for a object and a event phrase. You can specify thi
|
|
107
118
|
|
108
119
|
If no Object is given, it will raise an exception as well as if no event is provided.
|
109
120
|
|
121
|
+
#### Test mode
|
122
|
+
|
123
|
+
BestBoy features a sandbox mode for your testing environment from version 2.1 onward. It will prevent the creation of BestBoy records. Activate it in your spec_helper.rb or test_helper.rb globally:
|
124
|
+
|
125
|
+
BestBoy.test_mode = true
|
126
|
+
|
127
|
+
If you want to test your BestBoy integration, you can run your code like this:
|
128
|
+
|
129
|
+
BestBoy.in_real_mode do
|
130
|
+
# your expectations / asserts
|
131
|
+
end
|
132
|
+
|
133
|
+
Conversely, you can also sandbox a specific code block:
|
134
|
+
|
135
|
+
BestBoy.in_test_mode do
|
136
|
+
# database will be spared
|
137
|
+
end
|
138
|
+
|
110
139
|
|
111
140
|
BestBoyEvent table
|
112
141
|
------------------
|
@@ -165,25 +194,23 @@ beginning of Feb 1st, 2010 up to now.
|
|
165
194
|
|
166
195
|
Budget some time for this task, since it can take long if your BestBoyEvent table has grown very big.
|
167
196
|
|
168
|
-
Used gems and
|
169
|
-
|
170
|
-
[Twitter Bootstrap](http://twitter.github.com/bootstrap/) in its version 2.0.4
|
171
|
-
|
172
|
-
[
|
173
|
-
|
174
|
-
[Winston Teo Yong Wei](https://github.com/winston/google_visualr) Google_Visualr in its version 2.1.2
|
197
|
+
Used gems and resources
|
198
|
+
-----------------------
|
199
|
+
* [Twitter Bootstrap](http://twitter.github.com/bootstrap/) in its version 2.0.4
|
200
|
+
* [Stefan Petre](http://www.eyecon.ro/bootstrap-datepicker) for Datepicker in Twitter Bootstrap style
|
201
|
+
* [Winston Teo Yong Wei](https://github.com/winston/google_visualr) Google_Visualr in its version 2.1.2
|
175
202
|
|
176
203
|
|
177
204
|
Contributors in alphabetic order
|
178
205
|
--------------------------------
|
179
|
-
|
180
|
-
|
181
|
-
|
206
|
+
* [carpodaster](https://github.com/carpodaster)
|
207
|
+
* [cseydel](https://github.com/cseydel)
|
208
|
+
* [danscho](https://github.com/danscho)
|
209
|
+
* [neumannrq](https://github.com/neumannrq)
|
182
210
|
|
183
211
|
Thanks
|
184
212
|
------
|
185
|
-
We
|
186
|
-
Big thanks to each contributor on Impressionist. This gem helped me a long way to get here in modelling and creating a gem.
|
213
|
+
We ♥ PRs – thanks to everyone contributing to this project. Big thanks to each contributor on Impressionist. This gem helped me ([cseydel](https://github.com/cseydel)) a long way to get here in modelling and creating a gem.
|
187
214
|
|
188
215
|
|
189
|
-
See LICENSE.txt for
|
216
|
+
See [LICENSE.txt](https://raw.github.com/Absolventa/best_boy/master/LICENSE.txt) for usage and licensing details.
|
data/Rakefile
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/best_boy.rb
CHANGED
@@ -1,20 +1,40 @@
|
|
1
1
|
require "best_boy/engine.rb"
|
2
2
|
|
3
3
|
module BestBoy
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
@@
|
9
|
-
@@
|
10
|
-
@@
|
11
|
-
@@
|
4
|
+
mattr_accessor :base_controller, :before_filter, :custom_redirect, :orm,
|
5
|
+
:precompile_assets, :skip_after_filter, :skip_before_filter, :test_mode
|
6
|
+
|
7
|
+
@@base_controller = "ApplicationController"
|
8
|
+
@@before_filter = nil
|
9
|
+
@@custom_redirect = nil
|
10
|
+
@@orm = :active_record
|
11
|
+
@@precompile_assets = false
|
12
|
+
@@skip_after_filter = nil
|
12
13
|
@@skip_before_filter = nil
|
13
|
-
@@
|
14
|
-
@@custom_redirect = nil
|
14
|
+
@@test_mode = false
|
15
15
|
|
16
16
|
# Load configuration from initializer
|
17
17
|
def self.setup
|
18
18
|
yield self
|
19
19
|
end
|
20
|
+
|
21
|
+
def self.in_test_mode(&block)
|
22
|
+
execute_with_test_mode_set_to(true, &block)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.in_real_mode(&block)
|
26
|
+
execute_with_test_mode_set_to(false, &block)
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def self.execute_with_test_mode_set_to(test_mode, &block)
|
32
|
+
Mutex.new.synchronize do
|
33
|
+
test_mode_before = self.test_mode
|
34
|
+
self.test_mode = test_mode
|
35
|
+
block.call if block.present?
|
36
|
+
self.test_mode = test_mode_before
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
20
40
|
end
|
@@ -1,11 +1,9 @@
|
|
1
1
|
module BestBoyController
|
2
2
|
module InstanceMethods
|
3
|
+
protected
|
4
|
+
|
3
5
|
def best_boy_event(obj, event, source = nil)
|
4
|
-
|
5
|
-
obj.trigger_best_boy_event(event, source)
|
6
|
-
else
|
7
|
-
raise "#{obj.class.to_s} is not a best_boy eventable!"
|
8
|
-
end
|
6
|
+
obj.trigger_best_boy_event(event, source)
|
9
7
|
end
|
10
8
|
end
|
11
|
-
end
|
9
|
+
end
|
data/lib/best_boy/engine.rb
CHANGED
@@ -5,7 +5,7 @@ require "google_visualr"
|
|
5
5
|
module BestBoy
|
6
6
|
class Engine < ::Rails::Engine
|
7
7
|
|
8
|
-
initializer 'best_boy.assets', :
|
8
|
+
initializer 'best_boy.assets', group: :all do |app|
|
9
9
|
initializer_path = "#{Rails.root}/config/initializers/best_boy.rb"
|
10
10
|
require initializer_path if File.exist? initializer_path
|
11
11
|
|
@@ -16,10 +16,11 @@ module BestBoy
|
|
16
16
|
|
17
17
|
initializer 'best_boy.model' do |app|
|
18
18
|
if BestBoy.orm == :active_record
|
19
|
+
require "best_boy/models/active_record/best_boy/obeys_test_mode.rb"
|
19
20
|
require "best_boy/models/active_record/best_boy_event.rb"
|
20
21
|
require "best_boy/models/active_record/best_boy/eventable.rb"
|
21
|
-
require "best_boy/models/active_record/
|
22
|
-
require "best_boy/models/active_record/
|
22
|
+
require "best_boy/models/active_record/best_boy/day_report.rb"
|
23
|
+
require "best_boy/models/active_record/best_boy/month_report.rb"
|
23
24
|
ActiveRecord::Base.send(:include, BestBoy::Eventable)
|
24
25
|
else
|
25
26
|
raise "Sorry, best_boy actually only supports ActiveRecord ORM."
|
@@ -3,19 +3,18 @@ module BestBoy
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
module ClassMethods
|
6
|
-
attr_accessor :
|
7
|
-
@disable_callbacks = nil
|
6
|
+
attr_accessor :best_boy_disable_callbacks
|
8
7
|
|
9
8
|
def has_a_best_boy(options={})
|
10
9
|
# constants
|
11
10
|
#
|
12
11
|
#
|
13
|
-
|
12
|
+
self.best_boy_disable_callbacks = options[:disable_callbacks]
|
14
13
|
|
15
14
|
# associations
|
16
15
|
#
|
17
16
|
#
|
18
|
-
has_many :best_boy_events, :
|
17
|
+
has_many :best_boy_events, as: :owner, dependent: :nullify
|
19
18
|
|
20
19
|
# callbacks
|
21
20
|
#
|
@@ -23,16 +22,14 @@ module BestBoy
|
|
23
22
|
after_create :trigger_create_event
|
24
23
|
after_destroy :trigger_destroy_event
|
25
24
|
end
|
26
|
-
|
27
|
-
def best_boy_disable_callbacks
|
28
|
-
@disable_callbacks
|
29
|
-
end
|
30
25
|
end
|
31
26
|
|
32
|
-
def
|
33
|
-
|
27
|
+
def trigger_best_boy_event type, source = nil
|
28
|
+
create_best_boy_event_with_type(type, source)
|
34
29
|
end
|
35
30
|
|
31
|
+
private
|
32
|
+
|
36
33
|
def trigger_create_event
|
37
34
|
return if self.class.best_boy_disable_callbacks
|
38
35
|
create_best_boy_event_with_type "create"
|
@@ -43,14 +40,13 @@ module BestBoy
|
|
43
40
|
create_best_boy_event_with_type "destroy"
|
44
41
|
end
|
45
42
|
|
46
|
-
def trigger_best_boy_event type, source = nil
|
47
|
-
create_best_boy_event_with_type(type, source)
|
48
|
-
end
|
49
|
-
|
50
43
|
def create_best_boy_event_with_type type, source = nil
|
51
44
|
raise "nil event is not allowed" if type.blank?
|
52
|
-
best_boy_event = BestBoyEvent.new
|
53
|
-
|
45
|
+
best_boy_event = BestBoyEvent.new do |bbe|
|
46
|
+
bbe.event = type
|
47
|
+
bbe.event_source = source
|
48
|
+
bbe.owner = self
|
49
|
+
end
|
54
50
|
best_boy_event.save
|
55
51
|
report type, source
|
56
52
|
end
|
@@ -1,14 +1,16 @@
|
|
1
1
|
class BestBoyEvent < ActiveRecord::Base
|
2
2
|
|
3
|
+
include BestBoy::ObeysTestMode
|
4
|
+
|
3
5
|
# associations
|
4
6
|
#
|
5
7
|
#
|
6
|
-
belongs_to :owner, :
|
8
|
+
belongs_to :owner, polymorphic: true
|
7
9
|
|
8
10
|
# validations
|
9
11
|
#
|
10
12
|
#
|
11
|
-
validates :event, :
|
13
|
+
validates :event, presence: true
|
12
14
|
|
13
15
|
# scopes
|
14
16
|
#
|
data/lib/best_boy/version.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: best_boy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
5
|
-
prerelease:
|
4
|
+
version: 2.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Christoph Seydel, Robin Neumann, Daniel Schoppmann
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-03-05 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rails
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: kaminari
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,39 +41,34 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: google_visualr
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: sqlite3
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rspec-rails
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: shoulda
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,39 +97,20 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: haml
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: kaminari
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ~>
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: 0.14.1
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: 0.14.1
|
142
111
|
- !ruby/object:Gem::Dependency
|
143
112
|
name: sass-rails
|
144
113
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
114
|
requirements:
|
147
115
|
- - ~>
|
148
116
|
- !ruby/object:Gem::Version
|
@@ -150,7 +118,6 @@ dependencies:
|
|
150
118
|
type: :development
|
151
119
|
prerelease: false
|
152
120
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
121
|
requirements:
|
155
122
|
- - ~>
|
156
123
|
- !ruby/object:Gem::Version
|
@@ -162,6 +129,8 @@ executables: []
|
|
162
129
|
extensions: []
|
163
130
|
extra_rdoc_files: []
|
164
131
|
files:
|
132
|
+
- README.md
|
133
|
+
- Rakefile
|
165
134
|
- app/assets/images/best_boy/glyphicons-halflings-white.png
|
166
135
|
- app/assets/images/best_boy/glyphicons-halflings.png
|
167
136
|
- app/assets/javascripts/best_boy/best_boy.js
|
@@ -181,14 +150,15 @@ files:
|
|
181
150
|
- app/views/layouts/best_boy_backend.html.erb
|
182
151
|
- config/initializers/will_paginate.rb
|
183
152
|
- config/routes.rb
|
153
|
+
- lib/best_boy.rb
|
184
154
|
- lib/best_boy/controllers/best_boy_controller.rb
|
185
155
|
- lib/best_boy/engine.rb
|
156
|
+
- lib/best_boy/models/active_record/best_boy/day_report.rb
|
186
157
|
- lib/best_boy/models/active_record/best_boy/eventable.rb
|
187
|
-
- lib/best_boy/models/active_record/
|
158
|
+
- lib/best_boy/models/active_record/best_boy/month_report.rb
|
159
|
+
- lib/best_boy/models/active_record/best_boy/obeys_test_mode.rb
|
188
160
|
- lib/best_boy/models/active_record/best_boy_event.rb
|
189
|
-
- lib/best_boy/models/active_record/best_boy_month_report.rb
|
190
161
|
- lib/best_boy/version.rb
|
191
|
-
- lib/best_boy.rb
|
192
162
|
- lib/generators/active_record/best_boy_generator.rb
|
193
163
|
- lib/generators/active_record/templates/add_event_source_to_best_boy_events_table.rb
|
194
164
|
- lib/generators/active_record/templates/create_best_boy_events_table.rb
|
@@ -201,31 +171,28 @@ files:
|
|
201
171
|
- lib/generators/templates/bootstrap/glyphicons-halflings-white.png
|
202
172
|
- lib/generators/templates/bootstrap/glyphicons-halflings.png
|
203
173
|
- lib/tasks/recover_report_history.rake
|
204
|
-
- Rakefile
|
205
|
-
- README.md
|
206
174
|
homepage: https://github.com/absolventa/best_boy
|
207
175
|
licenses:
|
208
176
|
- MIT
|
177
|
+
metadata: {}
|
209
178
|
post_install_message:
|
210
179
|
rdoc_options: []
|
211
180
|
require_paths:
|
212
181
|
- lib
|
213
182
|
required_ruby_version: !ruby/object:Gem::Requirement
|
214
|
-
none: false
|
215
183
|
requirements:
|
216
|
-
- -
|
184
|
+
- - '>='
|
217
185
|
- !ruby/object:Gem::Version
|
218
186
|
version: '0'
|
219
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
|
-
none: false
|
221
188
|
requirements:
|
222
|
-
- -
|
189
|
+
- - '>='
|
223
190
|
- !ruby/object:Gem::Version
|
224
191
|
version: '0'
|
225
192
|
requirements: []
|
226
193
|
rubyforge_project:
|
227
|
-
rubygems_version:
|
194
|
+
rubygems_version: 2.2.2
|
228
195
|
signing_key:
|
229
|
-
specification_version:
|
196
|
+
specification_version: 4
|
230
197
|
summary: a simple event driven logging for models
|
231
198
|
test_files: []
|