evestatic 0.0.43
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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README.md +29 -0
- data/Rakefile +1 -0
- data/data/invTypes.csv +20854 -0
- data/data/mapRegions.csv +98 -0
- data/data/staStations.csv +5182 -0
- data/evestatic.gemspec +26 -0
- data/lib/evestatic/itemtypes.rb +62 -0
- data/lib/evestatic/mapregions.rb +53 -0
- data/lib/evestatic/stations.rb +53 -0
- data/lib/evestatic/version.rb +4 -0
- data/lib/evestatic.rb +8 -0
- metadata +87 -0
data/evestatic.gemspec
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'evestatic/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "evestatic"
|
8
|
+
spec.version = Evestatic::VERSION
|
9
|
+
spec.authors = ["Marv Cool"]
|
10
|
+
spec.email = ["marv@hostin.is"]
|
11
|
+
spec.description = %q{A Ruby gem with CCPs EVE-Online static dump data}
|
12
|
+
spec.summary = %q{A Ruby gem with CCPs EVE-Online static dump data
|
13
|
+
encapsulated in an easy to use ruby interface.
|
14
|
+
Has Regions, Stations and Itemtypes.
|
15
|
+
}
|
16
|
+
spec.homepage = ""
|
17
|
+
spec.license = "MIT and CCPs License for their static dumps"
|
18
|
+
|
19
|
+
spec.files = `git ls-files`.split($/)
|
20
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'csv'
|
2
|
+
|
3
|
+
module Evestatic
|
4
|
+
class ItemType
|
5
|
+
|
6
|
+
attr_accessor :type_id, :group_id, :type_name, :mass, :volume
|
7
|
+
|
8
|
+
@@item_types_by_id = {}
|
9
|
+
@@item_types_by_name = {}
|
10
|
+
|
11
|
+
def self.load!
|
12
|
+
ItemType.load_from_file(File.expand_path("../../../data/invTypes.csv", __FILE__))
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.load_from_file(path)
|
16
|
+
begin
|
17
|
+
CSV.foreach(path, {col_sep: ";", headers: true}) do |row|
|
18
|
+
@@item_types_by_id[row[0].to_i] = self.new(row[0].to_i, row[1].to_i, row[2], row[3].to_i, row[4].gsub(",",".").to_f)
|
19
|
+
@@item_types_by_name[row[2]] = @@item_types_by_id[row[0].to_i]
|
20
|
+
end
|
21
|
+
rescue CSV::MalformedCSVError
|
22
|
+
#trololol do nothing, we have all data, dont care if the newlines are windows mess or whatever
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
# INDEXED BY TYPE_ID! Static::ItemType[34].type_name => "Tritanium"
|
28
|
+
def self.[](key=nil)
|
29
|
+
unless key
|
30
|
+
@@item_types_by_id
|
31
|
+
else
|
32
|
+
@@item_types_by_id[key] || self.new(key, 0, "UKNOWN TYPE (#{key})",0,0.0)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.by_id(id=nil)
|
37
|
+
self.[](id)
|
38
|
+
end
|
39
|
+
|
40
|
+
# INDEXED BY NAME! Static::ItemType["Tritanium"].type_id => 34
|
41
|
+
def self.by_name(key=nil)
|
42
|
+
unless key
|
43
|
+
@@item_types_by_name
|
44
|
+
else
|
45
|
+
res = @@item_types_by_name[key]
|
46
|
+
raise NameError.new "Type not found #{key}" unless res
|
47
|
+
res
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def initialize(type_id, group_id, type_name, mass, volume)
|
52
|
+
self.type_id = type_id
|
53
|
+
self.group_id = group_id
|
54
|
+
self.type_name = type_name
|
55
|
+
self.mass = mass
|
56
|
+
self.volume = volume
|
57
|
+
end
|
58
|
+
|
59
|
+
load!
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'csv'
|
2
|
+
|
3
|
+
module Evestatic
|
4
|
+
class MapRegion
|
5
|
+
|
6
|
+
attr_accessor :region_id, :region_name
|
7
|
+
|
8
|
+
@@map_regions = {}
|
9
|
+
|
10
|
+
def self.load!
|
11
|
+
MapRegion.load_from_file(File.expand_path("../../../data/mapRegions.csv", __FILE__))
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.load_from_file(path)
|
15
|
+
begin
|
16
|
+
CSV.foreach(path, {col_sep: ";", headers: true}) do |row|
|
17
|
+
@@map_regions[row[0].to_i] = self.new(row[0].to_i, row[1])
|
18
|
+
end
|
19
|
+
rescue CSV::MalformedCSVError
|
20
|
+
#trololol do nothing, we have all data, dont care if the newlines are windows mess or whatever
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# INDEXED BY REGION_ID! Static::MapRegion[10000002].region_name => "The Forge"
|
25
|
+
def self.[](key=nil)
|
26
|
+
unless key
|
27
|
+
@@map_regions
|
28
|
+
else
|
29
|
+
@@map_regions[key] || self.new(key,"UKNOWN REGION (#{key})")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def initialize(region_id, region_name)
|
34
|
+
self.region_id = region_id
|
35
|
+
self.region_name = region_name
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.by_id(id=nil)
|
39
|
+
@@map_regions[id]
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.by_name(name)
|
43
|
+
@@map_regions.values.collect { |v| v if v.region_name == name }.compact[0]
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.find_by_name(name)
|
47
|
+
@@map_regions.values.collect { |v| v if v.region_name.include? name }.compact
|
48
|
+
end
|
49
|
+
|
50
|
+
load!
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'csv'
|
2
|
+
|
3
|
+
module Evestatic
|
4
|
+
class Station
|
5
|
+
|
6
|
+
attr_accessor :station_id, :station_name
|
7
|
+
|
8
|
+
@@stations = {}
|
9
|
+
|
10
|
+
def self.load!
|
11
|
+
Station.load_from_file(File.expand_path("../../../data/staStations.csv", __FILE__))
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.load_from_file(path)
|
15
|
+
begin
|
16
|
+
CSV.foreach(path, {col_sep: ";", headers: true}) do |row|
|
17
|
+
@@stations[row[0].to_i] = self.new(row[0].to_i, row[11])
|
18
|
+
end
|
19
|
+
rescue CSV::MalformedCSVError
|
20
|
+
#trololol do nothing, we have all data, dont care if the newlines are windows mess or whatever
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def self.[](key=nil)
|
26
|
+
unless key
|
27
|
+
@@stations
|
28
|
+
else
|
29
|
+
@@stations[key]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.by_id(id=nil)
|
34
|
+
Station[id]
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.by_name(name)
|
38
|
+
@@stations.values.collect { |v| v if v.station_name.include? name }.compact[0]
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.find_by_name(name)
|
42
|
+
@@stations.values.collect { |v| v if v.station_name.include? name }.compact
|
43
|
+
end
|
44
|
+
|
45
|
+
def initialize(station_id, station_name)
|
46
|
+
self.station_id = station_id
|
47
|
+
self.station_name = station_name
|
48
|
+
end
|
49
|
+
|
50
|
+
load!
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
data/lib/evestatic.rb
ADDED
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: evestatic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.43
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marv Cool
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: A Ruby gem with CCPs EVE-Online static dump data
|
42
|
+
email:
|
43
|
+
- marv@hostin.is
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- Gemfile
|
50
|
+
- LICENSE.txt
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- data/invTypes.csv
|
54
|
+
- data/mapRegions.csv
|
55
|
+
- data/staStations.csv
|
56
|
+
- evestatic.gemspec
|
57
|
+
- lib/evestatic.rb
|
58
|
+
- lib/evestatic/itemtypes.rb
|
59
|
+
- lib/evestatic/mapregions.rb
|
60
|
+
- lib/evestatic/stations.rb
|
61
|
+
- lib/evestatic/version.rb
|
62
|
+
homepage: ''
|
63
|
+
licenses:
|
64
|
+
- MIT and CCPs License for their static dumps
|
65
|
+
metadata: {}
|
66
|
+
post_install_message:
|
67
|
+
rdoc_options: []
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
80
|
+
requirements: []
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 2.0.0
|
83
|
+
signing_key:
|
84
|
+
specification_version: 4
|
85
|
+
summary: A Ruby gem with CCPs EVE-Online static dump data encapsulated in an easy
|
86
|
+
to use ruby interface. Has Regions, Stations and Itemtypes.
|
87
|
+
test_files: []
|