reorm 0.1.2 → 0.1.3

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: 349b42b82a65b2182cbb0d4e22ead28a3009c8c4
4
- data.tar.gz: 69773c3cf634e58f0bde246101027d01876ecfec
3
+ metadata.gz: 1918c9ecdd0e0a161e62b8587b254e1a9679b052
4
+ data.tar.gz: aeb3dd4474c0aee5e7fd42b681ab12941114fa31
5
5
  SHA512:
6
- metadata.gz: 4c999d7600d72b61f1b1462a87ef3dd19a5a284c7c580a77f3c0fdb08a0121b87aa01250ae30e104813352c33d5a453deb7be664e496e7d6e6eb906244fc47a9
7
- data.tar.gz: 3390fb660e114daa2287541d0f04335a80c0958703b8c75141dcf0289f91ac166483fd9afca6ea5a2bebae1a6901be773596dd7ddaa89dad8b8b80d5198cc4a5
6
+ metadata.gz: 1605bae7dc2d7fd475f8e042cc291da4b56a069291a84462bec879a772b2261088d270bae06431afd263689acc3900f92e887f7d59c49be44f08c006a31715a6
7
+ data.tar.gz: c3be7ca8d516f9da9c6450b34afabb6bbf9f8805c28872719a691835df6a4729bafeaf5c7a019c6ea6043313259ae793a7095ccd7a203d9f2007144aa6e5f171
@@ -8,8 +8,7 @@ module Reorm
8
8
  @@class_events = {}
9
9
  end
10
10
 
11
- # A module that defines the class level methods for setting event handlers.
12
- module EventHandler
11
+ module SpecifyEventHandlers
13
12
  include EventData
14
13
 
15
14
  def after_create(*methods)
@@ -45,13 +44,18 @@ module Reorm
45
44
  end
46
45
 
47
46
  def store_event_handlers(event, *methods)
48
- if self.instance_of?(Class)
49
- @@class_events[self] = {} if !@@class_events.include?(self)
50
- @@class_events[self][event] = [] if !@@class_events[self].include?(event)
51
- @@class_events[self][event] = @@class_events[self][event].concat(methods).uniq
52
- else
53
- self.class.store_event_handlers(event, *methods)
54
- end
47
+ @@class_events[self] = {} if !@@class_events.include?(self)
48
+ @@class_events[self][event] = [] if !@@class_events[self].include?(event)
49
+ @@class_events[self][event] = @@class_events[self][event].concat(methods).uniq
50
+ end
51
+ end
52
+
53
+ # A module that defines the class level methods for setting event handlers.
54
+ module EventHandler
55
+ include EventData
56
+
57
+ def EventHandler.included(target)
58
+ target.extend(SpecifyEventHandlers)
55
59
  end
56
60
  end
57
61
 
@@ -69,7 +73,7 @@ module Reorm
69
73
  if handlers.include?(event)
70
74
  handlers[event].each do |handler|
71
75
  if !object.respond_to?(handler)
72
- raise Error, "Unable to locate a method called '#{event}' for an instance of the #{object.class.name} class."
76
+ raise Error, "Unable to locate a method called '#{handler}' for an instance of the #{object.class.name} class."
73
77
  end
74
78
  object.__send__(handler)
75
79
  end
@@ -78,5 +82,9 @@ module Reorm
78
82
  end
79
83
  end
80
84
  end
85
+
86
+ def EventSource.included(target)
87
+ target.extend(EventSource)
88
+ end
81
89
  end
82
90
  end
data/lib/reorm/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Reorm
2
2
  MAJOR_VERSION = 0
3
3
  MINOR_VERSION = 1
4
- BUILD_VERSION = 2
4
+ BUILD_VERSION = 3
5
5
  VERSION = "#{MAJOR_VERSION}.#{MINOR_VERSION}.#{BUILD_VERSION}"
6
6
  end
@@ -3,8 +3,9 @@ require "spec_helper"
3
3
  class EventSourceTest
4
4
  include Reorm::EventHandler
5
5
  include Reorm::EventSource
6
- extend Reorm::EventHandler
7
- extend Reorm::EventSource
6
+
7
+ before_create :event_handler
8
+ before_validate :does_not_exist
8
9
 
9
10
  def initialize
10
11
  @count = 0
@@ -30,14 +31,6 @@ describe EventSourceTest do
30
31
  end
31
32
 
32
33
  describe "#fire_events()" do
33
- describe "called at the instance level" do
34
- it "calls methods assigned to events when those events are fired" do
35
- subject.before_create :event_handler
36
- subject.fire_events(events: [:before_create])
37
- expect(subject.count).to eq(1)
38
- end
39
- end
40
-
41
34
  describe "called at the class level" do
42
35
  it "calls methods assigned to events when those events are fired" do
43
36
  EventSourceTest.before_create :event_handler
@@ -45,5 +38,11 @@ describe EventSourceTest do
45
38
  expect(subject.count).to eq(1)
46
39
  end
47
40
  end
41
+
42
+ it "raises an exception if an event that has been specified does not exist" do
43
+ expect {
44
+ subject.fire_events(target: subject, events: [:before_validate])
45
+ }.to raise_exception(Reorm::Error, "Unable to locate a method called 'does_not_exist' for an instance of the EventSourceTest class.")
46
+ end
48
47
  end
49
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reorm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Wood