steam_hlds_log_parser 0.4.6 → 0.4.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA512:
3
- data.tar.gz: 21f9f688aa94ffa40bddb17b43e0b2ae7774bec09d42ebbb00524ff1acaf70350ed703ae1eb59a3fdc52c2c9bd7d1c7a129d0bb2157f380528cb022e149124cb
4
- metadata.gz: ec172491894a4a85647baf437dffff1a660f55a160c3e35b01b44b602b48a6497bbdd9ace675b52d22e08d5ccb2026417650011a40913bb5bd9319f41f40e826
3
+ metadata.gz: d2bd1ead06fc2e944fe5444330d664cdf1b7417163c9f62c4e9a40f86bd5ace016a660d5bb4b7f7f7ddeaae175af51e4c140721dc24c6d6f44f8d856cf0dd05d
4
+ data.tar.gz: f1d9c090409ddca6135103ddaea5c8c4275bd385e7dd67e79bedec33b3da262df42a09080a505cf21d9ce872915b7d8322bce522c258414ce3fee53c7c48c430
5
5
  SHA1:
6
- data.tar.gz: 8b03a0b37424792c0f6698bdd2127b7dac379f36
7
- metadata.gz: 3225c8d1342cbe90341bad78fe81404d87be864b
6
+ metadata.gz: dea6da3483d539c6275bb19b4814913eb8674f84
7
+ data.tar.gz: d76a18c57ee1aadd6193dcec1ac66a48776683a7
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
- # Steam Hlds Log Parser
1
+ # Steam HLDS Log Parser
2
2
 
3
- Steam Hlds Log Parser listens to UDP log packets sent by your (local or remote) HLDS game server, processes data and returns clean or/and translated and readable content that you can use for your website, irc channel, match live streaming, bots, database...
3
+ ##### Log parser for Steam HLDS based games like Counter-Strike
4
+
5
+ Steam Hlds Log Parser listens to UDP log packets sent by your _(local or remote)_ HLDS game server, processes data and returns clean and readable (translated) content that you can use for your website, irc channel, match live streaming, bots, database...
4
6
 
5
7
  Should work with all Steam HLDS based games, and has been mostly tested on Counter-Strike 1.6.
6
8
 
@@ -26,41 +28,73 @@ Or install it yourself as:
26
28
 
27
29
  $ gem install steam_hlds_log_parser
28
30
 
29
- ## Configuration
31
+ And in your Ruby file:
32
+
33
+ require "steam_hlds_log_parser"
30
34
 
31
- 1. Create your own displayer callback `class` which will receive parsed data
32
- Ask this `class` to write a file, send content to IRC or flowdock... whatever... and give it as `:displayer` Hash option
33
- 2. Create a new client on desired IP / Port / Options
34
- 3. Of course, you need to have server RCON. In your `server.cfg` (or in server console) add `logaddress 127.0.0.1 27035`. It specifies where the logs will be sent. This must be the IP / Port your ruby client will listen to.
35
+ ## Full working example
35
36
 
36
- If you are behind a router/firewall, you probably need to configure it.
37
+ By default, Steam HLDS Log Parser runs on `0.0.0.0:27115` _(+100 than default HLDS port which is 27015)_
37
38
 
38
- ## Example
39
+ 1 - On your game server, send logs to your Ruby server (in this example, same machine).
39
40
 
40
- require "rubygems"
41
- require "steam_hlds_log_parser"
41
+ ```
42
+ logaddres 0.0.0.0 27115
43
+ ```
44
+
45
+ or
46
+
47
+ ```
48
+ logaddres_add 0.0.0.0 27115
49
+ ```
50
+
51
+ 2 - Create a file named, for example, `hlds_parser.rb` with this content:
52
+
53
+ ```ruby
54
+ require "rubygems"
55
+ require "steam_hlds_log_parser"
42
56
 
43
- class Formatter
44
- def initialize(data)
45
- # will 'puts' the translated content using built-in displayer
46
- SteamHldsLogParser::Displayer.new(data).display_translation
47
- end
48
- end
57
+ # Your displayer Class is what you will do with your data
58
+ class Formatter
59
+ def initialize(data)
60
+ # will 'puts' the translated content, using built-in Displayer
61
+ SteamHldsLogParser::Displayer.new(data).display_translation
62
+ end
63
+ end
49
64
 
65
+ # Setup the Client to use the 'Formatter' Class as displayer callback
66
+ # Options will be use default values (see example-2.rb)
67
+ SteamHldsLogParser::Client.new(Formatter).start
68
+ ```
50
69
 
51
- ## These are default options
52
- options = {
53
- :locale => :en,
54
- :display_kills => true,
55
- :display_actions => true,
56
- :display_changelevel => true,
57
- :display_chat => true,
58
- :display_team_chat => true,
59
- :displayer => Formatter
60
- }
70
+ 3 - Now, run the Ruby script to see parsed content inyour console:
61
71
 
62
- parser = SteamHldsLogParser::Client.new("127.0.0.1", 27035, options)
63
- parser.start
72
+ ```
73
+ ruby hlds_parser.rb
74
+ ```
75
+
76
+ Your game server activity should look something like that:
77
+
78
+ ```
79
+ [T] Jim_Carrey spawned with the bomb
80
+ [CT] Tomav says "Com'on guys!"
81
+ [CT] V0id killed [T] killaruna with deagle
82
+ [T] Funky Byte killed [CT] Neuromancer with m4a1
83
+ [CT] Tomav killed [T] Funky Byte with deagle
84
+ [T] Juliet_Lewis killed [CT] Make my Day with ak47
85
+ [CT] Alloc killed [T] Juliet_Lewis with famas
86
+ [T] Jim_Carrey planted the bomb
87
+ [CT] Tomav killed [T] Jim_Carrey with sg552
88
+ [CT] Tomav begin bomb defuse with kit
89
+ [CT] Jim_Carrey says "aaaaaargh!!!" to others [T]
90
+ [CT] Tomav defused the bomb
91
+ [CT] 1 - 6 [T]
92
+ Map ends: CT => 1
93
+ Map ends: T => 6
94
+ Loading de_dust2
95
+ ```
96
+
97
+ Now customize your Formatter class to make it fit your needs.
64
98
 
65
99
  ## Documentation
66
100
 
@@ -73,6 +107,21 @@ Full documentation can be found on [Steam HLDS Parser Log page on Rubydoc](http:
73
107
  Steam HLDS Log Parser uses RSpec as test / specification framework and should be 100% tested too.
74
108
  Here again, feel free to improve it.
75
109
 
110
+ ## FAQ
111
+
112
+ ### What do I need to use this gem?
113
+
114
+ * Ruby 1.9+
115
+ * Basic Ruby skill
116
+ * Steam HLDS Server with SSH access or RCON password
117
+
118
+ ### My Client is running, but nothing appears in my console?!
119
+ Common issues are:
120
+
121
+ * HLDS with no or miconfigured `logaddress`
122
+ * Firewall not properly configured (remember that HLDS sends `UDP` packets, not `TCP`)
123
+ * Have a look to your Displayer Class
124
+
76
125
  ## Contributing
77
126
 
78
127
  1. Fork it
@@ -1,24 +1,14 @@
1
1
  require "rubygems"
2
2
  require "steam_hlds_log_parser"
3
3
 
4
+ # Your displayer Class is what you will do with your data
4
5
  class Formatter
5
6
  def initialize(data)
6
- # will 'puts' the translated content
7
+ # will 'puts' the translated content, using built-in Displayer
7
8
  SteamHldsLogParser::Displayer.new(data).display_translation
8
9
  end
9
10
  end
10
11
 
11
-
12
- ## These are default options
13
- options = {
14
- :locale => :en,
15
- :display_kills => true,
16
- :display_actions => true,
17
- :display_changelevel => true,
18
- :display_chat => true,
19
- :display_team_chat => true,
20
- :displayer => Formatter
21
- }
22
-
23
- parser = SteamHldsLogParser::Client.new("127.0.0.1", 27035, options)
24
- parser.start
12
+ # Setup the Client to use the 'Formatter' Class
13
+ # Options will be use default values (see example-2.rb)
14
+ SteamHldsLogParser::Client.new(Formatter).start
@@ -1,26 +1,25 @@
1
1
  require "rubygems"
2
2
  require "steam_hlds_log_parser"
3
- # require "flowdock"
4
3
 
5
- ## The displayer class that will be used to send content to Flowdock
6
- class FlowdockPusher
4
+ # Your displayer Class is what you will do with your data
5
+ class Formatter
7
6
  def initialize(data)
8
- # Get translated data
9
- content = SteamHldsLogParser::Displayer.new(data).get_translation
10
- # Source: https://github.com/flowdock/flowdock-api
11
- flow = Flowdock::Flow.new(:api_token => "12345678901234567890123456789012", :external_user_name => "HLDS-Live")
12
- flow.push_to_chat(:content => content)
7
+ # will 'puts' the translated content, using built-in Displayer
8
+ SteamHldsLogParser::Displayer.new(data).display_translation
13
9
  end
14
10
  end
15
11
 
12
+ # These are default options
16
13
  options = {
17
- :locale => :fr,
18
- :display_kills => true,
19
- :display_actions => true,
20
- :display_changelevel => true,
21
- :display_chat => true,
22
- :display_team_chat => true,
23
- :displayer => FlowdockPusher
14
+ :host => "0.0.0.0",
15
+ :port => 27115,
16
+ :locale => :en,
17
+ :display_kills => true,
18
+ :display_actions => true,
19
+ :display_changelevel => true,
20
+ :display_chat => true,
21
+ :display_team_chat => true
24
22
  }
25
23
 
26
- SteamHldsLogParser::Client.new("127.0.0.1", 27035, options).start
24
+ parser = SteamHldsLogParser::Client.new(Formatter, options)
25
+ parser.start
@@ -2,37 +2,37 @@ module SteamHldsLogParser
2
2
 
3
3
  # Listens to HLDS logs received via UDP on configured port
4
4
  #
5
- # @attr_reader [String] host Client host / IP
6
- # @attr_reader [Integer] port Client port to listen to
7
5
  # @attr_reader [Hash] options Client options
6
+ #
8
7
  class Client
9
8
 
10
- attr_reader :host, :port, :options
9
+ attr_reader :displayer, :options
11
10
 
12
11
  # Creates a new client
13
12
  #
14
- # @param [String] host Hostname / IP Address the server will be running
15
- # @param [Integer] port Port will be listening to
16
- # @param [Hash] options Other configuration options
13
+ # @param [Class] displayer Callback class which will receive parsed content, do what you want with this class
14
+ # @param [Hash] options Optional parameters to setup your client
17
15
  #
16
+ # @option options [String] :host (0.0.0.0) IP Address the client will be running, usually localhost
17
+ # @option options [Integer] :port (27115) Port will be listening to
18
18
  # @option options [Symbol] :locale (:en) Set the language of returned content
19
19
  # @option options [Boolean] :display_kills (true) Enable kills / frags detail
20
20
  # @option options [Boolean] :display_actions (true) Enable players actions / defuse / ... detail
21
21
  # @option options [Boolean] :display_changelevel (true) Enable changelevel (map) display
22
22
  # @option options [Boolean] :display_chat (true) Enable chat ('say') display
23
23
  # @option options [Boolean] :display_team_chat (true) Enable chat ('say_team') display
24
- # @option options [Class] :displayer Class that will be use to display content
25
24
  #
26
- def initialize(host, port, options = {})
25
+ def initialize(displayer, options = {})
27
26
  default_options = {
28
- :locale => :en,
29
- :display_kills => true,
30
- :display_actions => true,
31
- :display_changelevel => true,
32
- :display_chat => true,
33
- :display_team_chat => true,
27
+ :host => "0.0.0.0",
28
+ :port => 27115,
29
+ :locale => :en,
30
+ :display_kills => true,
31
+ :display_actions => true,
32
+ :display_changelevel => true,
33
+ :display_chat => true,
34
+ :display_team_chat => true,
34
35
  }
35
- @host, @port = host, port
36
36
  @options = default_options.merge(options)
37
37
  end
38
38
 
@@ -45,13 +45,13 @@ module SteamHldsLogParser
45
45
  Signal.trap("INT") { EM.stop }
46
46
  Signal.trap("TERM") { EM.stop }
47
47
  # Let's start
48
- EM::open_datagram_socket(@host, @port, Handler, @host, @port, @options)
48
+ EM::open_datagram_socket(@options[:host], @options[:port], Handler, @displayer, @options)
49
49
  }
50
50
  end
51
51
 
52
52
  # Stops the client
53
53
  def stop
54
- puts "## #{@host}:#{@port} => #{I18n.t('client_stop')}"
54
+ puts "## #{@options[:host]}:#{@options[:port]} => #{I18n.t('client_stop')}"
55
55
  EM::stop_event_loop
56
56
  end
57
57
 
@@ -2,31 +2,31 @@ module SteamHldsLogParser
2
2
 
3
3
  # Process data received by 'Client'
4
4
  #
5
- # @attr_reader [String] host Client host / IP
6
- # @attr_reader [Integer] port Client port to listen to
5
+ # @attr_reader [Class] displayer Callback
7
6
  # @attr_reader [Hash] options Client options
7
+ #
8
8
  class Handler < EM::Connection
9
9
 
10
- attr_reader :host, :port, :options
10
+ attr_reader :displayer, :options
11
11
 
12
12
  # Initialize Handler from Client options
13
13
  #
14
- # @param [String] host Hostname / IP Address the server is running
15
- # @param [Integer] port Port is listening to
16
- # @param [Hash] options Other client configuration options
14
+ # @param [Class] displayer Class to call when data is parsed
15
+ # @param [Hash] options Client configuration options
17
16
  #
18
- def initialize(host, port, options)
19
- @host, @port, @options = host, port, options
17
+ def initialize(displayer, options)
18
+ @displayer = displayer
19
+ @options = options
20
20
  end
21
21
 
22
22
  # Triggered when HLDS connects
23
23
  def post_init
24
- puts "## #{@host}:#{@port} => #{I18n.t('client_connect')}"
24
+ puts "## #{@options[:host]}:#{@options[:port]} => #{I18n.t('client_connect')}"
25
25
  end
26
26
 
27
27
  # Triggered when HLDS disconnects
28
28
  def unbind
29
- puts "## #{@host}:#{@port} => #{I18n.t('client_disconnect')}"
29
+ puts "## #{@options[:host]}:#{@options[:port]} => #{I18n.t('client_disconnect')}"
30
30
  end
31
31
 
32
32
  # Get data from Client and parse using Regexp
@@ -37,6 +37,8 @@ module SteamHldsLogParser
37
37
  # * match suicides
38
38
  # * match who did what (defuse, drop the bomb...)
39
39
  # * match changelevel
40
+ # * match chat (say)
41
+ # * match team chat (say_team)
40
42
  #
41
43
  # @param [String] data Data received by Client from HLDS server (a line of log)
42
44
  #
@@ -86,10 +88,10 @@ module SteamHldsLogParser
86
88
 
87
89
  # no matching pattern, no output
88
90
  unless content.nil?
89
- if @options[:displayer].nil?
91
+ if @displayer.nil?
90
92
  return(content)
91
93
  else
92
- @options[:displayer].new(content)
94
+ @displayer.new(content)
93
95
  end
94
96
  end
95
97
 
@@ -105,8 +107,9 @@ module SteamHldsLogParser
105
107
  case winner
106
108
  when "T"
107
109
  return "#{I18n.t('full_team_name_te')}"
108
- else
110
+ when "CT"
109
111
  return "#{I18n.t('full_team_name_ct')}"
112
+ else
110
113
  end
111
114
  end
112
115
 
@@ -120,8 +123,9 @@ module SteamHldsLogParser
120
123
  case team
121
124
  when "TERRORIST"
122
125
  return "#{I18n.t('short_team_name_te')}"
123
- else
126
+ when "CT"
124
127
  return "#{I18n.t('short_team_name_ct')}"
128
+ else
125
129
  end
126
130
  end
127
131
 
@@ -1,4 +1,4 @@
1
1
  module SteamHldsLogParser
2
2
  # Gem Version
3
- VERSION = "0.4.6"
3
+ VERSION = "0.4.7"
4
4
  end
data/spec/client_spec.rb CHANGED
@@ -4,48 +4,96 @@ module SteamHldsLogParser
4
4
 
5
5
  describe "SteamHldsLogParser" do
6
6
 
7
- before :all do
8
- @client = Client.new("0.0.0.0", 27035)
9
- @options = @client.options
10
- @custom_options = custom_options
11
- @custom_client = Client.new("127.0.0.1", 27045, @custom_options)
12
- end
13
-
14
7
  describe "Client" do
15
8
 
16
- it "raises an exception when parameters are missing" do
17
- expect { Client.new }.to raise_error(ArgumentError)
9
+ context "when parameters are missing" do
10
+ it "raises an exception" do
11
+ expect { Client.new }.to raise_error(ArgumentError)
12
+ end
18
13
  end
19
14
 
20
- subject { @client }
21
- context "when a 'Client' is created without options"
15
+ subject(:default_client) { Client.new(RSpecDisplayer) }
16
+ context "when a 'Client' is created with default options"
22
17
  it { should be_an_instance_of Client }
23
- it "has a 'host'" do
24
- @client.host.should_not be_nil
25
- @client.host.should eq("0.0.0.0")
18
+ it "has a default 'options' Hash" do
19
+ default_client.options.should_not be_nil
20
+ default_client.options.should_not be(nil)
21
+ default_client.options.class.should be(Hash)
26
22
  end
27
- it "has a 'port'" do
28
- @client.port.should_not be_nil
29
- @client.port.should eq(27035)
23
+ it "has a default 'host'" do
24
+ default_client.options[:host].should_not be_nil
25
+ default_client.options[:host].should eq("0.0.0.0")
30
26
  end
31
- it "has a default 'options' Hash" do
32
- @client.options.should_not be_nil
33
- @client.options.should_not be(nil)
34
- @client.options.class.should be(Hash)
35
- @client.options.should eq(@options)
27
+ it "has a default 'port'" do
28
+ default_client.options[:port].should_not be_nil
29
+ default_client.options[:port].should eq(27115)
30
+ end
31
+ it "has a default 'locale'" do
32
+ default_client.options[:locale].should_not be_nil
33
+ default_client.options[:locale].class.should eq(Symbol)
34
+ default_client.options[:locale].should eq(:en)
35
+ end
36
+ it "has a default 'display_kills'" do
37
+ default_client.options[:display_kills].should_not be_nil
38
+ default_client.options[:display_kills].should be(true)
39
+ end
40
+ it "has a default 'display_actions'" do
41
+ default_client.options[:display_actions].should_not be_nil
42
+ default_client.options[:display_actions].should be(true)
43
+ end
44
+ it "has a default 'display_changelevel'" do
45
+ default_client.options[:display_changelevel].should_not be_nil
46
+ default_client.options[:display_changelevel].should be(true)
47
+ end
48
+ it "has a default 'display_chat'" do
49
+ default_client.options[:display_chat].should_not be_nil
50
+ default_client.options[:display_chat].should be(true)
51
+ end
52
+ it "has a default 'display_team_chat'" do
53
+ default_client.options[:display_team_chat].should_not be_nil
54
+ default_client.options[:display_team_chat].should be(true)
36
55
  end
37
56
 
38
- subject(:custom_client) { @custom_client }
39
- context "when custom options are given"
40
- it "can get a custom 'options' Hash" do
41
- @custom_client.options.should_not be_nil
42
- @custom_client.options.class.should be(Hash)
43
- @custom_client.options.should eq(@custom_options)
44
- @custom_client.options[:displayer].should eq(RSpecDisplayer)
45
- @custom_client.options[:locale].should be(:fr)
46
- @custom_client.options[:display_kills].should be(false)
47
- @custom_client.options[:display_actions].should be(false)
48
- @custom_client.options[:display_changelevel].should be(true)
57
+ subject(:custom_client) { Client.new(RSpecDisplayer, custom_options) }
58
+ context "when custom parameters are given"
59
+ it { should be_an_instance_of Client }
60
+ it "has a default 'options' Hash" do
61
+ custom_client.options.should_not be_nil
62
+ custom_client.options.should_not be(nil)
63
+ custom_client.options.class.should be(Hash)
64
+ end
65
+ it "has a custom 'host'" do
66
+ custom_client.options[:host].should_not be_nil
67
+ custom_client.options[:host].should eq("127.0.0.1")
68
+ end
69
+ it "has a custom 'port'" do
70
+ custom_client.options[:port].should_not be_nil
71
+ custom_client.options[:port].should eq(12345)
72
+ end
73
+ it "has a custom 'locale'" do
74
+ custom_client.options[:locale].should_not be_nil
75
+ custom_client.options[:locale].class.should eq(Symbol)
76
+ custom_client.options[:locale].should eq(:fr)
77
+ end
78
+ it "has a custom 'display_kills'" do
79
+ custom_client.options[:display_kills].should_not be_nil
80
+ custom_client.options[:display_kills].should be(false)
81
+ end
82
+ it "has a custom 'display_actions'" do
83
+ custom_client.options[:display_actions].should_not be_nil
84
+ custom_client.options[:display_actions].should be(false)
85
+ end
86
+ it "has a custom 'display_changelevel'" do
87
+ custom_client.options[:display_changelevel].should_not be_nil
88
+ custom_client.options[:display_changelevel].should be(false)
89
+ end
90
+ it "has a custom 'display_chat'" do
91
+ custom_client.options[:display_chat].should_not be_nil
92
+ custom_client.options[:display_chat].should be(false)
93
+ end
94
+ it "has a custom 'display_team_chat'" do
95
+ custom_client.options[:display_team_chat].should_not be_nil
96
+ custom_client.options[:display_team_chat].should be(false)
49
97
  end
50
98
 
51
99
  describe "#start and #stop" do
@@ -53,9 +101,9 @@ module SteamHldsLogParser
53
101
  context "when 'start' and 'stop' are triggered one after the other"
54
102
  it "starts then stops an eventmachine with appropriate messages" do
55
103
  EM.run {
56
- capture_stdout { @client.start }.should eq("## 0.0.0.0:27035 => HLDS connected and sending data\n")
104
+ capture_stdout { default_client.start }.should eq("## 0.0.0.0:27115 => HLDS connected and sending data\n")
57
105
  EM.add_timer(0.2) {
58
- capture_stdout { @client.stop }.should eq("## 0.0.0.0:27035 => HLDS Log Parser stopped.\n")
106
+ capture_stdout { default_client.stop }.should eq("## 0.0.0.0:27115 => HLDS Log Parser stopped.\n")
59
107
  }
60
108
  }
61
109
  end
data/spec/handler_spec.rb CHANGED
@@ -5,10 +5,9 @@ module SteamHldsLogParser
5
5
  describe "SteamHldsLogParser" do
6
6
 
7
7
  before :all do
8
- @client = Client.new("0.0.0.0", 27035)
9
- @options = @client.options
10
- @handler = Handler.new("", "0.0.0.0", 27035, @options)
11
- @custom_handler = Handler.new("", "0.0.0.0", 27035, custom_options)
8
+ @client = Client.new(RSpecDisplayer)
9
+ @handler = Handler.new("", @client.displayer, @client.options)
10
+ @custom_handler = Handler.new("", RSpecDisplayer, { :host => "0.0.0.0", :port => 27115, :display_changelevel => true })
12
11
  end
13
12
 
14
13
  describe "Handler" do
@@ -24,24 +23,24 @@ module SteamHldsLogParser
24
23
 
25
24
  context "when 'host' and 'port' are given"
26
25
  it { should be_an_instance_of Handler }
27
- it "has a 'host'" do
28
- @handler.host.should_not be_nil
29
- @handler.host.should eq("0.0.0.0")
26
+ it "has a 'host' option" do
27
+ @handler.options[:host].should_not be_nil
28
+ @handler.options[:host].should eq("0.0.0.0")
30
29
  end
31
- it "has a 'port'" do
32
- @handler.port.should_not be_nil
33
- @handler.port.should eq(27035)
30
+ it "has a 'port' option" do
31
+ @handler.options[:port].should_not be_nil
32
+ @handler.options[:port].should eq(27115)
34
33
  end
35
34
 
36
35
  describe "#post_init" do
37
36
  it "displays a console message when hlds connects" do
38
- capture_stdout { @handler.post_init }.should eq("## 0.0.0.0:27035 => HLDS connected and sending data\n")
37
+ capture_stdout { @handler.post_init }.should eq("## 0.0.0.0:27115 => HLDS connected and sending data\n")
39
38
  end
40
39
  end
41
40
 
42
41
  describe "#unbind" do
43
42
  it "displays a console message when hlds disconnects" do
44
- capture_stdout { @handler.unbind }.should eq("## 0.0.0.0:27035 => HLDS disconnected? No data is received.\n")
43
+ capture_stdout { @handler.unbind }.should eq("## 0.0.0.0:27115 => HLDS disconnected? No data is received.\n")
45
44
  end
46
45
  end
47
46
 
@@ -153,11 +152,13 @@ module SteamHldsLogParser
153
152
  end
154
153
  end
155
154
 
155
+ subject { @custom_handler }
156
156
  context "when 'displayer' is set" do
157
157
  it "returns Hash on changelevel provided by 'displayer'" do
158
158
  data = '# L 05/10/2000 - 12:34:56: Loading map "de_dust2"'
159
159
  expected = {:type=>"loading_map", :params=>{:map=>"de_dust2"}}
160
- @custom_handler.options[:displayer].should eq(RSpecDisplayer)
160
+ @custom_handler.displayer.should eq(RSpecDisplayer)
161
+ @custom_handler.options[:display_changelevel].should be(true)
161
162
  @custom_handler.receive_data(data).data.should eq(expected)
162
163
  end
163
164
  end
data/spec/helper_spec.rb CHANGED
@@ -37,12 +37,14 @@ require "steam_hlds_log_parser"
37
37
  # Returns custom options as a Hash
38
38
  def custom_options
39
39
  options = {
40
- :locale => :fr,
41
- :display_kills => false,
42
- :display_actions => false,
43
- :display_changelevel => true,
44
- :display_chat => false,
45
- :display_team_chat => false,
46
- :displayer => RSpecDisplayer
40
+ :host => "127.0.0.1",
41
+ :port => 12345,
42
+ :locale => :fr,
43
+ :display_kills => false,
44
+ :display_actions => false,
45
+ :display_changelevel => false,
46
+ :display_chat => false,
47
+ :display_team_chat => false,
48
+ :displayer => RSpecDisplayer
47
49
  }
48
50
  end
@@ -5,9 +5,8 @@ module SteamHldsLogParser
5
5
  describe "SteamHldsLogParser" do
6
6
 
7
7
  before :all do
8
- @client = Client.new("0.0.0.0", 27035)
9
- @options = @client.options
10
- @handler = Handler.new("", "0.0.0.0", 27035, @options)
8
+ @client = Client.new(RSpecDisplayer)
9
+ @handler = Handler.new("", @client.displayer, @client.options)
11
10
  end
12
11
 
13
12
  describe "LogTester" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: steam_hlds_log_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas VIAL
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2013-08-15 00:00:00 Z
12
+ date: 2013-08-18 00:00:00 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler