reorm 0.1.2 → 0.1.3

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: 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