model_observer 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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