onfire 0.1.0 → 0.1.1

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/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/README.textile CHANGED
@@ -108,7 +108,7 @@ Which results in
108
108
 
109
109
  h2. Using the @Event@ object
110
110
 
111
- Of course _bill_ wants to find out who's the subversive element, so he just askes the revealing *Event* object.
111
+ Of course _bill_ wants to find out who's the subversive element, so he just asks the revealing *Event* object.
112
112
 
113
113
  <pre>
114
114
  bill.on :thatSucks do |event| event.source.fire! end
data/Rakefile CHANGED
@@ -1,62 +1,10 @@
1
- # encoding: utf-8
2
- require 'rake'
3
- require 'rake/testtask'
4
- require 'rake/rdoctask'
5
- require File.join(File.dirname(__FILE__), 'lib', 'onfire', 'version')
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
6
3
 
7
- desc 'Default: run unit tests.'
8
- task :default => :test
4
+ require 'rake/testtask'
9
5
 
10
- desc 'Test the onfire library.'
11
6
  Rake::TestTask.new(:test) do |test|
12
- test.libs << ['lib', 'test']
13
- test.pattern = 'test/*_test.rb'
7
+ test.libs << 'test'
8
+ test.test_files = FileList['test/*_test.rb']
14
9
  test.verbose = true
15
10
  end
16
-
17
-
18
- # Gem managment tasks.
19
- #
20
- # == Bump gem version (any):
21
- #
22
- # rake version:bump:major
23
- # rake version:bump:minor
24
- # rake version:bump:patch
25
- #
26
- # == Generate gemspec, build & install locally:
27
- #
28
- # rake gemspec
29
- # rake build
30
- # sudo rake install
31
- #
32
- # == Git tag & push to origin/master
33
- #
34
- # rake release
35
- #
36
- # == Release to Gemcutter.org:
37
- #
38
- # rake gemcutter:release
39
- #
40
- begin
41
- gem 'jeweler'
42
- require 'jeweler'
43
-
44
- Jeweler::Tasks.new do |spec|
45
- spec.name = "onfire"
46
- spec.version = ::Onfire::VERSION
47
- spec.summary = %{Have bubbling events and observers in all your Ruby objects.}
48
- spec.description = spec.summary
49
- spec.homepage = "http://github.com/apotonick/onfire"
50
- spec.authors = ["Nick Sutterer"]
51
- spec.email = "apotonick@gmail.com"
52
-
53
- spec.files = FileList["[A-Z]*", File.join(*%w[{lib,test} ** *]).to_s]
54
-
55
- # spec.add_dependency 'activesupport', '>= 2.3.0' # Dependencies and minimum versions?
56
- end
57
-
58
- Jeweler::GemcutterTasks.new
59
- rescue LoadError
60
- puts "Jeweler - or one of its dependencies - is not available. " <<
61
- "Install it with: sudo gem install jeweler -s http://gemcutter.org"
62
- end
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Onfire
4
- VERSION = '0.1.0'.freeze
5
- end
4
+ VERSION = '0.1.1'
5
+ end
data/lib/onfire.rb CHANGED
@@ -14,8 +14,8 @@ module Onfire
14
14
  attach_event_handler(options[:do], table_options)
15
15
  end
16
16
 
17
- def fire(event_type)
18
- bubble_event Event.new(event_type, self)
17
+ def fire(event_type, data={})
18
+ bubble_event Event.new(event_type, self, data)
19
19
  end
20
20
 
21
21
  def bubble_event(event)
@@ -49,4 +49,4 @@ module Onfire
49
49
  def local_event_handlers(event)
50
50
  event_table.all_handlers_for(event.type, event.source)
51
51
  end
52
- end
52
+ end
data/onfire.gemspec ADDED
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.expand_path("../lib", __FILE__)
3
+ require "onfire/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "onfire"
7
+ s.version = Onfire::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Nick Sutterer"]
10
+ s.email = ["apotonick@gmail.com"]
11
+ s.homepage = "http://github.com/apotonick/onfire"
12
+ s.summary = %q{Have bubbling events and observers in all your Ruby objects.}
13
+ s.description = %q{Have bubbling events and observers in all your Ruby objects.}
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+ end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/test_helper'
1
+ require 'test_helper'
2
2
 
3
3
  class EventTableTest < Test::Unit::TestCase
4
4
 
@@ -27,4 +27,4 @@ class EventTableTest < Test::Unit::TestCase
27
27
  assert_equal [:drink, :eat, :have_desert], @head.all_handlers_for(:hungry, :stomach)
28
28
  end
29
29
  end
30
- end
30
+ end
data/test/event_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/test_helper'
1
+ require 'test_helper'
2
2
 
3
3
  class EventTest < Test::Unit::TestCase
4
4
  context "An event" do
@@ -7,6 +7,7 @@ class EventTest < Test::Unit::TestCase
7
7
 
8
8
  assert_equal :click, event.type
9
9
  assert_equal :source, event.source
10
+ assert_nil event.data
10
11
  end
11
12
 
12
13
  should "be fine without any parameters at all" do
@@ -17,6 +18,14 @@ class EventTest < Test::Unit::TestCase
17
18
  assert_nil event.data
18
19
  end
19
20
 
21
+ should "accept payload data" do
22
+ event = Onfire::Event.new(:drag, :source, :target => 'me')
23
+
24
+ assert_equal :drag, event.type
25
+ assert_equal :source, event.source
26
+ assert_equal({:target => 'me'}, event.data)
27
+ end
28
+
20
29
  should "stop if needed" do
21
30
  event = Onfire::Event.new
22
31
 
@@ -25,4 +34,4 @@ class EventTest < Test::Unit::TestCase
25
34
  assert event.stopped?
26
35
  end
27
36
  end
28
- end
37
+ end
data/test/onfire_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/test_helper'
1
+ require 'test_helper'
2
2
 
3
3
  class OnfireTest < Test::Unit::TestCase
4
4
  def mock(name='my_mock')
@@ -39,7 +39,7 @@ class OnfireTest < Test::Unit::TestCase
39
39
 
40
40
  should "invoke exactly one proc and thus push `1` onto #list" do
41
41
  obj = mock
42
- obj.event_table.add_handler(lambda { obj.list << 1 }, :event_type => :click)
42
+ obj.event_table.add_handler(lambda { |evt| obj.list << 1 }, :event_type => :click)
43
43
 
44
44
  obj.process_event(@event)
45
45
 
@@ -48,8 +48,8 @@ class OnfireTest < Test::Unit::TestCase
48
48
 
49
49
  should "not invoke procs for another event_type" do
50
50
  obj = mock
51
- obj.event_table.add_handler(lambda{obj.list << 1}, :event_type => :click)
52
- obj.event_table.add_handler(lambda{obj.list << 2}, :event_type => :drop) # don't call me!
51
+ obj.event_table.add_handler(lambda { |evt| obj.list << 1 }, :event_type => :click)
52
+ obj.event_table.add_handler(lambda { |evt| obj.list << 2 }, :event_type => :drop) # don't call me!
53
53
 
54
54
  obj.process_event(@event)
55
55
 
@@ -239,6 +239,18 @@ class OnfireTest < Test::Unit::TestCase
239
239
  assert_equal ['A beer!', 'There you go.', 'Hurry up, man!', 'Thanks.'], @obj.list
240
240
  end
241
241
 
242
+ should "allow appending arbitrary data to the event" do
243
+ # we use @obj for recording the chat.
244
+ bar = mock('bar')
245
+
246
+ bar.on :thirsty do |evt|
247
+ @obj.list << "You look like #{evt.data[:who]} need a drink."
248
+ end
249
+
250
+ bar.fire :thirsty, :who => "I"
251
+
252
+ assert_equal ["You look like I need a drink."], @obj.list
253
+ end
242
254
  end
243
255
 
244
256
 
@@ -257,4 +269,4 @@ class OnfireTest < Test::Unit::TestCase
257
269
  end
258
270
  end
259
271
 
260
- end
272
+ end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onfire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 1
9
+ version: 0.1.1
5
10
  platform: ruby
6
11
  authors:
7
12
  - Nick Sutterer
@@ -9,25 +14,28 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-19 00:00:00 +01:00
17
+ date: 2011-01-02 00:00:00 +01:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
16
21
  description: Have bubbling events and observers in all your Ruby objects.
17
- email: apotonick@gmail.com
22
+ email:
23
+ - apotonick@gmail.com
18
24
  executables: []
19
25
 
20
26
  extensions: []
21
27
 
22
- extra_rdoc_files:
23
- - README.textile
28
+ extra_rdoc_files: []
29
+
24
30
  files:
31
+ - Gemfile
25
32
  - README.textile
26
33
  - Rakefile
27
34
  - lib/onfire.rb
28
35
  - lib/onfire/event.rb
29
36
  - lib/onfire/event_table.rb
30
37
  - lib/onfire/version.rb
38
+ - onfire.gemspec
31
39
  - test/event_table_test.rb
32
40
  - test/event_test.rb
33
41
  - test/onfire_test.rb
@@ -37,31 +45,32 @@ homepage: http://github.com/apotonick/onfire
37
45
  licenses: []
38
46
 
39
47
  post_install_message:
40
- rdoc_options:
41
- - --charset=UTF-8
48
+ rdoc_options: []
49
+
42
50
  require_paths:
43
51
  - lib
44
52
  required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
45
54
  requirements:
46
55
  - - ">="
47
56
  - !ruby/object:Gem::Version
57
+ segments:
58
+ - 0
48
59
  version: "0"
49
- version:
50
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
+ none: false
51
62
  requirements:
52
63
  - - ">="
53
64
  - !ruby/object:Gem::Version
65
+ segments:
66
+ - 0
54
67
  version: "0"
55
- version:
56
68
  requirements: []
57
69
 
58
70
  rubyforge_project:
59
- rubygems_version: 1.3.5
71
+ rubygems_version: 1.3.7
60
72
  signing_key:
61
73
  specification_version: 3
62
74
  summary: Have bubbling events and observers in all your Ruby objects.
63
- test_files:
64
- - test/onfire_test.rb
65
- - test/test_helper.rb
66
- - test/event_table_test.rb
67
- - test/event_test.rb
75
+ test_files: []
76
+