tsm-accounting 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/HISTORY CHANGED
@@ -1,3 +1,8 @@
1
+ == 1.0.0 ==
2
+ * Incorrect files (incorrect is defined by the lack of the
3
+ 'TradeSkillMaster_AccountingDB = {' line) are now detected and an exception
4
+ is raised.
5
+
1
6
  == 0.9.0 ==
2
7
  * I am the worst QA engineer in the entire world. Buyer and seller columns
3
8
  are now correct for purchase transactions.
@@ -28,9 +28,12 @@
28
28
  require 'csv'
29
29
 
30
30
  module TSMAccounting
31
- VERSION = '0.9.0'
31
+ VERSION = '1.0.0'
32
32
 
33
33
  class Database
34
+ class InvalidDatabaseFileException < RuntimeError
35
+ end
36
+
34
37
  attr_reader :data
35
38
  # Expects the whole TradeSkillMaster_Accounting.lua file
36
39
  # as a string.
@@ -101,11 +104,14 @@ module TSMAccounting
101
104
  # my file since the only two lines of consequence are the ones I'm
102
105
  # going to be saving anyway but it may be a good idea if there's a
103
106
  # goblin operating on both factions for six realms...
104
-
107
+
108
+ header_seen = false
105
109
  depth = 0
106
110
  realm, faction = nil
107
111
  data = {}
108
112
  db.split("\n").each do |line|
113
+ header_seen = true if line =~ /^\s*TradeSkillMaster_AccountingDB\s*=\s*\{/
114
+
109
115
  if line =~ /^\s*\["factionrealm"\]/
110
116
  depth = 1
111
117
  next
@@ -160,6 +166,10 @@ module TSMAccounting
160
166
  end
161
167
  end # line depth0
162
168
 
169
+ if !header_seen
170
+ raise InvalidDatabaseFileException 'Bad file detected.'
171
+ end
172
+
163
173
  return data
164
174
  end # extract_data
165
175
 
@@ -0,0 +1,9 @@
1
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu erat dui. Donec quis sem nec quam dictum tincidunt. Vivamus varius enim in leo tempus egestas. Aliquam ut mi sed nibh vulputate posuere at a felis. In tincidunt, purus sed pretium convallis, tellus libero dignissim magna, in fringilla diam elit sed tellus. Donec vitae metus mi, id blandit leo. Aliquam mauris erat, rutrum vel laoreet vitae, mollis vel ante. Aliquam vehicula, quam a condimentum viverra, libero neque volutpat felis, in porta arcu magna vitae purus. Donec nibh urna, rutrum at tincidunt sit amet, aliquam vel orci. Ut dapibus lacinia nisl, at fermentum orci tempor in. Nam ut quam vitae magna semper egestas. Nullam mollis tincidunt cursus. Maecenas porta, nibh at suscipit porttitor, nulla erat imperdiet ipsum, semper ultricies quam augue sed tellus. Donec vel quam vehicula nunc dictum congue quis imperdiet velit. Duis ornare nibh eu felis bibendum ac sollicitudin nulla feugiat. Aliquam nulla felis, scelerisque vel auctor eu, dignissim eget enim.
2
+
3
+ Cras a neque urna. Cras gravida libero sodales elit bibendum vulputate. In a dui ipsum, malesuada tempor nunc. Maecenas venenatis, nisl vitae porttitor lacinia, neque tellus fermentum ligula, at euismod sem nisl a diam. Aliquam erat volutpat. Nulla facilisis mi luctus ipsum blandit tempor malesuada ligula porttitor. Vestibulum commodo elit sed augue lacinia in luctus leo volutpat. Aliquam nulla mauris, venenatis sit amet porta ac, euismod eu odio. Etiam sed leo ante. Vestibulum id metus elit, eu rutrum est. Nunc iaculis ornare mi, at hendrerit leo viverra vel. Aenean lorem magna, laoreet vitae sodales ac, aliquam eget felis. Integer diam ligula, dignissim eu consequat ut, adipiscing eu orci.
4
+
5
+ Phasellus placerat suscipit augue, ultrices sodales massa vehicula vel. Morbi facilisis massa ac est bibendum non tristique purus aliquet. Integer congue mattis felis, non viverra magna congue vitae. Nullam porttitor sollicitudin nisl, non ultrices quam semper ut. Etiam diam risus, rhoncus quis pulvinar eget, vestibulum in leo. In fermentum, orci ac semper aliquet, nisi nunc vulputate libero, non tincidunt eros dui quis turpis. In id turpis eu orci cursus mattis. Proin id dolor quam, vel auctor felis. Nullam et erat elit. Donec vel accumsan risus. Etiam nisl magna, sollicitudin non placerat ut, tristique a nisi. Nam gravida accumsan mauris, id ultricies velit interdum eu. Proin rutrum ornare tincidunt. Integer eu lectus mauris. Praesent ullamcorper felis nec elit hendrerit ultrices sed vel elit.
6
+
7
+ Nulla facilisi. Curabitur placerat, ligula eu pellentesque semper, mi arcu tincidunt nunc, et luctus est justo eu nibh. Fusce faucibus, dui eget rutrum laoreet, turpis nunc facilisis sapien, aliquet convallis lorem magna vel lorem. Ut mauris orci, venenatis a suscipit sed, varius non risus. Pellentesque sagittis rutrum tellus eu ultricies. Quisque metus justo, tincidunt ac lacinia ac, facilisis iaculis tortor. Aenean mauris lorem, porttitor vel mattis id, auctor vel turpis. Proin odio tortor, cursus at rutrum non, mollis non nibh. Integer imperdiet tincidunt lorem id dapibus. Nullam mauris augue, aliquam vel malesuada at, mattis vestibulum justo. Nam suscipit aliquet congue. Integer gravida convallis orci eu pellentesque. Suspendisse volutpat, orci nec eleifend venenatis, nibh dui sagittis velit, eget tempor neque libero sed elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi fermentum porta ante, in feugiat purus ultrices et.
8
+
9
+ Etiam faucibus, augue in convallis mattis, est urna imperdiet leo, id iaculis est sapien quis dolor. Mauris eleifend accumsan metus, vel tincidunt magna egestas eget. Curabitur sed tristique eros. Praesent mauris enim, consectetur eu ultrices ut, rutrum ut purus. Curabitur commodo scelerisque eros in tristique. Integer consectetur rutrum luctus. Nunc adipiscing erat vel ante volutpat id facilisis metus blandit.
data/test/test.rb CHANGED
@@ -3,4 +3,5 @@ $:.unshift("#{File.expand_path(File.dirname(__FILE__))}/../lib")
3
3
  require 'tsm-accounting'
4
4
 
5
5
  tsm = TSMAccounting::Database.new(File.new('data/TradeSkillMaster_Accounting.lua').read)
6
+ #tsm = TSMAccounting::Database.new(File.new('data/junk.lua').read)
6
7
  tsm.to_csv('/tmp/accounting.csv')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tsm-accounting
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 9
9
9
  - 0
10
- version: 0.9.0
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - owlmanatt
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-10 00:00:00 +00:00
18
+ date: 2011-09-11 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -31,6 +31,7 @@ extra_rdoc_files: []
31
31
  files:
32
32
  - lib/tsm-accounting.rb
33
33
  - test/data/TradeSkillMaster_Accounting.lua
34
+ - test/data/junk.lua
34
35
  - test/test.rb
35
36
  - AUTHORS
36
37
  - HISTORY