ascii-data-tools 0.9
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/.gitignore +3 -0
- data/.rvmrc +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +40 -0
- data/LICENSE.GPL2 +339 -0
- data/README.rdoc +52 -0
- data/Rakefile +42 -0
- data/TODO +4 -0
- data/ascii-data-tools.gemspec +30 -0
- data/bin/ascii-data-cat +13 -0
- data/bin/ascii-data-edit +13 -0
- data/bin/ascii-data-norm +13 -0
- data/bin/ascii-data-qdiff +13 -0
- data/bin/ascii-data-tools-config +9 -0
- data/examples/big +10000 -0
- data/examples/built_in_records.gz +0 -0
- data/examples/slightly_modified_built_in_records.gz +0 -0
- data/features/ascii-data-cat.feature +110 -0
- data/features/ascii-data-edit.feature +91 -0
- data/features/ascii-data-qdiff.feature +54 -0
- data/features/encoding_decoding.feature +68 -0
- data/features/normaliser.feature +27 -0
- data/features/plugins.feature +73 -0
- data/features/record_recognition.feature +61 -0
- data/features/step_definitions/ascii-data-cat_steps.rb +48 -0
- data/features/step_definitions/ascii-data-edit_steps.rb +38 -0
- data/features/step_definitions/ascii-data-norm_steps.rb +7 -0
- data/features/step_definitions/ascii-data-qdiff_steps.rb +43 -0
- data/features/step_definitions/encoding_decoding_steps.rb +23 -0
- data/features/step_definitions/plugins_steps.rb +11 -0
- data/features/step_definitions/record_recognition_steps.rb +10 -0
- data/features/support/env.rb +5 -0
- data/lib/ascii-data-tools.rb +8 -0
- data/lib/ascii-data-tools/configuration.rb +169 -0
- data/lib/ascii-data-tools/configuration_printer.rb +38 -0
- data/lib/ascii-data-tools/controller.rb +123 -0
- data/lib/ascii-data-tools/discover.rb +19 -0
- data/lib/ascii-data-tools/external_programs.rb +23 -0
- data/lib/ascii-data-tools/filter.rb +148 -0
- data/lib/ascii-data-tools/filter/diffing.rb +139 -0
- data/lib/ascii-data-tools/formatting.rb +109 -0
- data/lib/ascii-data-tools/global_autodiscovery.rb +21 -0
- data/lib/ascii-data-tools/record.rb +50 -0
- data/lib/ascii-data-tools/record_type.rb +139 -0
- data/lib/ascii-data-tools/record_type/builder.rb +50 -0
- data/lib/ascii-data-tools/record_type/decoder.rb +77 -0
- data/lib/ascii-data-tools/record_type/encoder.rb +17 -0
- data/lib/ascii-data-tools/record_type/field.rb +168 -0
- data/lib/ascii-data-tools/record_type/normaliser.rb +38 -0
- data/lib/ascii-data-tools/ruby_extensions.rb +7 -0
- data/lib/ascii-data-tools/version.rb +3 -0
- data/spec/ascii-data-tools/configuration_printer_spec.rb +51 -0
- data/spec/ascii-data-tools/configuration_spec.rb +153 -0
- data/spec/ascii-data-tools/discover_spec.rb +8 -0
- data/spec/ascii-data-tools/filter/diffing_spec.rb +82 -0
- data/spec/ascii-data-tools/filter_spec.rb +107 -0
- data/spec/ascii-data-tools/formatting_spec.rb +106 -0
- data/spec/ascii-data-tools/record_spec.rb +49 -0
- data/spec/ascii-data-tools/record_type/builder_spec.rb +69 -0
- data/spec/ascii-data-tools/record_type/decoder_spec.rb +73 -0
- data/spec/ascii-data-tools/record_type/encoder_spec.rb +32 -0
- data/spec/ascii-data-tools/record_type/field_spec.rb +160 -0
- data/spec/ascii-data-tools/record_type/normaliser_spec.rb +25 -0
- data/spec/ascii-data-tools/record_type_spec.rb +175 -0
- data/spec/filter_helper.rb +24 -0
- data/spec/record_type_helpers.rb +8 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +5 -0
- metadata +196 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module AsciiDataTools
|
4
|
+
module RecordType
|
5
|
+
module Normaliser
|
6
|
+
describe Normaliser do
|
7
|
+
include RecordTypeHelpers
|
8
|
+
before do
|
9
|
+
@fields = fields do
|
10
|
+
field "field1", :length => 3
|
11
|
+
field "field2", :length => 5, :normalised => true
|
12
|
+
field "field3", :length => 3, :normalised => true
|
13
|
+
field "field4", :length => 1
|
14
|
+
end
|
15
|
+
@type = Struct.new(:fields).new(@fields)
|
16
|
+
@type.extend(Normaliser)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should X out the characters in fields configured for normalisation" do
|
20
|
+
@type.normalise("123ABCDEXYZ\n").should == "123XXXXXXXX\n"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,175 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module AsciiDataTools
|
4
|
+
module RecordType
|
5
|
+
describe Type do
|
6
|
+
include RecordTypeHelpers
|
7
|
+
|
8
|
+
before do
|
9
|
+
@type = type("ABC") do
|
10
|
+
field "field100"
|
11
|
+
field "field1"
|
12
|
+
field "field10"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should have a name" do
|
17
|
+
@type.name.should == "ABC"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should provide the field names" do
|
21
|
+
@type.field_names.should == ["field100", "field1", "field10"]
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should provide the number of content fields" do
|
25
|
+
@type.number_of_content_fields.should == 3
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should provide the length of the field with the longest name" do
|
29
|
+
@type.length_of_longest_field_name.should == 8
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should provide an empty constraints description when there are no constraints" do
|
33
|
+
@type.constraints_description.should be_empty
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should provide a list of comma-delimited field constraints as the constraints description" do
|
37
|
+
@type.field_with_name("field100").should_be_constrained_to("ABC")
|
38
|
+
@type.constraints_description.should == "field100 = ABC"
|
39
|
+
|
40
|
+
@type.field_with_name("field10").should_be_constrained_to("DEF")
|
41
|
+
@type.constraints_description.should == "field100 = ABC, field10 = DEF"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should have an inbuilt filename meta field" do
|
45
|
+
@type.field_with_name(:filename).should_not be_nil
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should provide a shortcut for constraining the filename" do
|
49
|
+
@type.filename_should_match /abc/
|
50
|
+
@type.field_with_name(:filename).constraint_description.should == "filename =~ /abc/"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe FixedLengthType do
|
55
|
+
include RecordTypeHelpers
|
56
|
+
|
57
|
+
before do
|
58
|
+
@type = type("ABC") do
|
59
|
+
field "field100", :length => 3
|
60
|
+
field "field1", :length => 5
|
61
|
+
field "field10", :length => 1
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should provide the total length of the fields" do
|
66
|
+
@type.total_length_of_fields.should == 9
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe UnknownType do
|
71
|
+
it "should provide the name" do
|
72
|
+
UnknownType.new.name.should == UnknownType::UNKNOWN_RECORD_TYPE_NAME
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should have one field (UNKNOWN)" do
|
76
|
+
UnknownType.new.field_names.should == ["UNKNOWN"]
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should decode the entire ascii string into the UNKNOWN field" do
|
80
|
+
record = UnknownType.new.decode(:ascii_string => "any string\n")
|
81
|
+
record["UNKNOWN"].should == "any string\n"
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe TypeDeterminer do
|
86
|
+
it "should determine the type that matches" do
|
87
|
+
all_types = mock(RecordTypeRepository, :identify_type_for => mock(Type, :name => "ABC"))
|
88
|
+
TypeDeterminer.new(all_types).determine_type_for(:ascii_string => "any encoded record").name.should == "ABC"
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should accept the context filename as an optional parameter" do
|
92
|
+
all_types = mock(RecordTypeRepository, :identify_type_for => mock(Type, :name => "ABC"))
|
93
|
+
TypeDeterminer.new(all_types).determine_type_for(:ascii_string => "any encoded record", :filename => "context filename").name.should == "ABC"
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should determine the type to be unknown when no matching real type can be found" do
|
97
|
+
TypeDeterminer.new(mock(RecordTypeRepository, :identify_type_for => nil)).determine_type_for(:ascii_string => "any encoded record").should be_an(UnknownType)
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should cache previously matched types and try to match them first" do
|
101
|
+
first_type = mock("type 1")
|
102
|
+
second_type = mock("type 2")
|
103
|
+
|
104
|
+
all_types = mock(RecordTypeRepository)
|
105
|
+
all_types.should_receive(:identify_type_for).with(:ascii_string => "record 1").ordered.and_return(first_type)
|
106
|
+
|
107
|
+
determiner = TypeDeterminer.new(all_types)
|
108
|
+
determiner.determine_type_for(:ascii_string => "record 1").should == first_type
|
109
|
+
|
110
|
+
first_type.should_receive(:able_to_decode?).with(:ascii_string => "record 2").once.ordered.and_return(false)
|
111
|
+
|
112
|
+
all_types.should_receive(:identify_type_for).with(:ascii_string => "record 2").ordered.and_return(second_type)
|
113
|
+
|
114
|
+
determiner.determine_type_for(:ascii_string => "record 2").should == second_type
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
describe RecordTypeRepository do
|
119
|
+
it "should be enumerable" do
|
120
|
+
should be_a_kind_of(Enumerable)
|
121
|
+
end
|
122
|
+
|
123
|
+
it "should have a reset switch" do
|
124
|
+
repo = RecordTypeRepository.new
|
125
|
+
repo << mock(Type, :name => "ABC") << mock(Type, :name => "DEF")
|
126
|
+
repo.clear
|
127
|
+
repo.type("ABC").should be_nil
|
128
|
+
repo.type("DEF").should be_nil
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should find record types by name" do
|
132
|
+
repo = RecordTypeRepository.new
|
133
|
+
repo << mock(Type, :name => "ABC") << mock(Type, :name => "DEF")
|
134
|
+
repo.find_by_name("ABC").name.should == "ABC"
|
135
|
+
repo.type("ABC").name.should == "ABC"
|
136
|
+
repo.find_by_name("XYZ").should be_nil
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should find record types which match a certain record" do
|
140
|
+
repo = RecordTypeRepository.new
|
141
|
+
repo << mock(Type, :name => "ABC", :able_to_decode? => false) << mock(Type, :name => "DEF", :able_to_decode? => :true)
|
142
|
+
repo.identify_type_for(:ascii_string => "some record", :filename => "context").name.should == "DEF"
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should store each type only once" do
|
146
|
+
type = mock(Type)
|
147
|
+
repo = RecordTypeRepository.new([type, type])
|
148
|
+
repo.map {|type| type}.should have(1).item
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should find types by name" do
|
152
|
+
repo = RecordTypeRepository.new
|
153
|
+
repo << mock(Type, :name => "ABC") << mock(Type, :name => "DEF") << mock(Type, :name => "XYZ")
|
154
|
+
found_type_names = []
|
155
|
+
repo.for_names_matching(/ABC|DEF/) {|type| found_type_names << type.name}
|
156
|
+
found_type_names.sort.should == ["ABC", "DEF"]
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should find types by name using a block" do
|
160
|
+
repo = RecordTypeRepository.new
|
161
|
+
repo << mock(Type, :name => "ABC") << mock(Type, :name => "DEF") << mock(Type, :name => "XYZ")
|
162
|
+
found_type_names = []
|
163
|
+
matcher = lambda {|name| ["ABC", "DEF"].include?(name) }
|
164
|
+
repo.for_names_matching(matcher) {|type| found_type_names << type.name}
|
165
|
+
found_type_names.sort.should == ["ABC", "DEF"]
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should include the builder for new types for convenience" do
|
169
|
+
repo = RecordTypeRepository.new
|
170
|
+
repo.record_type("ABC") { field "xyz", :length => 3 }
|
171
|
+
repo.type("ABC").number_of_content_fields.should == 1
|
172
|
+
end
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Spec::Matchers.define :output do |expected_output|
|
2
|
+
chain :from_upstream do |*filters|
|
3
|
+
@filters = filters.map {|filter| filter.is_a?(String) ? input_source_containing(filter) : filter }
|
4
|
+
end
|
5
|
+
|
6
|
+
match do |filter|
|
7
|
+
# connect upstream and downstream
|
8
|
+
([filter] + @filters).each_cons(2) {|downstream, upstream| downstream << upstream }
|
9
|
+
output = StringIO.new
|
10
|
+
|
11
|
+
filter.write(output)
|
12
|
+
|
13
|
+
@actual_string = output.string
|
14
|
+
output.string == expected_output
|
15
|
+
end
|
16
|
+
|
17
|
+
failure_message_for_should do |filter|
|
18
|
+
"filter should output #{expected_output.inspect} but instead outputs #{@actual_string.inspect}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def input_source_containing(content)
|
23
|
+
AsciiDataTools::InputSource.new("some file", StringIO.new(content))
|
24
|
+
end
|
data/spec/spec.opts
ADDED
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,196 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ascii-data-tools
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.9'
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jake Benilov
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-07-31 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: terminal-table
|
16
|
+
requirement: &2160999340 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.4.2
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *2160999340
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rspec
|
27
|
+
requirement: &2160998940 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2160998940
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: cucumber
|
38
|
+
requirement: &2160998480 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *2160998480
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: ruby-prof
|
49
|
+
requirement: &2160998060 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *2160998060
|
58
|
+
description: A tool for decoding and modifying ASCII CDRs.
|
59
|
+
email:
|
60
|
+
- benilov@gmail.com
|
61
|
+
executables:
|
62
|
+
- ascii-data-cat
|
63
|
+
- ascii-data-edit
|
64
|
+
- ascii-data-norm
|
65
|
+
- ascii-data-qdiff
|
66
|
+
- ascii-data-tools-config
|
67
|
+
extensions: []
|
68
|
+
extra_rdoc_files: []
|
69
|
+
files:
|
70
|
+
- .gitignore
|
71
|
+
- .rvmrc
|
72
|
+
- .travis.yml
|
73
|
+
- Gemfile
|
74
|
+
- Gemfile.lock
|
75
|
+
- LICENSE.GPL2
|
76
|
+
- README.rdoc
|
77
|
+
- Rakefile
|
78
|
+
- TODO
|
79
|
+
- ascii-data-tools.gemspec
|
80
|
+
- bin/ascii-data-cat
|
81
|
+
- bin/ascii-data-edit
|
82
|
+
- bin/ascii-data-norm
|
83
|
+
- bin/ascii-data-qdiff
|
84
|
+
- bin/ascii-data-tools-config
|
85
|
+
- examples/big
|
86
|
+
- examples/built_in_records.gz
|
87
|
+
- examples/slightly_modified_built_in_records.gz
|
88
|
+
- features/ascii-data-cat.feature
|
89
|
+
- features/ascii-data-edit.feature
|
90
|
+
- features/ascii-data-qdiff.feature
|
91
|
+
- features/encoding_decoding.feature
|
92
|
+
- features/normaliser.feature
|
93
|
+
- features/plugins.feature
|
94
|
+
- features/record_recognition.feature
|
95
|
+
- features/step_definitions/ascii-data-cat_steps.rb
|
96
|
+
- features/step_definitions/ascii-data-edit_steps.rb
|
97
|
+
- features/step_definitions/ascii-data-norm_steps.rb
|
98
|
+
- features/step_definitions/ascii-data-qdiff_steps.rb
|
99
|
+
- features/step_definitions/encoding_decoding_steps.rb
|
100
|
+
- features/step_definitions/plugins_steps.rb
|
101
|
+
- features/step_definitions/record_recognition_steps.rb
|
102
|
+
- features/support/env.rb
|
103
|
+
- lib/ascii-data-tools.rb
|
104
|
+
- lib/ascii-data-tools/configuration.rb
|
105
|
+
- lib/ascii-data-tools/configuration_printer.rb
|
106
|
+
- lib/ascii-data-tools/controller.rb
|
107
|
+
- lib/ascii-data-tools/discover.rb
|
108
|
+
- lib/ascii-data-tools/external_programs.rb
|
109
|
+
- lib/ascii-data-tools/filter.rb
|
110
|
+
- lib/ascii-data-tools/filter/diffing.rb
|
111
|
+
- lib/ascii-data-tools/formatting.rb
|
112
|
+
- lib/ascii-data-tools/global_autodiscovery.rb
|
113
|
+
- lib/ascii-data-tools/record.rb
|
114
|
+
- lib/ascii-data-tools/record_type.rb
|
115
|
+
- lib/ascii-data-tools/record_type/builder.rb
|
116
|
+
- lib/ascii-data-tools/record_type/decoder.rb
|
117
|
+
- lib/ascii-data-tools/record_type/encoder.rb
|
118
|
+
- lib/ascii-data-tools/record_type/field.rb
|
119
|
+
- lib/ascii-data-tools/record_type/normaliser.rb
|
120
|
+
- lib/ascii-data-tools/ruby_extensions.rb
|
121
|
+
- lib/ascii-data-tools/version.rb
|
122
|
+
- spec/ascii-data-tools/configuration_printer_spec.rb
|
123
|
+
- spec/ascii-data-tools/configuration_spec.rb
|
124
|
+
- spec/ascii-data-tools/discover_spec.rb
|
125
|
+
- spec/ascii-data-tools/filter/diffing_spec.rb
|
126
|
+
- spec/ascii-data-tools/filter_spec.rb
|
127
|
+
- spec/ascii-data-tools/formatting_spec.rb
|
128
|
+
- spec/ascii-data-tools/record_spec.rb
|
129
|
+
- spec/ascii-data-tools/record_type/builder_spec.rb
|
130
|
+
- spec/ascii-data-tools/record_type/decoder_spec.rb
|
131
|
+
- spec/ascii-data-tools/record_type/encoder_spec.rb
|
132
|
+
- spec/ascii-data-tools/record_type/field_spec.rb
|
133
|
+
- spec/ascii-data-tools/record_type/normaliser_spec.rb
|
134
|
+
- spec/ascii-data-tools/record_type_spec.rb
|
135
|
+
- spec/filter_helper.rb
|
136
|
+
- spec/record_type_helpers.rb
|
137
|
+
- spec/spec.opts
|
138
|
+
- spec/spec_helper.rb
|
139
|
+
homepage: http://github.com/benilovj/ascii-data-tools
|
140
|
+
licenses: []
|
141
|
+
post_install_message:
|
142
|
+
rdoc_options: []
|
143
|
+
require_paths:
|
144
|
+
- lib
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 1.8.7
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
none: false
|
153
|
+
requirements:
|
154
|
+
- - ! '>='
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
157
|
+
requirements:
|
158
|
+
- none
|
159
|
+
rubyforge_project:
|
160
|
+
rubygems_version: 1.8.5
|
161
|
+
signing_key:
|
162
|
+
specification_version: 3
|
163
|
+
summary: A tool for decoding and modifying ASCII CDRs.
|
164
|
+
test_files:
|
165
|
+
- features/ascii-data-cat.feature
|
166
|
+
- features/ascii-data-edit.feature
|
167
|
+
- features/ascii-data-qdiff.feature
|
168
|
+
- features/encoding_decoding.feature
|
169
|
+
- features/normaliser.feature
|
170
|
+
- features/plugins.feature
|
171
|
+
- features/record_recognition.feature
|
172
|
+
- features/step_definitions/ascii-data-cat_steps.rb
|
173
|
+
- features/step_definitions/ascii-data-edit_steps.rb
|
174
|
+
- features/step_definitions/ascii-data-norm_steps.rb
|
175
|
+
- features/step_definitions/ascii-data-qdiff_steps.rb
|
176
|
+
- features/step_definitions/encoding_decoding_steps.rb
|
177
|
+
- features/step_definitions/plugins_steps.rb
|
178
|
+
- features/step_definitions/record_recognition_steps.rb
|
179
|
+
- features/support/env.rb
|
180
|
+
- spec/ascii-data-tools/configuration_printer_spec.rb
|
181
|
+
- spec/ascii-data-tools/configuration_spec.rb
|
182
|
+
- spec/ascii-data-tools/discover_spec.rb
|
183
|
+
- spec/ascii-data-tools/filter/diffing_spec.rb
|
184
|
+
- spec/ascii-data-tools/filter_spec.rb
|
185
|
+
- spec/ascii-data-tools/formatting_spec.rb
|
186
|
+
- spec/ascii-data-tools/record_spec.rb
|
187
|
+
- spec/ascii-data-tools/record_type/builder_spec.rb
|
188
|
+
- spec/ascii-data-tools/record_type/decoder_spec.rb
|
189
|
+
- spec/ascii-data-tools/record_type/encoder_spec.rb
|
190
|
+
- spec/ascii-data-tools/record_type/field_spec.rb
|
191
|
+
- spec/ascii-data-tools/record_type/normaliser_spec.rb
|
192
|
+
- spec/ascii-data-tools/record_type_spec.rb
|
193
|
+
- spec/filter_helper.rb
|
194
|
+
- spec/record_type_helpers.rb
|
195
|
+
- spec/spec.opts
|
196
|
+
- spec/spec_helper.rb
|