castle-log 0.0.2 → 0.0.3

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.
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: