model_observer 0.1.3 → 0.2.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: 2e57256e9d3bf7cd18cb3612e645fb9e6b777849
4
- data.tar.gz: d72cd9d4a194114baac276bdfd0c471ace54ee3a
3
+ metadata.gz: bf412199be4736e145ee9a287d228ef9f0518f2e
4
+ data.tar.gz: d10fdb791caeeb708cfa73eb462d13ec75efd01b
5
5
  SHA512:
6
- metadata.gz: a98587f964ceaace9ab0fbb84e5491c16815aec1f2070016a24dac704b68fe682c8b72f4a3a990c23eab9a566f209f64814fce41c562550bc1a6b84c6dc371fa
7
- data.tar.gz: d71259465c77ff59b282c2e19134e49b1b3dab62c17ffb3579d6c3ee2f6ba834d5b5c7fe5487f816fa0bd677c106a14bb22beea6d46f657333097deceb8f8b9e
6
+ metadata.gz: c8c5c481161ca36ea6d09b33cd92ba457a4650b062f4da21f141fd471178b28cb48cf03bf1f1afefe5875bf76cfdc5a98b33bc3eb6ab69fc47f45d3ac7e8f512
7
+ data.tar.gz: 50921cf6c28d7a1f0eadc6ea89c7a57f92c8ac645928dbf0bb9e66b5937a88b4c1f68e54ad6939c263c581ee13cbe1dd5e4fdd3210f1a8b29f0d76e8e1cf3357
@@ -0,0 +1,17 @@
1
+ module ModelObserver
2
+ module ActiveRecord
3
+ def self.enable
4
+ require 'active_record'
5
+ ::ActiveRecord::Persistence::ClassMethods.class_eval do
6
+ alias_method :origin_instantiate, :instantiate
7
+
8
+ def instantiate(record, column_types = {})
9
+ started_at = Time.now
10
+ instance = origin_instantiate(record, column_types)
11
+ ModelObserver::Collector.add_metric(ModelObserver::Metric.new(instance, started_at, Time.now))
12
+ instance
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -8,5 +8,13 @@ module ModelObserver
8
8
  false
9
9
  end
10
10
  end
11
+
12
+ def active_record3?
13
+ active_record? && ::ActiveRecord::VERSION::MAJOR == 3
14
+ end
15
+
16
+ def active_record4?
17
+ active_record? && ::ActiveRecord::VERSION::MAJOR == 4
18
+ end
11
19
  end
12
20
  end
@@ -1,3 +1,3 @@
1
1
  module ModelObserver
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -10,8 +10,15 @@ module ModelObserver
10
10
  autoload :Rack, 'model_observer/rack'
11
11
 
12
12
  if active_record?
13
- autoload :ActiveRecord, 'model_observer/active_record'
14
- ModelObserver::ActiveRecord.enable
13
+ if active_record4?
14
+ autoload :ActiveRecord, 'model_observer/active_record4'
15
+ ModelObserver::ActiveRecord.enable
16
+ elsif active_record3?
17
+ autoload :ActiveRecord, 'model_observer/active_record3'
18
+ ModelObserver::ActiveRecord.enable
19
+ else
20
+ raise "Current version of active_record is not supported."
21
+ end
15
22
  end
16
23
 
17
24
  class << self
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model_observer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weihu Chen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-20 00:00:00.000000000 Z
11
+ date: 2013-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rails
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '3'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '3'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: sqlite3
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -60,7 +46,8 @@ executables: []
60
46
  extensions: []
61
47
  extra_rdoc_files: []
62
48
  files:
63
- - lib/model_observer/active_record.rb
49
+ - lib/model_observer/active_record3.rb
50
+ - lib/model_observer/active_record4.rb
64
51
  - lib/model_observer/analyser.rb
65
52
  - lib/model_observer/collector.rb
66
53
  - lib/model_observer/dependency.rb