event_machine 0.3.1 → 0.4.0
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/event_machine.rb +13 -112
- data/lib/event_machine/engine.rb +21 -0
- data/lib/event_machine/hooks.rb +116 -0
- data/lib/event_machine/version.rb +3 -0
- data/{generators → lib/generators}/event_machine/event_machine_generator.rb +3 -6
- data/{generators → lib/generators}/event_machine/templates/event.rb +0 -0
- data/{generators → lib/generators}/event_machine/templates/functional_test.rb +0 -0
- metadata +42 -29
- data/.document +0 -5
- data/LICENSE +0 -20
- data/README.rdoc +0 -77
- data/Rakefile +0 -53
- data/VERSION +0 -1
- data/event_machine.gemspec +0 -51
- data/generators/event_machine/USAGE +0 -2
- data/test/helper.rb +0 -10
- data/test/test_event_machine.rb +0 -7
data/lib/event_machine.rb
CHANGED
@@ -1,112 +1,13 @@
|
|
1
|
-
require "
|
2
|
-
require
|
3
|
-
|
4
|
-
module EventMachine
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
BCE
|
15
|
-
end
|
16
|
-
|
17
|
-
protected
|
18
|
-
|
19
|
-
def reporter_around_filter
|
20
|
-
|
21
|
-
events_load_bm = Benchmark.measure do
|
22
|
-
load_events if @@reporter_events.empty?
|
23
|
-
end
|
24
|
-
|
25
|
-
events = @@reporter_events.select {|e| e.match_event?(self.class, action_name)}
|
26
|
-
|
27
|
-
# Calling all before actions for this controler and action
|
28
|
-
events.each { |event| event.call_before(self) }
|
29
|
-
|
30
|
-
# Calling original action
|
31
|
-
yield
|
32
|
-
|
33
|
-
# Calling all after actions for this controler and action
|
34
|
-
events.each { |event| event.call_after(self) }
|
35
|
-
end
|
36
|
-
|
37
|
-
def for_action(controller, action, &block)
|
38
|
-
@@reporter_events << EventMeta.new(controller, action, &block)
|
39
|
-
end
|
40
|
-
|
41
|
-
def for_actions(actions_array, &block)
|
42
|
-
actions_array.each do |item|
|
43
|
-
@@reporter_events << EventMeta.new(item[0], item[1], &block)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def turn_off_for_action(controller, action, &block)
|
48
|
-
for_action(controller, action, &block) if test?
|
49
|
-
end
|
50
|
-
|
51
|
-
def load_events
|
52
|
-
return if test?
|
53
|
-
Dir["#{EVENTS_DIR}/**/*event.rb"].collect do |file|
|
54
|
-
load_event(file)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def load_event(file)
|
59
|
-
clear_events if test?
|
60
|
-
code = File.new(file).readlines.join('')
|
61
|
-
begin
|
62
|
-
instance_eval code, __FILE__, __LINE__
|
63
|
-
rescue => e
|
64
|
-
logger.warn "FAILED!"
|
65
|
-
logger.warn e.backtrace
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def clear_events
|
70
|
-
@@reporter_events.clear
|
71
|
-
end
|
72
|
-
|
73
|
-
def reporter_events
|
74
|
-
@@reporter_events
|
75
|
-
end
|
76
|
-
|
77
|
-
def test?
|
78
|
-
ENV["RAILS_ENV"] == "test"
|
79
|
-
end
|
80
|
-
|
81
|
-
class EventMeta
|
82
|
-
|
83
|
-
def initialize(controller_class, name, &block)
|
84
|
-
@controller_class = controller_class
|
85
|
-
@action = name
|
86
|
-
self.instance_eval(&block)
|
87
|
-
end
|
88
|
-
|
89
|
-
def call_before(controller_instance)
|
90
|
-
controller_instance.instance_eval(&@before) if @before
|
91
|
-
end
|
92
|
-
|
93
|
-
def call_after(controller_instance)
|
94
|
-
controller_instance.instance_eval(&@after) if @after
|
95
|
-
end
|
96
|
-
|
97
|
-
def match_event?(clazz, action_name)
|
98
|
-
@controller_class == clazz && @action.to_s == action_name.to_s
|
99
|
-
end
|
100
|
-
private
|
101
|
-
|
102
|
-
def before(&block)
|
103
|
-
@before = block
|
104
|
-
end
|
105
|
-
|
106
|
-
def after(&block)
|
107
|
-
@after = block
|
108
|
-
end
|
109
|
-
|
110
|
-
end
|
111
|
-
|
112
|
-
end
|
1
|
+
require "event_machine/version"
|
2
|
+
require "active_support/dependencies"
|
3
|
+
|
4
|
+
module EventMachine
|
5
|
+
mattr_accessor :app_root
|
6
|
+
|
7
|
+
def self.setup
|
8
|
+
yield self
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
require "event_machine/engine"
|
13
|
+
require "event_machine/hooks"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module EventMachine
|
2
|
+
class Engine < Rails::Engine
|
3
|
+
|
4
|
+
initializer "event_machine.load_app_instance_data" do |app|
|
5
|
+
EventMachine.setup do |config|
|
6
|
+
config.app_root = app.root
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
#initialize "event_machine.load_static_assets" do |app|
|
11
|
+
# app.middleware.use ::ActionDispatc::Static, "#{root}/public"
|
12
|
+
#end
|
13
|
+
|
14
|
+
initializer "event_machine.application" do
|
15
|
+
ActiveSupport.on_load :action_controller do
|
16
|
+
include EventMachine::Hooks
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require "pp"
|
2
|
+
require 'benchmark'
|
3
|
+
|
4
|
+
module EventMachine
|
5
|
+
|
6
|
+
module Hooks
|
7
|
+
|
8
|
+
EVENTS_DIR = "app/events"
|
9
|
+
|
10
|
+
def self.included(base)
|
11
|
+
class_eval <<-EOF
|
12
|
+
@@reporter_events = Array.new
|
13
|
+
EOF
|
14
|
+
base.class_eval <<-BCE
|
15
|
+
around_filter :reporter_around_filter
|
16
|
+
BCE
|
17
|
+
end
|
18
|
+
|
19
|
+
protected
|
20
|
+
|
21
|
+
def reporter_around_filter
|
22
|
+
|
23
|
+
events_load_bm = Benchmark.measure do
|
24
|
+
load_events if @@reporter_events.empty?
|
25
|
+
end
|
26
|
+
|
27
|
+
events = @@reporter_events.select {|e| e.match_event?(self.class, action_name)}
|
28
|
+
|
29
|
+
# Calling all before actions for this controler and action
|
30
|
+
events.each { |event| event.call_before(self) }
|
31
|
+
|
32
|
+
# Calling original action
|
33
|
+
yield
|
34
|
+
|
35
|
+
# Calling all after actions for this controler and action
|
36
|
+
events.each { |event| event.call_after(self) }
|
37
|
+
end
|
38
|
+
|
39
|
+
def for_action(controller, action, &block)
|
40
|
+
@@reporter_events << EventMeta.new(controller, action, &block)
|
41
|
+
end
|
42
|
+
|
43
|
+
def for_actions(actions_array, &block)
|
44
|
+
actions_array.each do |item|
|
45
|
+
@@reporter_events << EventMeta.new(item[0], item[1], &block)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def turn_off_for_action(controller, action, &block)
|
50
|
+
for_action(controller, action, &block) if test?
|
51
|
+
end
|
52
|
+
|
53
|
+
def load_events
|
54
|
+
return if test?
|
55
|
+
Dir["#{Rails.root + EVENTS_DIR}/**/*event.rb"].collect do |file|
|
56
|
+
load_event(file)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def load_event(file)
|
61
|
+
clear_events if test?
|
62
|
+
code = File.new(file).readlines.join('')
|
63
|
+
begin
|
64
|
+
instance_eval code, __FILE__, __LINE__
|
65
|
+
rescue => e
|
66
|
+
logger.warn "FAILED!"
|
67
|
+
logger.warn e.backtrace
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def clear_events
|
72
|
+
@@reporter_events.clear
|
73
|
+
end
|
74
|
+
|
75
|
+
def reporter_events
|
76
|
+
@@reporter_events
|
77
|
+
end
|
78
|
+
|
79
|
+
def test?
|
80
|
+
ENV["RAILS_ENV"] == "test"
|
81
|
+
end
|
82
|
+
|
83
|
+
class EventMeta
|
84
|
+
|
85
|
+
def initialize(controller_class, name, &block)
|
86
|
+
@controller_class = controller_class
|
87
|
+
@action = name
|
88
|
+
self.instance_eval(&block)
|
89
|
+
end
|
90
|
+
|
91
|
+
def call_before(controller_instance)
|
92
|
+
controller_instance.instance_eval(&@before) if @before
|
93
|
+
end
|
94
|
+
|
95
|
+
def call_after(controller_instance)
|
96
|
+
controller_instance.instance_eval(&@after) if @after
|
97
|
+
end
|
98
|
+
|
99
|
+
def match_event?(clazz, action_name)
|
100
|
+
@controller_class == clazz && @action.to_s == action_name.to_s
|
101
|
+
end
|
102
|
+
private
|
103
|
+
|
104
|
+
def before(&block)
|
105
|
+
@before = block
|
106
|
+
end
|
107
|
+
|
108
|
+
def after(&block)
|
109
|
+
@after = block
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
@@ -1,16 +1,13 @@
|
|
1
|
-
|
2
|
-
require 'fileutils'
|
3
|
-
|
1
|
+
require 'rails/generators'
|
4
2
|
class EventMachineGenerator < Rails::Generators::Base
|
5
|
-
|
6
3
|
source_root File.expand_path('../templates', __FILE__)
|
7
4
|
|
8
5
|
argument :this_event_name, :type => :string
|
9
6
|
argument :controller_name, :type => :string
|
10
|
-
argument :action_name,
|
7
|
+
argument :action_name, :type => :string
|
11
8
|
|
12
9
|
def generate_event
|
13
|
-
template "event.rb", "events/#{parsed_event_name}_event.rb"
|
10
|
+
template "event.rb", "app/events/#{parsed_event_name}_event.rb"
|
14
11
|
template "functional_test.rb", "test/functional/events/#{parsed_event_name}_test.rb"
|
15
12
|
end
|
16
13
|
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,50 +1,63 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: event_machine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
-
|
8
|
+
- tteng
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement:
|
15
|
+
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
-
type: :
|
21
|
+
version: 3.0.0
|
22
|
+
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rails
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 3.0.0
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 3.0.0
|
46
|
+
description: simple elegant customize hooks
|
47
|
+
email:
|
48
|
+
- tim.rubist@gmail.com
|
28
49
|
executables: []
|
29
50
|
extensions: []
|
30
|
-
extra_rdoc_files:
|
31
|
-
- LICENSE
|
32
|
-
- README.rdoc
|
51
|
+
extra_rdoc_files: []
|
33
52
|
files:
|
34
|
-
- .document
|
35
|
-
- LICENSE
|
36
|
-
- README.rdoc
|
37
|
-
- Rakefile
|
38
|
-
- VERSION
|
39
|
-
- event_machine.gemspec
|
40
|
-
- generators/event_machine/USAGE
|
41
|
-
- generators/event_machine/event_machine_generator.rb
|
42
|
-
- generators/event_machine/templates/event.rb
|
43
|
-
- generators/event_machine/templates/functional_test.rb
|
44
53
|
- lib/event_machine.rb
|
45
|
-
-
|
46
|
-
-
|
47
|
-
|
54
|
+
- lib/event_machine/engine.rb
|
55
|
+
- lib/event_machine/hooks.rb
|
56
|
+
- lib/event_machine/version.rb
|
57
|
+
- lib/generators/event_machine/event_machine_generator.rb
|
58
|
+
- lib/generators/event_machine/templates/event.rb
|
59
|
+
- lib/generators/event_machine/templates/functional_test.rb
|
60
|
+
homepage: http://github.com/tteng
|
48
61
|
licenses: []
|
49
62
|
post_install_message:
|
50
63
|
rdoc_options: []
|
@@ -64,8 +77,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
77
|
version: '0'
|
65
78
|
requirements: []
|
66
79
|
rubyforge_project:
|
67
|
-
rubygems_version: 1.8.
|
80
|
+
rubygems_version: 1.8.24
|
68
81
|
signing_key:
|
69
82
|
specification_version: 3
|
70
|
-
summary:
|
83
|
+
summary: simple elegant around filters to handle routines
|
71
84
|
test_files: []
|
data/.document
DELETED
data/LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) 2009 tim.teng
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
= event_machine
|
2
|
-
With event machine, you can keep an eye on any action on your rails controller, say in your sns website, when user posts a blog, you need to notice all of his friends, but it's really urgly to do like this:
|
3
|
-
|
4
|
-
BlogController:
|
5
|
-
def create
|
6
|
-
# new and save code
|
7
|
-
notice_all_friends
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
let's take another scenario, in your sns site, when one user makes friends with the other one, we should notice all friends of these two people, but how to?
|
12
|
-
we'd beeter have an observer on the action, the code in the make_friends action block only concerns about building relationship between the two people, the observer then notice other people, and this is also what IoC(AOP) teach us.
|
13
|
-
|
14
|
-
Usage:
|
15
|
-
|
16
|
-
in your config/environment.rb:
|
17
|
-
|
18
|
-
gem "event_machine", :version => ">=0.2.1"
|
19
|
-
|
20
|
-
application_controller.rb:
|
21
|
-
|
22
|
-
class ApplicationController < ActionController::Base
|
23
|
-
include EventMachine
|
24
|
-
end
|
25
|
-
|
26
|
-
and the generate command :
|
27
|
-
|
28
|
-
~your_project_path> rails g event_machine create_favorite FavoriteController create
|
29
|
-
|
30
|
-
then it will generate a event file which content like following:
|
31
|
-
|
32
|
-
|
33
|
-
for_action FavoritesController, :create do
|
34
|
-
|
35
|
-
before do
|
36
|
-
# This will be called before FavoriteController#create
|
37
|
-
end
|
38
|
-
|
39
|
-
after do
|
40
|
-
# This will be called after FavoriteController#create
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
now you can add your code in the block and after block, enjoy.
|
47
|
-
|
48
|
-
= to observe multiple actions
|
49
|
-
|
50
|
-
to observe multiple actions, you should:
|
51
|
-
|
52
|
-
for_actions [[FavoritesController, :create], [BlogsController,:create]] do
|
53
|
-
|
54
|
-
before do
|
55
|
-
# your code goes here
|
56
|
-
end
|
57
|
-
|
58
|
-
after do
|
59
|
-
# your code goes here
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
== Note on Patches/Pull Requests
|
66
|
-
|
67
|
-
* Fork the project.
|
68
|
-
* Make your feature addition or bug fix.
|
69
|
-
* Add tests for it. This is important so I don't break it in a
|
70
|
-
future version unintentionally.
|
71
|
-
* Commit, do not mess with rakefile, version, or history.
|
72
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
73
|
-
* Send me a pull request. Bonus points for topic branches.
|
74
|
-
|
75
|
-
== Copyright
|
76
|
-
|
77
|
-
Copyright (c) 2010 tim.teng. See LICENSE for details.
|
data/Rakefile
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "event_machine"
|
8
|
-
gem.summary = %Q{an observer to record events}
|
9
|
-
gem.description = %Q{Event Machine is observer to record any action you want to keep an eye on}
|
10
|
-
gem.email = "tim.rubist@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/tteng/event_machine"
|
12
|
-
gem.authors = ["tim.teng"]
|
13
|
-
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
14
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
-
end
|
16
|
-
Jeweler::GemcutterTasks.new
|
17
|
-
rescue LoadError
|
18
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
19
|
-
end
|
20
|
-
|
21
|
-
require 'rake/testtask'
|
22
|
-
Rake::TestTask.new(:test) do |test|
|
23
|
-
test.libs << 'lib' << 'test'
|
24
|
-
test.pattern = 'test/**/test_*.rb'
|
25
|
-
test.verbose = true
|
26
|
-
end
|
27
|
-
|
28
|
-
begin
|
29
|
-
require 'rcov/rcovtask'
|
30
|
-
Rcov::RcovTask.new do |test|
|
31
|
-
test.libs << 'test'
|
32
|
-
test.pattern = 'test/**/test_*.rb'
|
33
|
-
test.verbose = true
|
34
|
-
end
|
35
|
-
rescue LoadError
|
36
|
-
task :rcov do
|
37
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
task :test => :check_dependencies
|
42
|
-
|
43
|
-
task :default => :test
|
44
|
-
|
45
|
-
require 'rake/rdoctask'
|
46
|
-
Rake::RDocTask.new do |rdoc|
|
47
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
|
-
|
49
|
-
rdoc.rdoc_dir = 'rdoc'
|
50
|
-
rdoc.title = "event_machine #{version}"
|
51
|
-
rdoc.rdoc_files.include('README*')
|
52
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
|
-
end
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.3.1
|
data/event_machine.gemspec
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = "event_machine"
|
8
|
-
s.version = "0.3.1"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["tim.teng"]
|
12
|
-
s.date = "2011-12-16"
|
13
|
-
s.description = "Event Machine is observer to record any action you want to keep an eye on"
|
14
|
-
s.email = "tim.rubist@gmail.com"
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"LICENSE",
|
22
|
-
"README.rdoc",
|
23
|
-
"Rakefile",
|
24
|
-
"VERSION",
|
25
|
-
"event_machine.gemspec",
|
26
|
-
"generators/event_machine/USAGE",
|
27
|
-
"generators/event_machine/event_machine_generator.rb",
|
28
|
-
"generators/event_machine/templates/event.rb",
|
29
|
-
"generators/event_machine/templates/functional_test.rb",
|
30
|
-
"lib/event_machine.rb",
|
31
|
-
"test/helper.rb",
|
32
|
-
"test/test_event_machine.rb"
|
33
|
-
]
|
34
|
-
s.homepage = "http://github.com/tteng/event_machine"
|
35
|
-
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = "1.8.10"
|
37
|
-
s.summary = "an observer to record events"
|
38
|
-
|
39
|
-
if s.respond_to? :specification_version then
|
40
|
-
s.specification_version = 3
|
41
|
-
|
42
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
43
|
-
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
44
|
-
else
|
45
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
46
|
-
end
|
47
|
-
else
|
48
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
data/test/helper.rb
DELETED
data/test/test_event_machine.rb
DELETED