d3_status 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/d3_status ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift('lib')
4
+
5
+ begin
6
+ require 'd3_status'
7
+ rescue LoadError
8
+ require 'rubygems'
9
+ require 'd3_status'
10
+ end
11
+
12
+ include D3Status
13
+
14
+ D3Status.run
data/d3_status.gemspec ADDED
@@ -0,0 +1,25 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "d3_status/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "d3_status"
7
+ s.version = D3Status::VERSION
8
+ s.authors = ["Authier David, Ghislain Fournous"]
9
+ s.email = ["david@awea.fr"]
10
+ s.homepage = ""
11
+ s.summary = %q{Diablo 3 servers status}
12
+ s.description = %q{Diablo 3 servers status}
13
+
14
+ s.rubyforge_project = "d3_status"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency "awesome_print"
23
+ s.add_runtime_dependency "nokogiri"
24
+ s.add_runtime_dependency "colorize"
25
+ end
@@ -0,0 +1,3 @@
1
+ module D3Status
2
+ VERSION = "1.0.0"
3
+ end
data/lib/d3_status.rb ADDED
@@ -0,0 +1,17 @@
1
+ require "d3_status/version"
2
+ require "nokogiri"
3
+ require "colorize"
4
+ require "open-uri"
5
+ require "ap"
6
+ require "parser/d3_parser"
7
+
8
+ module D3Status
9
+
10
+ def run
11
+ parser = D3Parser.new
12
+ parser.us_server
13
+ parser.eu_server
14
+ parser.asia_server
15
+ end
16
+
17
+ end
@@ -0,0 +1,44 @@
1
+ # Code forked from https://github.com/JohnRedmond/D3Status
2
+
3
+ class D3Parser
4
+ BATTLENET_WEB = "http://us.battle.net/d3/en/status"
5
+ DIV_CONTENT = "div.box"
6
+ DIV_CLASS = "div.status-icon"
7
+ TOOLTIP = "data-tooltip"
8
+
9
+ def initialize
10
+ doc = Nokogiri::HTML(open(BATTLENET_WEB))
11
+ @html_statuses = doc.search(DIV_CONTENT)
12
+ construct_statuses
13
+ end
14
+
15
+ def us_server
16
+ fuzzy_cute_cute("Server US : #{@statuses[0]}", @statuses[0])
17
+ end
18
+
19
+ def eu_server
20
+ fuzzy_cute_cute("Server EU : #{@statuses[1]}", @statuses[1])
21
+ end
22
+
23
+ def asia_server
24
+ fuzzy_cute_cute("Server ASIA : #{@statuses[2]}", @statuses[2])
25
+ end
26
+
27
+ private
28
+
29
+ def fuzzy_cute_cute(string, status)
30
+ if status.eql?'Available'
31
+ puts string.green
32
+ else
33
+ puts string.red
34
+ end
35
+ end
36
+
37
+ def construct_statuses
38
+ @statuses = []
39
+ @html_statuses.each do |div|
40
+ val = div.css(DIV_CLASS).first.attributes[TOOLTIP].value # return server dispo
41
+ @statuses << val
42
+ end
43
+ end
44
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: d3_status
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Authier David, Ghislain Fournous
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: awesome_print
16
+ requirement: &70246023570860 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70246023570860
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ requirement: &70246023569720 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70246023569720
36
+ - !ruby/object:Gem::Dependency
37
+ name: colorize
38
+ requirement: &70246023569120 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70246023569120
47
+ description: Diablo 3 servers status
48
+ email:
49
+ - david@awea.fr
50
+ executables:
51
+ - d3_status
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - .gitignore
56
+ - Gemfile
57
+ - Rakefile
58
+ - bin/d3_status
59
+ - d3_status.gemspec
60
+ - lib/d3_status.rb
61
+ - lib/d3_status/version.rb
62
+ - lib/parser/d3_parser.rb
63
+ homepage: ''
64
+ licenses: []
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project: d3_status
83
+ rubygems_version: 1.8.10
84
+ signing_key:
85
+ specification_version: 3
86
+ summary: Diablo 3 servers status
87
+ test_files: []