eve_static 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/eve_static.rb CHANGED
@@ -6,6 +6,7 @@ Bundler.require(:default)
6
6
  module EveStatic
7
7
  autoload :Database, 'eve_static/database.rb'
8
8
  autoload :Coerce, 'eve_static/coerce.rb'
9
+ autoload :Manipulate, 'eve_static/manipulate.rb'
9
10
 
10
11
  module Queries
11
12
  autoload :Basic, 'eve_static/queries/basic.rb'
@@ -2,6 +2,7 @@ module EveStatic
2
2
  class Database
3
3
  include EveStatic::Queries::Basic
4
4
  include EveStatic::Queries::Industry
5
+ include EveStatic::Manipulate
5
6
  include EveStatic::Coerce
6
7
 
7
8
  def initialize(opt = {})
@@ -0,0 +1,53 @@
1
+ module EveStatic
2
+ module Manipulate
3
+ def add_category_id(input)
4
+ input.merge({ :categoryID => typeCategory(input[:typeID])[:categoryID]})
5
+ end
6
+
7
+ def add_category_ids(input)
8
+ input.map { |i| add_category_id i }
9
+ end
10
+
11
+ def add_group_id(input)
12
+ input.merge({ :groupID => typeGroup(input[:typeID])[:groupID]})
13
+ end
14
+
15
+ def add_group_ids(input)
16
+ input.map { |i| add_group_id i }
17
+ end
18
+
19
+ def to_human(input)
20
+ if input.is_a? Array
21
+ output = input.map { |i| to_human(i) }
22
+ elsif input.is_a? Hash
23
+ if primitive?(input)
24
+ output = add_category_id(input)
25
+ output = add_group_id(input)
26
+ output = output.merge({:categoryName => typeCategory(input[:typeID])[:categoryName]})
27
+ output = output.merge({:groupName => typeGroup(input[:typeID])[:groupName]})
28
+ else
29
+ output = input.map do |k, v|
30
+ if primitive?(v)
31
+ [k, v]
32
+ else
33
+ [k, to_human(v)]
34
+ end
35
+ end
36
+
37
+ output = Hash[output]
38
+ end
39
+ else
40
+ output = input
41
+ end
42
+
43
+ output
44
+ end
45
+
46
+ private
47
+ def primitive?(input)
48
+ return false if input.is_a?(Array)
49
+ output = input.values.map { |i| i.is_a?(Array) || i.is_a?(Hash) }
50
+ output = !output.reduce(:|)
51
+ end
52
+ end
53
+ end
@@ -16,6 +16,35 @@ module EveStatic
16
16
 
17
17
  instance[:invTypes].where(:typeID => typeID).select(Sequel.lit('typeName')).first[:typeName]
18
18
  end
19
+
20
+ def groupName(groupID)
21
+ instance[:invGroups].where(:groupID => groupID).select(Sequel.lit('groupName')).first[:groupName]
22
+ end
23
+
24
+ def groupID(groupName)
25
+ instance[:invGroups].where(:groupName => groupName).select(Sequel.lit('groupID')).first[:groupID]
26
+ end
27
+
28
+ def typeGroup(type)
29
+ typeID = coerce_type_id(type)
30
+
31
+ instance[:invTypes].inner_join(:invGroups, :groupID => :groupID).where(:typeID => typeID).select_all(:invGroups).first
32
+ end
33
+
34
+ def categoryName(categoryID)
35
+ instance[:invCategories].where(:categoryID => categoryID).select(Sequel.lit('categoryName')).first[:categoryName]
36
+ end
37
+
38
+ def categoryID(categoryName)
39
+ instance[:invCategories].where(:categoryName => categoryName).select(Sequel.lit('categoryID')).first[:categoryID]
40
+ end
41
+
42
+ def typeCategory(type)
43
+ typeID = coerce_type_id(type)
44
+
45
+ instance[:invTypes].inner_join(:invGroups, :groupID => :groupID).inner_join(:invCategories, :categoryID => :categoryID).where(:typeID => typeID).select_all(:invCategories).first
46
+ end
47
+
19
48
  end
20
49
  end
21
50
  end
@@ -116,6 +116,9 @@ module EveStatic
116
116
  end
117
117
 
118
118
  raw = raw.map { |r| r.merge({ :waste => waste(r[:quantity], bp[:wasteFactor], me) }) }
119
+
120
+ raw = raw.map { |r| normalize_materials r }
121
+ extra = extra.map { |e| normalize_materials e }
119
122
 
120
123
  { :raw => raw,
121
124
  :extra => extra }
@@ -141,6 +144,15 @@ module EveStatic
141
144
  result = base * (base_waste.to_f/100.0) * me
142
145
  result.to_i
143
146
  end
147
+
148
+ def normalize_materials(input)
149
+ output = input.map do |k, v|
150
+ k = :typeID if k == :materialTypeID || k == :requiredTypeID
151
+ [ k, v ]
152
+ end
153
+
154
+ Hash[output]
155
+ end
144
156
  end
145
157
  end
146
158
  end
@@ -1,3 +1,3 @@
1
1
  module EveStatic
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eve_static
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -28,6 +28,7 @@ files:
28
28
  - lib/eve_static.rb
29
29
  - lib/eve_static/coerce.rb
30
30
  - lib/eve_static/database.rb
31
+ - lib/eve_static/manipulate.rb
31
32
  - lib/eve_static/queries/basic.rb
32
33
  - lib/eve_static/queries/industry.rb
33
34
  - lib/eve_static/version.rb