flat 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f344e2a43900f1128a70c785ff3a44c09dfafd66
4
- data.tar.gz: a1a426fb38c924d516961b4faea9ff2b4f2f7e9a
3
+ metadata.gz: 8a5de78be3005078ab631ac84a51aadf0e052925
4
+ data.tar.gz: 1360042ad4aa5b1179f4e5064bd9c7509c7a97d6
5
5
  SHA512:
6
- metadata.gz: 1720210634f493be7f44bd8cadbe7fa19940d4348da567209012007e7bc9fac6f3823a379311d517fdccb7af8c3f2cbf0954867b5cf22a0495fc9a4ea4c1eba2
7
- data.tar.gz: e954a39fe171387efbcc22fdd72699285f814a739570e9574c16f31c7e890a93df9075a70989b95f8e9a465c88834238e18b70ac0f723124f511e9aafe611399
6
+ metadata.gz: 7726ead08345447649093a88350019d001448006a82f48218ac1c9897b857533442b520b8f99bc98bf8cce2c7ee0a73f171cb3a88773f42d5f9f507f9b85b36a
7
+ data.tar.gz: 815db149f73d0a3f373441acd8c70b68b01b019127823ae8bf2ffc60683e8b30390b2b747f9da258f3f4a9e2fd2db84dad664ddb8cac193b4361747a118dc33e
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/juicyparts/flat"
14
14
  spec.license = "MIT"
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0")
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |name| name.match(/^\.|^G.*|^Rakefile$|^spec.*/) }
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  "source_code" => 'https://github.com/juicyparts/flat',
26
26
  "documentation" => 'http://rubydoc.info/github/juicyparts/flat',
27
27
  "issue_tracker" => "https://github.com/juicyparts/flat/issues",
28
+ "wiki" => "https://github.com/juicyparts/flat/wiki",
28
29
  }
29
30
 
30
31
  spec.add_runtime_dependency "extlib", "~> 0.9.0"
@@ -1,3 +1,3 @@
1
1
  module Flat #:nodoc:
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mel Riffe
@@ -186,16 +186,8 @@ executables: []
186
186
  extensions: []
187
187
  extra_rdoc_files: []
188
188
  files:
189
- - ".coveralls.yml"
190
- - ".gitignore"
191
- - ".ruby-gemset"
192
- - ".ruby-version"
193
- - ".travis.yml"
194
- - Gemfile
195
- - Guardfile
196
189
  - LICENSE.txt
197
190
  - README.md
198
- - Rakefile
199
191
  - flat.gemspec
200
192
  - lib/flat.rb
201
193
  - lib/flat/errors.rb
@@ -206,13 +198,6 @@ files:
206
198
  - lib/flat/read_operations.rb
207
199
  - lib/flat/record.rb
208
200
  - lib/flat/version.rb
209
- - spec/flat_file_helper.rb
210
- - spec/lib/flat/field_spec.rb
211
- - spec/lib/flat/file_data_spec.rb
212
- - spec/lib/flat/file_spec.rb
213
- - spec/lib/flat/record_spec.rb
214
- - spec/lib/flat_spec.rb
215
- - spec/spec_helper.rb
216
201
  homepage: https://github.com/juicyparts/flat
217
202
  licenses:
218
203
  - MIT
@@ -220,6 +205,7 @@ metadata:
220
205
  source_code: https://github.com/juicyparts/flat
221
206
  documentation: http://rubydoc.info/github/juicyparts/flat
222
207
  issue_tracker: https://github.com/juicyparts/flat/issues
208
+ wiki: https://github.com/juicyparts/flat/wiki
223
209
  post_install_message: Thanks for installing!
224
210
  rdoc_options: []
225
211
  require_paths:
@@ -240,11 +226,4 @@ rubygems_version: 2.4.1
240
226
  signing_key:
241
227
  specification_version: 4
242
228
  summary: Library to make processing Flat Flies as easy as CSV files.
243
- test_files:
244
- - spec/flat_file_helper.rb
245
- - spec/lib/flat/field_spec.rb
246
- - spec/lib/flat/file_data_spec.rb
247
- - spec/lib/flat/file_spec.rb
248
- - spec/lib/flat/record_spec.rb
249
- - spec/lib/flat_spec.rb
250
- - spec/spec_helper.rb
229
+ test_files: []
@@ -1 +0,0 @@
1
- service_name: travis-ci
data/.gitignore DELETED
@@ -1,14 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
12
- *.o
13
- *.a
14
- mkmf.log
@@ -1 +0,0 @@
1
- flat
@@ -1 +0,0 @@
1
- 2.1.2
@@ -1,15 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
-
4
- rvm:
5
- - 2.1.2
6
-
7
- script: 'bundle exec rake'
8
-
9
- notifications:
10
- email:
11
- recipients:
12
- - mriffe@gmail.com
13
- on_failure: change
14
- on_success: never
15
-
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in flat.gemspec
4
- gemspec
data/Guardfile DELETED
@@ -1,5 +0,0 @@
1
- guard :rspec, cmd: 'rspec' do
2
- watch(%r{^spec/.+_spec\.rb$})
3
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
- watch('spec/spec_helper.rb') { "spec" }
5
- end
data/Rakefile DELETED
@@ -1,18 +0,0 @@
1
- require 'rspec/core/rake_task'
2
- require 'bundler/gem_tasks'
3
- require 'rdoc/task'
4
-
5
- # Default directory to look in is `/specs`
6
- # Run with `rake spec`
7
- RSpec::Core::RakeTask.new(:spec) do |task|
8
- task.rspec_opts = ['--color', '--format', 'documentation']
9
- end
10
-
11
- task :default => :spec
12
-
13
- RDoc::Task.new(:rdoc => "doc", :clobber_rdoc => "doc:clean", :rerdoc => "doc:force") do |rdoc|
14
- rdoc.rdoc_dir = 'doc'
15
- rdoc.title = 'Flat Library Documentation'
16
- rdoc.main = "README.md"
17
- rdoc.rdoc_files.include("README.md", "lib/**/*.rb")
18
- end
@@ -1,27 +0,0 @@
1
- # This file contains Flat::File definitions that can be used to test the
2
- # various features and functions of Flat.
3
-
4
- class PersonFile < Flat::File
5
-
6
- EXAMPLE_FILE = <<-EOF
7
- 1234567890123456789012345678901234567890
8
- f_name l_name age pad---
9
- Captain Stubing 4 xxx
10
- No Phone 5 xxx
11
- Has Phone 11111111116 xxx
12
-
13
- EOF
14
-
15
- add_field :f_name, :width => 10
16
-
17
- add_field :l_name, :width => 10, :aggressive => true
18
-
19
- add_field :phone, :width => 10
20
-
21
- add_field :age, :width => 4, :filter => proc { |v| v.to_i }, :formatter => proc { |v| v.to_f.to_s }
22
-
23
- pad :auto_name, :width => 3
24
-
25
- add_field :ignore, :width => 3, :padding => true
26
-
27
- end
@@ -1,126 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Field do
4
-
5
- let(:flat_file) { Flat::File }
6
-
7
- describe Field::Definition do
8
- describe 'instance creation' do
9
- it 'should add a new field definition given minimum required information' do
10
- # Minimum required fields are not enforced, just 'nice to have'.
11
- field = flat_file.add_field :name, width: 5
12
- expect( field ).to be_an_instance_of( Field::Definition )
13
- expect( field.parent ).to eq( flat_file )
14
- expect( field.name ).to eq( :name )
15
- expect( field.width ).to eq( 5 )
16
- expect( field.padding? ).to be false
17
- expect( field.aggressive? ).to be false
18
- expect( field.filters ).to be_empty
19
- expect( field.formatters ).to be_empty
20
- expect( field.map_in_proc ).to be_nil
21
- end
22
- end
23
- end # => describe Field::Definition
24
-
25
- describe 'add_field' do
26
- before do
27
- flat_file.reset_file_data
28
- end
29
-
30
- it 'adds 1 field to flat file' do
31
- flat_file.add_field :test, width: 20
32
- expect( flat_file.fields.size ).to eq( 1 )
33
- expect( flat_file.width ).to eq( 20 )
34
- expect( flat_file.pack_format ).to eq( 'A20' )
35
- end
36
-
37
- it 'adds 2 fields to flat file' do
38
- flat_file.add_field :test, width: 17
39
- flat_file.add_field :test, width: 23
40
- expect( flat_file.fields.size ).to eq( 2 )
41
- expect( flat_file.width ).to eq( 40 )
42
- expect( flat_file.pack_format ).to eq( 'A17A23' )
43
- end
44
-
45
- it 'adds a field via a block' do
46
- # Method A: specifying field name inside the block
47
- flat_file.add_field do |field|
48
- field.name = :test
49
- field.width = 15
50
- end
51
-
52
- # Method B: specifying field name outside the block
53
- flat_file.add_field :test2 do |field|
54
- field.width = 15
55
- end
56
-
57
- field = flat_file.fields.last
58
- expect( field.name ).to eq( :test2 )
59
-
60
- expect( flat_file.fields.size ).to eq( 2)
61
- expect( flat_file.width ).to eq( 30 )
62
- expect( flat_file.pack_format ).to eq( 'A15A15' )
63
- end
64
- end
65
-
66
- describe 'pad' do
67
- before do
68
- flat_file.reset_file_data
69
- end
70
-
71
- it 'adds a named pad field to flat file' do
72
- field = flat_file.pad :test, width: 12
73
- expect( field.padding? ).to be true
74
- expect( field.name ).to eq( :test )
75
- expect( flat_file.fields.size ).to eq( 1 )
76
- expect( flat_file.width ).to eq( 12 )
77
- expect( flat_file.pack_format ).to eq( 'A12' )
78
- end
79
-
80
- it 'adds an auto named pad field to flat file' do
81
- field = flat_file.pad :autoname, width: 3
82
- expect( field.padding? ).to be true
83
- expect( field.name ).to eq( :pad_1 )
84
- expect( flat_file.fields.size ).to eq( 1 )
85
- expect( flat_file.width ).to eq( 3 )
86
- expect( flat_file.pack_format ).to eq( 'A3' )
87
- end
88
- end
89
-
90
- describe 'filter' do
91
- before do
92
- flat_file.reset_file_data
93
- end
94
-
95
- it 'should not filter when none specified' do
96
- field = flat_file.add_field :test
97
- value = '123 '
98
- filtered_value = field.filter value
99
- expect( filtered_value ).to eq( '123 ' )
100
- end
101
-
102
- it 'should filter for a specified block' do
103
- field = flat_file.add_field :test, filter: ->(v) { v.strip }
104
- value = '123 '
105
- filtered_value = field.filter value
106
- expect( filtered_value ).to eq( '123' )
107
- end
108
-
109
- it 'should filter for a Filter Class' do
110
- field = flat_file.add_field :test, filter: TestFilter
111
- value = 'test'
112
- filtered_value = field.filter value
113
- expect( filtered_value ).to eq( 'TEST' )
114
- end
115
-
116
- it 'should filter for an instance of a Filter Class' do
117
- test_filter = TestFilter.new
118
- field = flat_file.add_field :test, filter: test_filter
119
- value = 'AbCd'
120
- filtered_value = field.filter value
121
- expect( filtered_value ).to eq( 'dCbA' )
122
- end
123
-
124
- end
125
-
126
- end
@@ -1,46 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FileData do
4
-
5
- let(:flat_file) { Flat::File }
6
-
7
- describe 'flat_file_data' do
8
- it 'should be a Hash' do
9
- expect( flat_file.flat_file_data ).to be_an_instance_of( Hash )
10
- end
11
-
12
- it 'should have 4 keys' do
13
- keys = flat_file.flat_file_data.keys
14
- expect( keys.size ).to eq( 4 )
15
- expect( keys ).to include( :width )
16
- expect( keys ).to include( :pack_format )
17
- expect( keys ).to include( :fields )
18
- end
19
- end
20
-
21
- describe 'width' do
22
- before do
23
- flat_file.reset_file_data
24
- end
25
-
26
- it 'has a convenience accessor' do
27
- expect( flat_file.flat_file_data[:width] ).to eq( flat_file.width )
28
- end
29
-
30
- it 'defaults to 0' do
31
- expect( flat_file.width ).to eq( 0 )
32
- end
33
-
34
- it 'can be changed' do
35
- flat_file.width += 1
36
- expect( flat_file.width ).to eq( 1 )
37
-
38
- flat_file.width -= 2
39
- expect( flat_file.width ).to eq( -1 )
40
-
41
- flat_file.width = 12
42
- expect( flat_file.width ).to eq( 12 )
43
- end
44
- end
45
-
46
- end
@@ -1,5 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Flat::File do
4
-
5
- end
@@ -1,40 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Record do
4
-
5
- let(:flat_file) { Flat::File }
6
-
7
- describe Record::Definition do
8
- before do
9
- flat_file.reset_file_data
10
- end
11
-
12
- it 'creates a new instance' do
13
- record = Record::Definition.new flat_file, {}, 12
14
- expect( record.line_number ).to eq( 12 )
15
- expect( record.attributes ).to be_empty
16
- end
17
-
18
- it 'has a getter per defined field' do
19
- flat_file.add_field :field, width: 25
20
- record = Record::Definition.new flat_file, {field: 'Field'}
21
- expect( record.field ).to eq( 'Field' )
22
- end
23
-
24
- it 'has a setter per defined field' do
25
- flat_file.add_field :field, width: 25
26
- record = Record::Definition.new flat_file, {field: 'Field'}
27
- record.field = record.field.upcase
28
- expect( record.field ).to eq( 'FIELD' )
29
- end
30
-
31
- it 'throws an error for an unknown attribute' do
32
- skip 'not capturing raised error correctly'
33
-
34
- record = Record::Definition.new flat_file, {}, 12
35
- expect( record.field ).to raise_error( Errors::FlatFileError )
36
- end
37
-
38
- end # => describe Record::Definition
39
-
40
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
- require 'flat_file_helper'
3
-
4
- describe Flat do
5
-
6
- describe 'Version' do
7
- it 'should verify current gem version' do
8
- expect(Flat::VERSION).to eq('0.1.1')
9
- end
10
- end
11
-
12
- describe 'Operations' do
13
- let(:person_file) { PersonFile.new }
14
- let(:data) { PersonFile::EXAMPLE_FILE }
15
- let(:lines) { data.split("\n") }
16
- let(:stream) { StringIO.new(data) }
17
-
18
- it 'reads data from a flat file' do
19
- count = 0
20
- person_file.each_record( stream ) do |x, y|
21
- count += 1
22
- end
23
- expect( count ).to eq( lines.size )
24
- end
25
-
26
- end # => describe 'Operations'
27
-
28
- end
@@ -1,17 +0,0 @@
1
- # Setup the RSpec testing environment for Flat:
2
- #
3
- require 'coveralls'
4
- Coveralls.wear!
5
-
6
- require 'pry'
7
- require 'flat'
8
-
9
- class TestFilter
10
- def self.filter(value)
11
- value.upcase
12
- end
13
-
14
- def filter(value)
15
- value.reverse
16
- end
17
- end