believer 0.2.8 → 0.2.9

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.
data/lib/believer.rb CHANGED
@@ -1,9 +1,22 @@
1
1
  module Believer
2
- VERSION = '0.1'
2
+
3
+ FEATURES = {}
4
+
5
+ def self.features
6
+ FEATURES
7
+ end
8
+
3
9
  end
4
10
 
5
11
  require 'active_model'
6
12
 
13
+ begin
14
+ require 'active_model/observing'
15
+ Believer.features[:active_model_observing] = true
16
+ rescue LoadError => le
17
+ Believer.features[:active_model_observing] = false
18
+ end
19
+
7
20
  require 'active_support/concern'
8
21
  require 'active_support/core_ext'
9
22
  require 'active_support/core_ext/module/delegation'
@@ -43,7 +56,11 @@ require 'believer/callbacks'
43
56
  require 'believer/finder_methods'
44
57
 
45
58
  require 'believer/log_subscriber'
46
- require 'believer/observer'
59
+
60
+ if Believer.features[:active_model_observing]
61
+ require 'believer/observer'
62
+ end
63
+
47
64
  require 'believer/relation'
48
65
 
49
66
  require 'believer/create_table'
data/lib/believer/base.rb CHANGED
@@ -15,7 +15,10 @@ module Believer
15
15
  include Counting
16
16
  include DDL
17
17
 
18
- include ::ActiveModel::Observing
18
+ if Believer.features[:active_model_observing]
19
+ include ::ActiveModel::Observing
20
+ end
21
+
19
22
 
20
23
  # The Cassandra row ID
21
24
  attr_accessor :id
@@ -1,36 +1,38 @@
1
- require 'active_model/observing'
1
+ if Believer.features[:active_model_observing]
2
+ require 'active_model/observing'
2
3
 
3
- module Believer
4
+ module Believer
4
5
 
5
- class Observer < ::ActiveModel::Observer
6
+ class Observer < ::ActiveModel::Observer
6
7
 
7
- protected
8
+ protected
8
9
 
9
- def observed_classes
10
- klasses = super
11
- klasses + klasses.map { |klass| klass.descendants }.flatten
12
- end
13
-
14
- def add_observer!(klass)
15
- super
16
- define_callbacks klass
17
- end
10
+ def observed_classes
11
+ klasses = super
12
+ klasses + klasses.map { |klass| klass.descendants }.flatten
13
+ end
18
14
 
19
- def define_callbacks(klass)
20
- observer = self
21
- observer_name = observer.class.name.underscore.gsub('/', '__')
15
+ def add_observer!(klass)
16
+ super
17
+ define_callbacks klass
18
+ end
22
19
 
23
- Believer::Callbacks::CALLBACKS.each do |callback|
24
- next unless respond_to?(callback)
25
- callback_meth = :"_notify_#{observer_name}_for_#{callback}"
26
- unless klass.respond_to?(callback_meth)
27
- klass.send(:define_method, callback_meth) do |&block|
28
- observer.update(callback, self, &block)
20
+ def define_callbacks(klass)
21
+ observer = self
22
+ observer_name = observer.class.name.underscore.gsub('/', '__')
23
+
24
+ Believer::Callbacks::CALLBACKS.each do |callback|
25
+ next unless respond_to?(callback)
26
+ callback_meth = :"_notify_#{observer_name}_for_#{callback}"
27
+ unless klass.respond_to?(callback_meth)
28
+ klass.send(:define_method, callback_meth) do |&block|
29
+ observer.update(callback, self, &block)
30
+ end
31
+ klass.send(callback, callback_meth)
29
32
  end
30
- klass.send(callback, callback_meth)
31
33
  end
32
34
  end
33
35
  end
34
- end
35
36
 
36
- end
37
+ end
38
+ end
@@ -5,7 +5,10 @@ module Believer
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
- Believer::Base.observers = Destructor
8
+ #Believer::Base.observers = Destructor
9
+ Believer::Base.after_save do |model|
10
+ Destructor.instance.after_save(model)
11
+ end
9
12
 
10
13
  after(:each) do
11
14
  Destructor.instance.cleanup
@@ -13,8 +16,9 @@ module Believer
13
16
  end
14
17
 
15
18
  # Detroys all CqlRecord::Base instances created
16
- class Destructor < Believer::Observer
17
- observe Believer::Base
19
+ class Destructor# < Believer::Observer
20
+ include Singleton
21
+ # observe Believer::Base
18
22
 
19
23
  def cleanup
20
24
  unless @observed_models.nil? || @observed_models.empty?
@@ -30,12 +34,12 @@ module Believer
30
34
  end
31
35
 
32
36
  def observed_models
33
- return @observed_models.dup unless @observed_models.nil?
37
+ return @observed_models.dup.to_a unless @observed_models.nil?
34
38
  []
35
39
  end
36
40
 
37
41
  def after_save(model)
38
- @observed_models ||= []
42
+ @observed_models ||= Set.new
39
43
  @observed_models << model
40
44
  end
41
45
 
@@ -1,5 +1,5 @@
1
1
  module Believer
2
2
  module Version
3
- VERSION = '0.2.8'
3
+ VERSION = '0.2.9'
4
4
  end
5
5
  end
@@ -25,14 +25,9 @@ describe Believer::Test::TestRunLifeCycle do
25
25
  expect(@monitor.kill_count).to eql @created.size
26
26
  end
27
27
 
28
- after :each do
29
- end
30
-
31
- before :each do
32
- end
33
-
34
28
  it "should clean all created objects, even after a fail" do
35
- expect(Believer::Test::TestRunLifeCycle::Destructor.instance.observed_models.size).to eql CREATE_COUNT
29
+ puts "Observed models: \n#{Believer::Test::TestRunLifeCycle::Destructor.instance.observed_models.join("\n")}"
30
+ expect(Believer::Test::TestRunLifeCycle::Destructor.instance.observed_models.size).to eql Fly.create_count
36
31
  end
37
32
 
38
33
  class Monitor
@@ -52,6 +47,14 @@ describe Believer::Test::TestRunLifeCycle do
52
47
  primary_key :name
53
48
 
54
49
  attr_accessor :kill_monitor
50
+ cattr_accessor :create_count
51
+
52
+ def initialize(attrs)
53
+ super
54
+ self.class.create_count ||= 0
55
+ self.class.create_count += 1
56
+ puts "Created #{self.class.create_count}"
57
+ end
55
58
 
56
59
  before_destroy do
57
60
  self.kill_monitor.destroyed
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: believer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 5
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 8
10
- version: 0.2.8
9
+ - 9
10
+ version: 0.2.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jerphaes van Blijenburgh
@@ -39,7 +39,7 @@ dependencies:
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- hash: -2179262306
42
+ hash: 373958899
43
43
  segments:
44
44
  - 1
45
45
  - 1