castle-log 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/spec/file_spec.rb CHANGED
@@ -2,54 +2,85 @@ require 'spec_helper'
2
2
 
3
3
  describe Castle::Log::File do
4
4
 
5
- context 'data file long-flight.csv' do
5
+ describe '#new' do
6
6
 
7
- subject { Castle::Log::File.new(data_file('long-flight.csv')) }
7
+ context 'data file long-flight.csv' do
8
8
 
9
- it { should have(1).sessions }
9
+ subject { Castle::Log::File.new(data_file('long-flight.csv')) }
10
10
 
11
- end
11
+ it { should have(1).sessions }
12
+
13
+ end
12
14
 
13
- context 'data file multi-line-notes.csv' do
15
+ context 'data file multi-line-notes.csv' do
14
16
 
15
- subject { Castle::Log::File.new(data_file('multi-line-notes.csv')) }
17
+ subject { Castle::Log::File.new(data_file('multi-line-notes.csv')) }
16
18
 
17
- it { should have(1).sessions }
19
+ it { should have(1).sessions }
20
+
21
+ it 'should have a multi-line note field' do
22
+ subject.notes.split("\n").should have(3).lines
23
+ end
18
24
 
19
- it 'should have a multi-line note field' do
20
- subject.notes.split("\n").should have(3).lines
21
25
  end
22
26
 
23
- end
27
+ context 'data file multi-session-1.csv' do
24
28
 
25
- context 'data file multi-session-1.csv' do
29
+ subject { Castle::Log::File.new(data_file('multi-session-1.csv')) }
26
30
 
27
- subject { Castle::Log::File.new(data_file('multi-session-1.csv')) }
31
+ it { should have(5).sessions }
28
32
 
29
- it { should have(5).sessions }
33
+ its(:notes) { should eql('Agri-duck 14 sep 12') }
30
34
 
31
- its(:notes) { should eql('Agri-duck 14 sep 12') }
35
+ end
32
36
 
33
- end
37
+ context 'data file multi-session-2.csv' do
34
38
 
35
- context 'data file multi-session-2.csv' do
39
+ subject { Castle::Log::File.new(data_file('multi-session-2.csv')) }
36
40
 
37
- subject { Castle::Log::File.new(data_file('multi-session-2.csv')) }
41
+ it { should have(7).sessions }
38
42
 
39
- it { should have(7).sessions }
43
+ end
40
44
 
41
- end
45
+ context 'data file sample-1.csv' do
46
+
47
+ subject { Castle::Log::File.new(data_file('sample-1.csv')) }
42
48
 
43
- context 'data file sample-1.csv' do
49
+ it { should have(1).sessions }
44
50
 
45
- subject { Castle::Log::File.new(data_file('sample-1.csv')) }
51
+ end
52
+
53
+ it 'should raise for invalid or missing files' do
54
+ files = invalid_data_files
55
+ files.should have(21).files
46
56
 
47
- it { should have(1).sessions }
57
+ files.each do |f|
58
+ expect { Castle::Log::File.new(f) }.to raise_error
59
+ end
60
+ end
48
61
 
49
62
  end
50
63
 
51
- it 'should raise on bad input' do
52
- expect { Castle::Log::File.new(__FILE__) }.to raise_error
64
+ describe '#castle?' do
65
+
66
+ it 'should be false for invalid or missing files' do
67
+ files = invalid_data_files
68
+ files.should have(21).files
69
+
70
+ files.each do |f|
71
+ Castle::Log::File.castle?(f).should be_false
72
+ end
73
+ end
74
+
75
+ it 'should be true for valid files' do
76
+ files = data_files
77
+ files.should have(5).files
78
+
79
+ files.each do |f|
80
+ Castle::Log::File.castle?(f).should be_true
81
+ end
82
+ end
83
+
53
84
  end
54
85
 
55
86
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,10 @@
1
+ require 'simplecov'
2
+ require 'simplecov-gem-adapter'
3
+ require 'simplecov-rcov'
4
+ SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
5
+ SimpleCov.start 'gem' if ENV['COVERAGE']
6
+
7
+ require 'awesome_print'
1
8
  require 'pathname'
2
9
  require 'castle/log'
3
10
 
@@ -13,7 +20,19 @@ RSpec.configure do |config|
13
20
  config.order = 'random'
14
21
  end
15
22
 
23
+ # root from spec/data
16
24
  def data_file(name)
17
- path = Pathname.new("#{File.dirname(__FILE__)}/../data/#{name}")
18
- path.realpath
25
+ File.expand_path("#{File.dirname(__FILE__)}/data/#{name}")
26
+ end
27
+
28
+ def data_files
29
+ dir = "#{File.dirname(__FILE__)}/data/#{dir}"
30
+ Dir.glob("#{dir}/*").select { |e| File.file? e }
31
+ end
32
+
33
+ def invalid_data_files
34
+ dir = "#{File.dirname(__FILE__)}/data/invalid"
35
+ invalid = Dir.glob("#{dir}/**/*").select { |e| File.file? e }
36
+ invalid << __FILE__
37
+ invalid << 'NOFILE.TLM'
19
38
  end
metadata CHANGED
@@ -1,20 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: castle-log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nick Veys
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-04 00:00:00.000000000 Z
11
+ date: 2013-07-06 00:00:00.000000000 Z
13
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: awesome_print
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
14
27
  - !ruby/object:Gem::Dependency
15
28
  name: bundler
16
29
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
30
  requirements:
19
31
  - - ~>
20
32
  - !ruby/object:Gem::Version
@@ -22,7 +34,6 @@ dependencies:
22
34
  type: :development
23
35
  prerelease: false
24
36
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
37
  requirements:
27
38
  - - ~>
28
39
  - !ruby/object:Gem::Version
@@ -30,7 +41,6 @@ dependencies:
30
41
  - !ruby/object:Gem::Dependency
31
42
  name: ci_reporter
32
43
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
44
  requirements:
35
45
  - - '='
36
46
  - !ruby/object:Gem::Version
@@ -38,7 +48,6 @@ dependencies:
38
48
  type: :development
39
49
  prerelease: false
40
50
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
51
  requirements:
43
52
  - - '='
44
53
  - !ruby/object:Gem::Version
@@ -46,35 +55,73 @@ dependencies:
46
55
  - !ruby/object:Gem::Dependency
47
56
  name: rake
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
59
  - - ~>
52
60
  - !ruby/object:Gem::Version
53
- version: '0.8'
61
+ version: '10.0'
54
62
  type: :development
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
66
  - - ~>
60
67
  - !ruby/object:Gem::Version
61
- version: '0.8'
68
+ version: '10.0'
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rspec
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
73
  - - ~>
68
74
  - !ruby/object:Gem::Version
69
- version: '2.12'
75
+ version: '2.13'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
80
  - - ~>
76
81
  - !ruby/object:Gem::Version
77
- version: '2.12'
82
+ version: '2.13'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov-gem-adapter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov-rcov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
78
125
  description: Read and interpret Castle Creations data log files.
79
126
  email:
80
127
  - nick@codelever.com
@@ -89,44 +136,87 @@ files:
89
136
  - README.md
90
137
  - Rakefile
91
138
  - castle-log.gemspec
92
- - data/long-flight.csv
93
- - data/multi-line-notes.csv
94
- - data/multi-session-1.csv
95
- - data/multi-session-2.csv
96
- - data/sample-1.csv
97
139
  - lib/castle/log.rb
98
140
  - lib/castle/log/file.rb
99
141
  - lib/castle/log/session.rb
100
142
  - lib/castle/log/version.rb
143
+ - spec/data/invalid/eagle_tree/empty.fdr
144
+ - spec/data/invalid/eagle_tree/funjet-gps.fdr
145
+ - spec/data/invalid/eagle_tree/multi-session-1.fdr
146
+ - spec/data/invalid/eagle_tree/multi-session-2.fdr
147
+ - spec/data/invalid/eagle_tree/old-1.fdr
148
+ - spec/data/invalid/eagle_tree/old-2.fdr
149
+ - spec/data/invalid/eagle_tree/old-3.fdr
150
+ - spec/data/invalid/eagle_tree/t600-1.fdr
151
+ - spec/data/invalid/eagle_tree/t600-2.fdr
152
+ - spec/data/invalid/empty.file
153
+ - spec/data/invalid/spektrum/1.TLM
154
+ - spec/data/invalid/spektrum/2.TLM
155
+ - spec/data/invalid/spektrum/3.TLM
156
+ - spec/data/invalid/spektrum/4.TLM
157
+ - spec/data/invalid/spektrum/GPS.TLM
158
+ - spec/data/invalid/spektrum/GPS2.TLM
159
+ - spec/data/invalid/spektrum/X5-GPS1.TLM
160
+ - spec/data/invalid/spektrum/X5-GPS2.TLM
161
+ - spec/data/invalid/spektrum/X5-GPS3.TLM
162
+ - spec/data/long-flight.csv
163
+ - spec/data/multi-line-notes.csv
164
+ - spec/data/multi-session-1.csv
165
+ - spec/data/multi-session-2.csv
166
+ - spec/data/sample-1.csv
101
167
  - spec/file_spec.rb
102
168
  - spec/session_spec.rb
103
169
  - spec/spec_helper.rb
104
170
  homepage: ''
105
171
  licenses:
106
172
  - MIT
173
+ metadata: {}
107
174
  post_install_message:
108
175
  rdoc_options: []
109
176
  require_paths:
110
177
  - lib
111
178
  required_ruby_version: !ruby/object:Gem::Requirement
112
- none: false
113
179
  requirements:
114
- - - ! '>='
180
+ - - '>='
115
181
  - !ruby/object:Gem::Version
116
182
  version: '0'
117
183
  required_rubygems_version: !ruby/object:Gem::Requirement
118
- none: false
119
184
  requirements:
120
- - - ! '>='
185
+ - - '>='
121
186
  - !ruby/object:Gem::Version
122
187
  version: '0'
123
188
  requirements: []
124
189
  rubyforge_project:
125
- rubygems_version: 1.8.22
190
+ rubygems_version: 2.0.3
126
191
  signing_key:
127
- specification_version: 3
192
+ specification_version: 4
128
193
  summary: Castle Creations data log file reader
129
194
  test_files:
195
+ - spec/data/invalid/eagle_tree/empty.fdr
196
+ - spec/data/invalid/eagle_tree/funjet-gps.fdr
197
+ - spec/data/invalid/eagle_tree/multi-session-1.fdr
198
+ - spec/data/invalid/eagle_tree/multi-session-2.fdr
199
+ - spec/data/invalid/eagle_tree/old-1.fdr
200
+ - spec/data/invalid/eagle_tree/old-2.fdr
201
+ - spec/data/invalid/eagle_tree/old-3.fdr
202
+ - spec/data/invalid/eagle_tree/t600-1.fdr
203
+ - spec/data/invalid/eagle_tree/t600-2.fdr
204
+ - spec/data/invalid/empty.file
205
+ - spec/data/invalid/spektrum/1.TLM
206
+ - spec/data/invalid/spektrum/2.TLM
207
+ - spec/data/invalid/spektrum/3.TLM
208
+ - spec/data/invalid/spektrum/4.TLM
209
+ - spec/data/invalid/spektrum/GPS.TLM
210
+ - spec/data/invalid/spektrum/GPS2.TLM
211
+ - spec/data/invalid/spektrum/X5-GPS1.TLM
212
+ - spec/data/invalid/spektrum/X5-GPS2.TLM
213
+ - spec/data/invalid/spektrum/X5-GPS3.TLM
214
+ - spec/data/long-flight.csv
215
+ - spec/data/multi-line-notes.csv
216
+ - spec/data/multi-session-1.csv
217
+ - spec/data/multi-session-2.csv
218
+ - spec/data/sample-1.csv
130
219
  - spec/file_spec.rb
131
220
  - spec/session_spec.rb
132
221
  - spec/spec_helper.rb
222
+ has_rdoc: