galaxy 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/galaxy.iml +10 -0
- data/.idea/misc.xml +14 -0
- data/.idea/modules.xml +9 -0
- data/.idea/vcs.xml +8 -0
- data/.idea/workspace.xml +486 -0
- data/LICENSE +20 -0
- data/README.rdoc +36 -0
- data/Rakefile +62 -0
- data/VERSION +1 -0
- data/doc/plan.txt +5 -0
- data/doc/pseudo.txt +43 -0
- data/features/galaxy.feature +9 -0
- data/features/step_definitions/galaxy_steps.rb +0 -0
- data/features/support/env.rb +4 -0
- data/galaxy.gemspec +95 -0
- data/galaxy/.loadpath +5 -0
- data/galaxy/.project +17 -0
- data/galaxy/.settings/org.eclipse.mylyn.tasks.ui.prefs +4 -0
- data/galaxy/.settings/org.eclipse.wst.sse.core.prefs +5 -0
- data/galaxy/experiments.rb +26 -0
- data/lib/galaxy.rb +8 -0
- data/lib/galaxy/models/bombing.rb +64 -0
- data/lib/galaxy/models/fleet.rb +62 -0
- data/lib/galaxy/models/group.rb +178 -0
- data/lib/galaxy/models/models.rb +16 -0
- data/lib/galaxy/models/planet.rb +181 -0
- data/lib/galaxy/models/product.rb +84 -0
- data/lib/galaxy/models/race.rb +112 -0
- data/lib/galaxy/models/route.rb +60 -0
- data/lib/galaxy/order.rb +24 -0
- data/lib/galaxy/report.rb +176 -0
- data/lib/galaxy/section.rb +226 -0
- data/lib/galaxy/utils.rb +109 -0
- data/lib/galaxy/virtual_base.rb +165 -0
- data/spec/spec_helper.rb +9 -0
- data/test/test_helper.rb +4 -0
- data/test/unit/models_test.rb +1469 -0
- data/test/unit/report_test.rb +187 -0
- data/test/unit/utils_test.rb +421 -0
- data/test/unit/virtual_base_test.rb +224 -0
- metadata +123 -0
@@ -0,0 +1,224 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
#require 'active_record'
|
3
|
+
#require 'virtual_base.rb'
|
4
|
+
|
5
|
+
ActiveRecord::Base.establish_connection :adapter => 'sqlite3', :database => ":memory:", :timeout => 500
|
6
|
+
ActiveRecord::Base.send(:include, ActiveRecord::VirtualBase)
|
7
|
+
|
8
|
+
class VirtualBaseModel < ActiveRecord::Base
|
9
|
+
tableless :columns => [
|
10
|
+
[:email, :string],
|
11
|
+
[:password, :string],
|
12
|
+
[:password_confirmation] ]
|
13
|
+
|
14
|
+
validates_presence_of :email, :password, :password_confirmation
|
15
|
+
validates_confirmation_of :password
|
16
|
+
end
|
17
|
+
|
18
|
+
class B_TablelessTest < Test::Unit::TestCase
|
19
|
+
|
20
|
+
def setup
|
21
|
+
super
|
22
|
+
@valid_attributes = {
|
23
|
+
:email => "robin@bogus.com",
|
24
|
+
:password => "password",
|
25
|
+
:password_confirmation => "password"
|
26
|
+
}
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_create
|
30
|
+
assert VirtualBaseModel.create(@valid_attributes).valid?
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_validations
|
34
|
+
# Just check a few validations to make sure we didn't break ActiveRecord::Validations::ClassMethods
|
35
|
+
assert_not_nil VirtualBaseModel.create(@valid_attributes.merge(:email => "")).errors[:email]
|
36
|
+
assert_not_nil VirtualBaseModel.create(@valid_attributes.merge(:password => "")).errors[:password]
|
37
|
+
assert_not_nil VirtualBaseModel.create(@valid_attributes.merge(:password_confirmation => "")).errors[:password]
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_save
|
41
|
+
assert VirtualBaseModel.new(@valid_attributes).save
|
42
|
+
assert !VirtualBaseModel.new(@valid_attributes.merge(:password => "no_match")).save
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_valid?
|
46
|
+
assert VirtualBaseModel.new(@valid_attributes).valid?
|
47
|
+
assert !VirtualBaseModel.new(@valid_attributes.merge(:password => "no_match")).valid?
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_exists!
|
51
|
+
m = VirtualBaseModel.new(@valid_attributes)
|
52
|
+
|
53
|
+
assert_nil m.id
|
54
|
+
assert m.new_record?
|
55
|
+
|
56
|
+
m.exists!
|
57
|
+
assert_equal 1, m.id
|
58
|
+
assert !m.new_record?
|
59
|
+
|
60
|
+
m.exists!(250)
|
61
|
+
assert_equal 250, m.id
|
62
|
+
assert !m.new_record?
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
class B_ReportWithVBTest < Test::Unit::TestCase
|
67
|
+
|
68
|
+
def setup
|
69
|
+
require 'report.rb'
|
70
|
+
|
71
|
+
rep = Report.new 'rep/ArVit187.rep'
|
72
|
+
@data = ActiveRecord::Base.establish_dataset(rep)
|
73
|
+
@data.owner='ArVitallian'
|
74
|
+
|
75
|
+
@av = Race.new %w[ArVitallian 13.00 11.61 11.08 5.48 2276614.82 2028341.13 2515 - 2276.61],{}
|
76
|
+
@vd = Race.new %w[Vildok 10.33 1.00 1.00 6.07 2035.74 0.00 1 War 0.00], {}
|
77
|
+
@raz = Product.new %w[raz 1.00 0 0.00 0.00 0.00 1.00],{:race=>@vd}
|
78
|
+
@q = Product.new %w[QAK 1.00 0 0.00 2.33 0.00 3.33],{:race=>@av}
|
79
|
+
@s1 = Product.new %w[MoveTo_6300_12504 6299.55 12503.99 0 0],{:race=>@av}
|
80
|
+
@mark = Product.new %w[MAPKEP 8.00 0 0.00 0.00 1.00 9.00],{:race=>@av}
|
81
|
+
@p1 = Planet.new %w[9802 10483.56 10512.20 N-A4 2500.00 2349.00 2200.00 0.03 QAK 49.75 5214.30 2005.14 2300.00], {:race=>@av}
|
82
|
+
@p2 = Planet.new %w[7346 13906.25 17458.86 CYB 2500.00 0.07 0.00 3819.89], {}
|
83
|
+
@p3 = Planet.new %w[7261 15768.34 11160.36], {}
|
84
|
+
@p4 = Planet.new %w[7810 8-14R], {}
|
85
|
+
@f1 = Fleet.new %w[1 fgtr5 6 N-A4 - 0.00 112.50 In_Orbit], {:owner=>'ArVitallian'}
|
86
|
+
@g1 = Group.new %w[0 1 MAPKEP 2.22 0.00 0.00 1.00 COL 0.03 N-A4 - 0.00 39.34 9.03 - In_Orbit],
|
87
|
+
{:planet=>@p1, :race=>@av, :product=>@mark}
|
88
|
+
@g2 = Group.new %w[6830 1170 QAK 13.00 0.00 9.99 0.00 - 0.00 N-A4 - 0.00 78.08 3.33 fgtr5 In_Orbit],
|
89
|
+
{:planet=>@p1, :race=>@av, :product=>@q, :fleet=>@f1}
|
90
|
+
@r = Route.new %w[N-A4 - #7346 - -], {:owner=>'ArVitallian'}
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_add
|
94
|
+
# Models are automatically added to dataset upon creation
|
95
|
+
assert @vd.add # Multiple add leaves object in the same place of dataset
|
96
|
+
assert @vd.add
|
97
|
+
assert_equal @vd, @data.races[1]
|
98
|
+
assert_equal @av, @data.races.first
|
99
|
+
assert_equal 2, @data.races.size
|
100
|
+
assert_equal @raz, @data.products[6] #first products (drive, cap, etc...) defined in Report
|
101
|
+
assert_equal @mark, @data.ships.last
|
102
|
+
assert_equal @mark, @data.products[-1]
|
103
|
+
assert_equal @s1, @data.sciences[0]
|
104
|
+
assert_equal @p1, @data.planets['N-A4']
|
105
|
+
assert_equal @p1, @data.your_planets[0]
|
106
|
+
assert_equal @p2, @data.planets['#7346']
|
107
|
+
assert_equal @p2, @data.uninhabited_planets[0]
|
108
|
+
assert_equal @p3, @data.planets['#7261']
|
109
|
+
assert_equal @p3, @data.unknown_planets[0]
|
110
|
+
assert_equal @f1, @data.fleets.first
|
111
|
+
assert_equal @g1, @data.groups.first
|
112
|
+
assert_equal @r, @data.routes.first
|
113
|
+
|
114
|
+
#Update a Planet and make sure no duplicates added to dataset
|
115
|
+
@p4.update_planet %w[7810 10483.56 10512.20 NEW 2500.00 2349.00 2200.00 0.03 QAK 49.75 5214.30 2005.14 2300.00], {:race=>@av}
|
116
|
+
assert_equal 4, @data.planets.size
|
117
|
+
assert_equal @p4, @data.planets['#7810']
|
118
|
+
assert_equal @p4, @data.planets['8-14R']
|
119
|
+
assert_equal @p4, @data.planets['NEW']
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_lookup
|
123
|
+
assert_equal @av, Race.lookup(:first)
|
124
|
+
assert_equal @av, Race.lookup(0)
|
125
|
+
assert_equal @av, Race.lookup(@av.key)
|
126
|
+
assert_equal @av, Race.lookup(@av.idx)
|
127
|
+
assert_equal @vd, Race.lookup(:last)
|
128
|
+
assert_equal @vd, Race.lookup('Vildok')
|
129
|
+
assert_equal [@av,@vd], Race.lookup(:all)
|
130
|
+
assert_equal 'Drive', Product.lookup(:first).name # Auto-created by Report
|
131
|
+
assert_equal @mark, Product.lookup(:last)
|
132
|
+
assert_equal @s1, Product.lookup(8)
|
133
|
+
assert_equal @raz, Product.lookup(@raz.key)
|
134
|
+
assert_equal 10, Product.lookup(:all).size
|
135
|
+
assert_equal @p1, Planet.lookup(:first)
|
136
|
+
assert_equal @p4, Planet.lookup(:last)
|
137
|
+
assert_equal @p1, Planet.lookup('N-A4')
|
138
|
+
assert_equal @p1, Planet.lookup(@p1.key)
|
139
|
+
assert_equal @p1, Planet.lookup(@p1.idx)
|
140
|
+
assert_equal @p2, Planet.lookup('#7346')
|
141
|
+
assert_equal 4, Planet.lookup(:all).size
|
142
|
+
assert_equal @f1, Fleet.lookup(:first)
|
143
|
+
assert_equal @f1, Fleet.lookup(:last)
|
144
|
+
assert_equal @f1, Fleet.lookup('ArVitallian.fgtr5')
|
145
|
+
assert_equal @f1, Fleet.lookup(@f1.key)
|
146
|
+
assert_equal @f1, Fleet.lookup(@f1.idx)
|
147
|
+
assert_equal @f1, Fleet.lookup(0)
|
148
|
+
assert_equal @g1, Group.lookup(:first)
|
149
|
+
assert_equal @g2, Group.lookup(:last)
|
150
|
+
assert_equal @g1, Group.lookup('ArVitallian.0')
|
151
|
+
assert_equal @g1, Group.lookup(@g1.key)
|
152
|
+
assert_equal @g1, Group.lookup(@g1.idx)
|
153
|
+
assert_equal @g1, Group.lookup(0)
|
154
|
+
assert_equal @r, Route.lookup(:first)
|
155
|
+
assert_equal @r, Route.lookup(:last)
|
156
|
+
assert_equal @r, Route.lookup('9802.7346.mat')
|
157
|
+
assert_equal @r, Route.lookup(@r.key)
|
158
|
+
assert_equal @r, Route.lookup(@r.idx)
|
159
|
+
assert_equal @r, Route.lookup(0)
|
160
|
+
end
|
161
|
+
|
162
|
+
def test_kill
|
163
|
+
assert @raz.kill
|
164
|
+
assert_nil @data.products[@raz.key]
|
165
|
+
assert @mark.kill
|
166
|
+
assert_nil @data.products[@mark.key]
|
167
|
+
assert @q.kill
|
168
|
+
assert @data.ships.empty?
|
169
|
+
assert @s1.kill
|
170
|
+
assert_nil @data.sciences[0]
|
171
|
+
assert_nil @data.products[-1]
|
172
|
+
assert @p1.kill
|
173
|
+
assert_nil @data.planets['N-A4']
|
174
|
+
assert_nil @data.your_planets[0]
|
175
|
+
assert @p2.kill
|
176
|
+
assert_nil @data.planets['#7346']
|
177
|
+
assert_nil @data.uninhabited_planets[0]
|
178
|
+
assert @p3.kill
|
179
|
+
assert_nil @data.planets['#7261']
|
180
|
+
assert_nil @data.unknown_planets[1]
|
181
|
+
assert @f1.kill
|
182
|
+
assert_nil @data.fleets.first
|
183
|
+
assert @g1.kill
|
184
|
+
assert_nil @data.groups.first
|
185
|
+
assert @r.kill
|
186
|
+
assert_nil @data.routes.first
|
187
|
+
assert @av.kill
|
188
|
+
assert_nil @data.races.first
|
189
|
+
assert_nil @data.races['ArVitallian']
|
190
|
+
assert @vd.kill
|
191
|
+
assert_nil @data.races.last
|
192
|
+
assert_nil @vd.idx
|
193
|
+
end
|
194
|
+
|
195
|
+
def test_class_kill
|
196
|
+
Product.kill 'Vildok.raz'
|
197
|
+
assert_nil @data.products[@raz.key]
|
198
|
+
Product.kill :all
|
199
|
+
assert_nil @data.ships.last
|
200
|
+
assert_nil @data.products[@mark.key]
|
201
|
+
assert_nil @data.sciences[0]
|
202
|
+
assert_nil @data.products[-1]
|
203
|
+
Planet.kill 'N-A4'
|
204
|
+
assert_nil @data.your_planets[0]
|
205
|
+
assert_nil @data.planets['N-A4']
|
206
|
+
Planet.kill '#7346'
|
207
|
+
assert_nil @data.planets['#7346']
|
208
|
+
assert_nil @data.uninhabited_planets[0]
|
209
|
+
Planet.kill :last
|
210
|
+
assert_nil @data.planets['#7810']
|
211
|
+
assert_nil @data.unknown_planets[1]
|
212
|
+
Fleet.kill @f1.idx
|
213
|
+
assert_nil @data.fleets.first
|
214
|
+
Group.kill :first
|
215
|
+
assert_nil @data.groups.first
|
216
|
+
Route.kill :first
|
217
|
+
assert_nil @data.routes.first
|
218
|
+
Race.kill 'ArVitallian'
|
219
|
+
assert_nil @data.races['ArVitallian']
|
220
|
+
Race.kill :last
|
221
|
+
assert_nil @data.races.last
|
222
|
+
assert_nil @vd.idx
|
223
|
+
end
|
224
|
+
end
|
metadata
ADDED
@@ -0,0 +1,123 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: galaxy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- arvicco
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-03-11 00:00:00 +03:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rspec
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.2.9
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: cucumber
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
35
|
+
description: Report parser for Galaxy Plus PBEM
|
36
|
+
email: arvitallian@gmail.com
|
37
|
+
executables: []
|
38
|
+
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files:
|
42
|
+
- LICENSE
|
43
|
+
- README.rdoc
|
44
|
+
files:
|
45
|
+
- .document
|
46
|
+
- .gitignore
|
47
|
+
- .idea/.rakeTasks
|
48
|
+
- .idea/encodings.xml
|
49
|
+
- .idea/galaxy.iml
|
50
|
+
- .idea/misc.xml
|
51
|
+
- .idea/modules.xml
|
52
|
+
- .idea/vcs.xml
|
53
|
+
- .idea/workspace.xml
|
54
|
+
- LICENSE
|
55
|
+
- README.rdoc
|
56
|
+
- Rakefile
|
57
|
+
- VERSION
|
58
|
+
- doc/plan.txt
|
59
|
+
- doc/pseudo.txt
|
60
|
+
- features/galaxy.feature
|
61
|
+
- features/step_definitions/galaxy_steps.rb
|
62
|
+
- features/support/env.rb
|
63
|
+
- galaxy.gemspec
|
64
|
+
- galaxy/.loadpath
|
65
|
+
- galaxy/.project
|
66
|
+
- galaxy/.settings/org.eclipse.mylyn.tasks.ui.prefs
|
67
|
+
- galaxy/.settings/org.eclipse.wst.sse.core.prefs
|
68
|
+
- galaxy/experiments.rb
|
69
|
+
- lib/galaxy.rb
|
70
|
+
- lib/galaxy/models/bombing.rb
|
71
|
+
- lib/galaxy/models/fleet.rb
|
72
|
+
- lib/galaxy/models/group.rb
|
73
|
+
- lib/galaxy/models/models.rb
|
74
|
+
- lib/galaxy/models/planet.rb
|
75
|
+
- lib/galaxy/models/product.rb
|
76
|
+
- lib/galaxy/models/race.rb
|
77
|
+
- lib/galaxy/models/route.rb
|
78
|
+
- lib/galaxy/order.rb
|
79
|
+
- lib/galaxy/report.rb
|
80
|
+
- lib/galaxy/section.rb
|
81
|
+
- lib/galaxy/utils.rb
|
82
|
+
- lib/galaxy/virtual_base.rb
|
83
|
+
- spec/spec_helper.rb
|
84
|
+
- test/test_helper.rb
|
85
|
+
- test/unit/models_test.rb
|
86
|
+
- test/unit/report_test.rb
|
87
|
+
- test/unit/utils_test.rb
|
88
|
+
- test/unit/virtual_base_test.rb
|
89
|
+
has_rdoc: true
|
90
|
+
homepage: http://github.com/arvicco/galaxy
|
91
|
+
licenses: []
|
92
|
+
|
93
|
+
post_install_message:
|
94
|
+
rdoc_options:
|
95
|
+
- --charset=UTF-8
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: "0"
|
103
|
+
version:
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: "0"
|
109
|
+
version:
|
110
|
+
requirements: []
|
111
|
+
|
112
|
+
rubyforge_project:
|
113
|
+
rubygems_version: 1.3.5
|
114
|
+
signing_key:
|
115
|
+
specification_version: 3
|
116
|
+
summary: Report parser for Galaxy Plus PBEM
|
117
|
+
test_files:
|
118
|
+
- spec/spec_helper.rb
|
119
|
+
- test/test_helper.rb
|
120
|
+
- test/unit/models_test.rb
|
121
|
+
- test/unit/report_test.rb
|
122
|
+
- test/unit/utils_test.rb
|
123
|
+
- test/unit/virtual_base_test.rb
|