blur 1.7.1 → 1.7.2.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9b624334737b721f47625f3cc950fd7a8515c477
4
+ data.tar.gz: fea9f9075bfeb39d3a146f4d2a5e002afe8174c1
5
+ SHA512:
6
+ metadata.gz: 0b1e9c7131068b6d72f8782fd990aee42fc3e619df31625d4ec94d89d6bf6fde10c70a41bf6d6e76d4d90c677b440a675946a0580f4680d4f632d5af362e154a
7
+ data.tar.gz: c15c9953ef3f3c2ca23f7062e3a61f75c55487f6d781197ecbf1e674b3c94f6901f59b442106de8832104f54ed81a3cb04ebee3efd70c47f22ec63a782fadda6
data/library/blur.rb CHANGED
@@ -28,7 +28,7 @@ require 'blur/script/messageparsing'
28
28
  # It can be by handlers, scripts, communications, and what have you.
29
29
  module Blur
30
30
  # The major and minor version-values of Blur.
31
- Version = "1.7.1"
31
+ Version = "1.7.2"
32
32
 
33
33
  # Instantiates a client with given options and then makes the client instance
34
34
  # evaluate the given block to form a DSL.
@@ -29,7 +29,6 @@ module Blur
29
29
  #
30
30
  # @see http://www.irchelp.org/irchelp/rfc/chapter6.html
31
31
  module Handling
32
- protected
33
32
 
34
33
  # Called when the MOTD was received, which also means it is ready.
35
34
  #
@@ -0,0 +1,72 @@
1
+ # encoding: utf-8
2
+
3
+ module Blur
4
+ class Script < Module
5
+ # The +DSL+ module is a module that gives the ability to turn a
6
+ # script into a DSL-like framework.
7
+ #
8
+ # What it does is automatically test to see if a message starts with a
9
+ # trigger, and then, if so, it sends the command-part of the message to
10
+ # the script object itself.
11
+ #
12
+ # This way, the plugin-writer doesn't need to have repetetive code like
13
+ # that in every script.
14
+ #
15
+ # @example
16
+ # Script :example do
17
+ # include Fantasy
18
+ #
19
+ # command :test do |user, channel, message|
20
+ # channel.say "I hear you."
21
+ # end
22
+ # end
23
+ #
24
+ # # And if a user were to send the message ".test my method", it would
25
+ # # trigger the test block with the following arguments
26
+ # #
27
+ # # user => #<Blur::Network::User … >
28
+ # # channel => #<Blur::Network::Channel … >
29
+ # # message => ".test my method"
30
+ module DSL
31
+ # The prefix that turns it into a possible command.
32
+ MessageTrigger = "."
33
+
34
+ # Extend +klass+ with self.
35
+ def self.included klass
36
+ klass.extend self
37
+ end
38
+
39
+ # Called when a script has been loaded, for use in modules extending
40
+ # the script.
41
+ def module_init
42
+ @__dsl_triggers = {}
43
+ end
44
+
45
+ def command name, *args, &block
46
+ (@__dsl_triggers ||= {})[name] = block
47
+ end
48
+
49
+ # Handle all calls to the scripts +message+ method, check to see if
50
+ # the message containts a valid command, serialize it and pass it to
51
+ # the script as command_name with the parameters +user+, +channel+
52
+ # and +message+.
53
+ def message user, channel, line
54
+ return unless line.start_with? MessageTrigger
55
+
56
+ command, args = line.split $;, 2
57
+ trigger = strip command
58
+
59
+ if handler = @__dsl_triggers[trigger]
60
+ handler.(user, channel, args)
61
+ end
62
+ end
63
+
64
+ protected
65
+
66
+ # Strip all non-word characters from the input command.
67
+ def strip name
68
+ name.gsub /\W/, '' if name
69
+ end
70
+ end
71
+ end
72
+ end
metadata CHANGED
@@ -1,97 +1,89 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blur
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
5
- prerelease:
4
+ version: 1.7.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Mikkel Kroman
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-03 00:00:00.000000000 Z
11
+ date: 2013-06-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: majic
16
- requirement: &22641900 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0.2'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *22641900
25
- - !ruby/object:Gem::Dependency
26
- name: crypt19
27
- requirement: &22641420 !ruby/object:Gem::Requirement
28
- none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
29
23
  requirements:
30
- - - ! '>='
24
+ - - '>='
31
25
  - !ruby/object:Gem::Version
32
- version: 1.2.1
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *22641420
26
+ version: '0.2'
36
27
  - !ruby/object:Gem::Dependency
37
28
  name: eventmachine
38
- requirement: &22640900 !ruby/object:Gem::Requirement
39
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
40
30
  requirements:
41
- - - ! '>'
31
+ - - '>'
42
32
  - !ruby/object:Gem::Version
43
33
  version: '0.12'
44
34
  type: :runtime
45
35
  prerelease: false
46
- version_requirements: *22640900
47
- description: ! ' An event-driven IRC-framework in and for Ruby. Is extensible and
48
- supports script with (re)loading functionality during runtime.
49
-
50
- '
51
- email: mk@maero.dk
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>'
39
+ - !ruby/object:Gem::Version
40
+ version: '0.12'
41
+ description:
42
+ email: mk@uplink.io
52
43
  executables: []
53
44
  extensions: []
54
45
  extra_rdoc_files: []
55
46
  files:
56
47
  - library/blur/client.rb
57
- - library/blur/network.rb
58
- - library/blur/encryption/fish.rb
59
48
  - library/blur/encryption/base64.rb
49
+ - library/blur/encryption/fish.rb
60
50
  - library/blur/encryption.rb
61
- - library/blur/script/fantasy.rb
62
- - library/blur/script/cache.rb
63
- - library/blur/script/messageparsing.rb
51
+ - library/blur/enhancements.rb
52
+ - library/blur/handling.rb
64
53
  - library/blur/network/channel.rb
65
54
  - library/blur/network/command.rb
66
- - library/blur/network/user.rb
67
55
  - library/blur/network/connection.rb
56
+ - library/blur/network/user.rb
57
+ - library/blur/network.rb
58
+ - library/blur/script/cache.rb
59
+ - library/blur/script/dsl.rb
60
+ - library/blur/script/fantasy.rb
61
+ - library/blur/script/messageparsing.rb
68
62
  - library/blur/script.rb
69
- - library/blur/enhancements.rb
70
- - library/blur/handling.rb
71
63
  - library/blur.rb
72
64
  homepage: https://github.com/mkroman/blur
73
65
  licenses:
74
- - ISC
66
+ - Internet Systems Consortium (ISC)
67
+ metadata: {}
75
68
  post_install_message:
76
69
  rdoc_options: []
77
70
  require_paths:
78
71
  - library
79
72
  required_ruby_version: !ruby/object:Gem::Requirement
80
- none: false
81
73
  requirements:
82
- - - ! '>='
74
+ - - '>='
83
75
  - !ruby/object:Gem::Version
84
- version: '0'
76
+ version: 1.9.1
85
77
  required_rubygems_version: !ruby/object:Gem::Requirement
86
- none: false
87
78
  requirements:
88
- - - ! '>='
79
+ - - '>='
89
80
  - !ruby/object:Gem::Version
90
81
  version: '0'
91
82
  requirements: []
92
83
  rubyforge_project:
93
- rubygems_version: 1.8.11
84
+ rubygems_version: 2.0.0
94
85
  signing_key:
95
- specification_version: 3
86
+ specification_version: 4
96
87
  summary: An event-driven IRC-framework for Ruby.
97
88
  test_files: []
89
+ has_rdoc: