eventer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,8 @@
1
+ Changes in hscrubber
2
+ ====================
3
+
4
+ Changes in hscrubber reha filter releases are listed here.
5
+
6
+ v0.0.1
7
+ ------
8
+ - Scrubs an HTML code with a reha configuration filter
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in priehlazx.gemspec
4
+ gemspec
@@ -0,0 +1,27 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ eventer (0.0.2)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ diff-lcs (1.1.2)
10
+ rspec (2.0.1)
11
+ rspec-core (~> 2.0.1)
12
+ rspec-expectations (~> 2.0.1)
13
+ rspec-mocks (~> 2.0.1)
14
+ rspec-core (2.0.1)
15
+ rspec-expectations (2.0.1)
16
+ diff-lcs (>= 1.1.2)
17
+ rspec-mocks (2.0.1)
18
+ rspec-core (~> 2.0.1)
19
+ rspec-expectations (~> 2.0.1)
20
+
21
+ PLATFORMS
22
+ ruby
23
+
24
+ DEPENDENCIES
25
+ bundler (>= 1.0.0)
26
+ eventer!
27
+ rspec (~> 2.0.1)
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Malo Skrylevo
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.
@@ -0,0 +1,31 @@
1
+ # Eventer
2
+
3
+ Eventer есть простой движокъ для управления событями класса.
4
+
5
+ Eventer is simple engine to control custom class events.
6
+
7
+ ## Использованіе (Usage)
8
+
9
+ ### Используя методъ экземпляра класса (Using the class instance method)
10
+ Создай класс, и задай допустимыя для него событія. Затѣмъ создай экземпляръ класса и задай обработчикъ событія въ блокѣ съ помощью метода 'on_...' экземпляра класса, гдѣ вмѣсто ... задай имя событія. А потомъ, по необходимости, дёрни событіе методомъ 'event' экземпляра класса. А плодомъ выполненія сего метода будетъ словарь (Hash) съ ключами какъ экземплярами класса Proc отражающими вызванные обработчики и со значеніями какъ плодами работы сихъ обработчиковъ:
11
+
12
+ Make a class, and set the allowable events for it. Then create a class instance, and set handler to process an event as a block using 'on_...' method of the class instance, where instead ... put the name of the event. And then, if needed, trigger event with the 'event' method of the class instance. The result is a Hash with keys as the handler block instance, and values as the handler's output:
13
+
14
+ class Test
15
+ events :event
16
+ end
17
+
18
+ t = Test.new
19
+
20
+ t.on_event do |args|
21
+ "Matched"
22
+ end # -> {<#Proc...> => "Matched"}
23
+
24
+ # Права (Copyright)
25
+
26
+ Авторскія и исключительныя права (а) 2011 Малъ Скрылевъ
27
+ Зри LICENSE за подробностями.
28
+
29
+ Copyright (c) 2011 Malo Skrylevo
30
+ See LICENSE for details.
31
+
@@ -0,0 +1,3 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "eventer/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "eventer"
7
+ s.version = Eventer::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = [ 'Малъ Скрылёвъ (Malo Skrylevo)' ]
10
+ s.email = [ '3aHyga@gmail.com' ]
11
+ s.homepage = 'https://github.com/3aHyga/eventer'
12
+ s.summary = 'eventer is an event throwing engine'
13
+ s.description = 'eventer is the simpest event throwing engine'
14
+
15
+ s.rubyforge_project = "eventer"
16
+
17
+ s.required_rubygems_version = '>= 1.6.0'
18
+
19
+ s.add_development_dependency("bundler", ">= 1.0.0")
20
+ s.add_development_dependency("rspec", "~> 2.0.1")
21
+
22
+ s.files = `git ls-files`.split("\n")
23
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
24
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
25
+ s.require_paths = ["lib"]
26
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/ruby
2
+
3
+ module Eventer
4
+ class EventerError < StandardError
5
+ end
6
+
7
+ def method_missing(sym, *args, &block)
8
+ if sym.to_s =~ /^on_(.*)/
9
+ (event, prc) = [ $1.to_sym, block ]
10
+ raise EventerError.new "Unregistered event :#{event}" unless self.class.events.include? event
11
+ @__events__ = {} unless @__events__
12
+ @__events__[event] = [] unless @__events__[event]
13
+ @__events__[event] << prc unless @__events__[event].include? prc
14
+ else; super; end
15
+ end
16
+
17
+ def event(event, *args)
18
+ res = {}
19
+
20
+ if @__events__ and @__events__[event]
21
+ @__events__[event].each do |event_h|
22
+ res[event_h] = event_h.call(args)
23
+ end
24
+ else
25
+ raise EventerError.new "Unregistered event :#{event}"
26
+ end
27
+
28
+ res
29
+ end
30
+
31
+ end
32
+
33
+
34
+ class Class
35
+
36
+ def events(*args)
37
+ return @__events__ if args.empty?
38
+ return if @__events__
39
+
40
+ @__events__ = args.map do |event| event.to_sym end.compact
41
+ include Eventer
42
+ end
43
+
44
+ end
45
+
@@ -0,0 +1,3 @@
1
+ module Eventer
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require File.expand_path('../spec_helper', __FILE__)
4
+
5
+ describe 'Eventer' do
6
+ it "Good event match" do
7
+ class Test
8
+ events :event
9
+ end
10
+
11
+ t = Test.new
12
+
13
+ t.on_event do |args|
14
+ "Matched"
15
+ end
16
+
17
+ o = (t.event :event).to_a.flatten.map do |x| x.class == String ? x : nil end.compact
18
+
19
+ raise "Event result isn't matched" if o != [ "Matched" ]
20
+ end
21
+
22
+ it "Unknown event triggered" do
23
+ class Test
24
+ events :event
25
+ end
26
+
27
+ t = Test.new
28
+
29
+ t.on_event do |args|
30
+ "Matched"
31
+ end
32
+
33
+ o = begin
34
+ (t.event :unknown).to_a.flatten.map do |x| x.class == String ? x : nil end.compact
35
+ rescue Eventer::EventerError
36
+ true
37
+ end
38
+
39
+ raise "Event result isn't matched" if (not o) or (o != true)
40
+ end
41
+
42
+ it "Try to register an unknown event" do
43
+ class Test
44
+ events :event
45
+ end
46
+
47
+ t = Test.new
48
+
49
+ o = begin
50
+ t.on_unknown do |args|
51
+ "Matched"
52
+ end
53
+ false
54
+ rescue Eventer::EventerError
55
+ true
56
+ end
57
+
58
+ raise "Event result isn't matched" if (not o) or (o != true)
59
+ end
60
+ end
61
+
62
+
@@ -0,0 +1,7 @@
1
+
2
+ require File.expand_path('../../lib/eventer', __FILE__)
3
+
4
+ RSpec.configure do |c|
5
+ c.mock_with :rspec
6
+ end
7
+
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eventer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Малъ Скрылёвъ (Malo Skrylevo)
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-04-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: &69651220 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *69651220
25
+ - !ruby/object:Gem::Dependency
26
+ name: rspec
27
+ requirement: &69650990 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.1
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *69650990
36
+ description: eventer is the simpest event throwing engine
37
+ email:
38
+ - 3aHyga@gmail.com
39
+ executables: []
40
+ extensions: []
41
+ extra_rdoc_files: []
42
+ files:
43
+ - CHANGES.md
44
+ - Gemfile
45
+ - Gemfile.lock
46
+ - LICENSE
47
+ - README.md
48
+ - Rakefile
49
+ - eventer.gemspec
50
+ - lib/eventer.rb
51
+ - lib/eventer/version.rb
52
+ - spec/eventer_spec.rb
53
+ - spec/spec_helper.rb
54
+ homepage: https://github.com/3aHyga/eventer
55
+ licenses: []
56
+ post_install_message:
57
+ rdoc_options: []
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: 1.6.0
72
+ requirements: []
73
+ rubyforge_project: eventer
74
+ rubygems_version: 1.7.2
75
+ signing_key:
76
+ specification_version: 3
77
+ summary: eventer is an event throwing engine
78
+ test_files:
79
+ - spec/eventer_spec.rb
80
+ - spec/spec_helper.rb