blur 1.5.2 → 1.5.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.
data/library/blur.rb CHANGED
@@ -9,7 +9,7 @@ require 'openssl'
9
9
  Dir.glob("#{File.dirname __FILE__}/blur/**/*.rb").each &method(:require)
10
10
 
11
11
  module Blur
12
- class << Version = [1,5,2]
12
+ class << Version = [1,5,3]
13
13
  def to_s; join '.' end
14
14
  end
15
15
 
@@ -46,7 +46,7 @@ module Blur
46
46
 
47
47
  Dir.glob("#{script_path}/scripts/*.rb").each do |path|
48
48
  script = Script.new path
49
- script.client = self
49
+ script.__client = self
50
50
 
51
51
  @scripts << script
52
52
  end
@@ -84,9 +84,10 @@ module Blur
84
84
  rescue StandardError => exception
85
85
  if network.connected?
86
86
  network.disconnect
87
- emit :connection_terminated, network
88
87
  end
89
88
 
89
+ emit :connection_terminated, network
90
+
90
91
  puts "#{"Network error" ^ :red} (#{exception.class.name}): #{exception.message}"
91
92
  end
92
93
  end
@@ -104,7 +105,7 @@ module Blur
104
105
  begin
105
106
  script.__send__ name, *args if script.respond_to? name
106
107
  rescue Exception => exception
107
- puts ("#{File.basename script.path}:#{exception.line}" ^ :bold) + ": #{"error:" ^ :red} #{exception.message}"
108
+ puts ("#{File.basename script.__path}:#{exception.line}" ^ :bold) + ": #{"error:" ^ :red} #{exception.message}"
108
109
  end
109
110
  end
110
111
  end
@@ -23,6 +23,8 @@ module Blur
23
23
  if channel = network.channel_by_name(name)
24
24
  users.each do |user|
25
25
  user.channel = channel
26
+ user.network = network
27
+
26
28
  channel.users << user
27
29
  end
28
30
  else
@@ -77,6 +79,13 @@ module Blur
77
79
  else
78
80
  # Odd… this shouldn't happen
79
81
  end
82
+ else # This is a private message
83
+ user = Network::User.new command.sender.nickname
84
+ user.name = command.sender.username
85
+ user.host = command.sender.hostname
86
+ user.network = network
87
+
88
+ emit :private_message, user, message
80
89
  end
81
90
  end
82
91
 
@@ -89,6 +98,7 @@ module Blur
89
98
  user.name = command.sender.username
90
99
  user.host = command.sender.hostname
91
100
  user.channel = channel
101
+ user.network = network
92
102
 
93
103
  channel.users << user
94
104
 
@@ -4,13 +4,21 @@ module Blur
4
4
  class Network
5
5
  class ConnectionError < StandardError; end
6
6
 
7
- attr_accessor :options, :channels, :delegate, :connection
7
+ attr_accessor :options, :channels, :dialogues, :delegate, :connection
8
8
 
9
9
  def connected?; @connection.established? end
10
+
11
+ def host
12
+ @options[:hostname]
13
+ end
14
+
15
+ def port
16
+ @options[:port] ||= secure? ? 6697 : 6667
17
+ end
10
18
 
11
- def ssl?; @options[:secure] == true end
12
- def host; @options[:hostname] end
13
- def port; @options[:port] ||= ssl? ? 6697 : 6667 end
19
+ def secure?
20
+ @options[:secure] == true
21
+ end
14
22
 
15
23
  def initialize options = {}
16
24
  @options = options
@@ -45,7 +53,7 @@ module Blur
45
53
 
46
54
  def connect
47
55
  @connection.establish
48
- @connection.enable_ssl OpenSSL::SSL::VERIFY_NONE if ssl?
56
+ @connection.enable_ssl OpenSSL::SSL::VERIFY_NONE if secure?
49
57
 
50
58
  transmit :PASS, @options[:password] if @options[:password]
51
59
  transmit :NICK, @options[:nickname]
@@ -54,6 +62,9 @@ module Blur
54
62
 
55
63
  def disconnect
56
64
  @connection.terminate
65
+
66
+ @channels.each { |channel| channel.users.clear }
67
+ @channels.clear
57
68
  end
58
69
 
59
70
  def transmit name, *arguments
@@ -18,11 +18,11 @@ module Blur
18
18
  @socket = TCPSocket.new @host, @port
19
19
  end
20
20
 
21
- def enable_ssl validator
21
+ def enable_ssl verification
22
22
  @secure = true
23
23
 
24
24
  context = OpenSSL::SSL::SSLContext.new
25
- context.set_params verify_mode: validator
25
+ context.set_params verify_mode: verification
26
26
 
27
27
  sslsocket = OpenSSL::SSL::SSLSocket.new @socket, context
28
28
  sslsocket.sync = true
@@ -3,7 +3,7 @@
3
3
  module Blur
4
4
  class Network
5
5
  class User
6
- attr_accessor :nick, :name, :host, :modes, :channel
6
+ attr_accessor :nick, :name, :host, :modes, :channel, :network
7
7
 
8
8
  def self.map_mode name, character
9
9
  define_method(:"#{name}?") { @modes.include? character.to_s }
@@ -41,7 +41,7 @@ module Blur
41
41
  end
42
42
 
43
43
  def say message
44
- @channel.network.say self, message
44
+ @network.say self, message
45
45
  end
46
46
 
47
47
  def inspect
@@ -2,25 +2,25 @@
2
2
 
3
3
  module Blur
4
4
  class Script < Module
5
- attr_accessor :name, :author, :version, :path, :client
5
+ attr_accessor :__name, :__author, :__version, :__path, :__client
6
6
 
7
- def evaluated?; @evaluated end
7
+ def evaluated?; @__evaluated end
8
8
 
9
9
  def initialize path
10
- @path = path
11
- @evaluated = false
10
+ @__path = path
11
+ @__evaluated = false
12
12
 
13
- if evaluate and @evaluated
14
- cache.load if Cache.exists? @name
13
+ if evaluate and @__evaluated
14
+ cache.load if Cache.exists? @__name
15
15
 
16
16
  __send__ :loaded if respond_to? :loaded
17
17
  end
18
18
  end
19
19
 
20
20
  def Script name, version = [1,0], author = nil, &block
21
- @name = name
22
- @author = author
23
- @version = version
21
+ @__name = name
22
+ @__author = author
23
+ @__version = version
24
24
 
25
25
  instance_eval &block
26
26
 
@@ -28,31 +28,31 @@ module Blur
28
28
  end
29
29
 
30
30
  def unload!
31
- cache.save if @cache
31
+ cache.save if @__cache
32
32
  __send__ :unloaded if respond_to? :unloaded
33
33
 
34
- @cache = nil
34
+ @__cache = nil
35
35
  end
36
36
 
37
37
  def script name
38
- @client.scripts.find { |script| script.name == name }
38
+ @__client.scripts.find { |script| script.__name == name }
39
39
  end
40
40
 
41
41
  def cache
42
- @cache ||= Cache.new self
42
+ @__cache ||= Cache.new self
43
43
  end
44
44
 
45
45
  def inspect
46
- %{#<#{self.class.name} @name=#{@name.inspect} @version=#{@version.inspect} @author=#{@author.inspect}>}
46
+ %{#<#{self.class.name} @name=#{@__name.inspect} @version=#{@__version.inspect} @author=#{@__author.inspect}>}
47
47
  end
48
48
 
49
49
  private
50
50
 
51
51
  def evaluate
52
- module_eval File.read(@path), File.basename(@path), 0
53
- @evaluated = true
52
+ module_eval File.read(@__path), File.basename(@__path), 0
53
+ @__evaluated = true
54
54
  rescue Exception => exception
55
- puts "#{File.basename(@path) ^ :bold}:#{exception.line.to_s ^ :bold}: #{"error:" ^ :red} #{exception.message ^ :bold}"
55
+ puts "#{File.basename(@__path) ^ :bold}:#{exception.line.to_s ^ :bold}: #{"error:" ^ :red} #{exception.message ^ :bold}"
56
56
  end
57
57
  end
58
58
  end
@@ -45,7 +45,7 @@ module Blur
45
45
  private
46
46
 
47
47
  def path
48
- %{#{Cache.path}/#{@script.name}.yml}
48
+ %{#{Cache.path}/#{@script.__name}.yml}
49
49
  end
50
50
  end
51
51
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: blur
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 1.5.2
5
+ version: 1.5.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mikkel Kroman
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: executables
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-05 00:00:00 +01:00
13
+ date: 2011-02-14 00:00:00 +01:00
14
14
  default_executable:
15
15
  dependencies: []
16
16