table_structure 0.3.13 → 0.3.14
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 +4 -4
- data/.gitignore +2 -0
- data/.travis.yml +3 -2
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +17 -17
- data/lib/table_structure/iterator.rb +4 -4
- data/lib/table_structure/schema/definition/compiler.rb +2 -2
- data/lib/table_structure/schema/dsl/option.rb +1 -0
- data/lib/table_structure/schema.rb +24 -11
- data/lib/table_structure/version.rb +1 -1
- data/lib/table_structure/writer.rb +2 -2
- data/table_structure.gemspec +3 -3
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de3f99fed2d954963668ab10f28a330023e28e8a8c41039544c6f961bb3ab539
|
4
|
+
data.tar.gz: 0e012e4fbcb5fff523418b6c3bfd3762fb3ee53460d4ddefc8ae91cf3a68a950
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b913207c2199fe5436fca4e4b894443fe6aa0d07f9b78d7c76da11ad752a45432340baed1feb07176088e95ebc56f2ac8917e2a66f4523dfcb45fbbd6fd91dd6
|
7
|
+
data.tar.gz: c96ad294ebc1f7f0e8d23ef3de3b17cdb9fd4546792ce3b8bba80d9d9ae1305c00155cf9f19623efa4b40b2723f71d01a0575c60cc1fbd42d4842a29c7c9256c
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
table_structure (0.3.
|
4
|
+
table_structure (0.3.14)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
diff-lcs (1.3)
|
10
|
-
rake (
|
11
|
-
rspec (3.
|
12
|
-
rspec-core (~> 3.
|
13
|
-
rspec-expectations (~> 3.
|
14
|
-
rspec-mocks (~> 3.
|
15
|
-
rspec-core (3.
|
16
|
-
rspec-support (~> 3.
|
17
|
-
rspec-expectations (3.
|
10
|
+
rake (13.0.1)
|
11
|
+
rspec (3.9.0)
|
12
|
+
rspec-core (~> 3.9.0)
|
13
|
+
rspec-expectations (~> 3.9.0)
|
14
|
+
rspec-mocks (~> 3.9.0)
|
15
|
+
rspec-core (3.9.0)
|
16
|
+
rspec-support (~> 3.9.0)
|
17
|
+
rspec-expectations (3.9.0)
|
18
18
|
diff-lcs (>= 1.2.0, < 2.0)
|
19
|
-
rspec-support (~> 3.
|
20
|
-
rspec-mocks (3.
|
19
|
+
rspec-support (~> 3.9.0)
|
20
|
+
rspec-mocks (3.9.0)
|
21
21
|
diff-lcs (>= 1.2.0, < 2.0)
|
22
|
-
rspec-support (~> 3.
|
23
|
-
rspec-support (3.
|
22
|
+
rspec-support (~> 3.9.0)
|
23
|
+
rspec-support (3.9.0)
|
24
24
|
|
25
25
|
PLATFORMS
|
26
26
|
ruby
|
27
27
|
|
28
28
|
DEPENDENCIES
|
29
|
-
bundler
|
30
|
-
rake
|
31
|
-
rspec
|
29
|
+
bundler
|
30
|
+
rake
|
31
|
+
rspec
|
32
32
|
table_structure!
|
33
33
|
|
34
34
|
BUNDLED WITH
|
35
|
-
|
35
|
+
2.0.2
|
@@ -5,16 +5,16 @@ module TableStructure
|
|
5
5
|
def initialize(schema_or_writer, **options)
|
6
6
|
if schema_or_writer.is_a?(Schema)
|
7
7
|
schema = schema_or_writer
|
8
|
-
@writer = Writer.new(schema, options)
|
8
|
+
@writer = Writer.new(schema, **options)
|
9
9
|
elsif schema_or_writer.is_a?(Writer)
|
10
10
|
@writer = schema_or_writer
|
11
11
|
else
|
12
|
-
raise ::TableStructure::Error,
|
12
|
+
raise ::TableStructure::Error, "Must be either a schema or a writer. #{schema_or_writer}"
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
def iterate(items, **options)
|
17
|
-
Enumerator.new { |y| @writer.write(items, to: y, **options) }
|
16
|
+
def iterate(items, **options, &block)
|
17
|
+
Enumerator.new { |y| @writer.write(items, to: y, **options, &block) }
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -35,8 +35,8 @@ module TableStructure
|
|
35
35
|
next if Utils.evaluate_callable(omitted, context)
|
36
36
|
|
37
37
|
definition = evaluate_attrs(definition, context)
|
38
|
-
validator.validate(definition)
|
39
|
-
definition[:size] = determine_size(definition)
|
38
|
+
validator.validate(**definition)
|
39
|
+
definition[:size] = determine_size(**definition)
|
40
40
|
definition
|
41
41
|
elsif Utils.schema_instance?(definition)
|
42
42
|
definition
|
@@ -1,11 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'forwardable'
|
4
|
-
|
5
3
|
module TableStructure
|
6
4
|
module Schema
|
7
|
-
extend Forwardable
|
8
|
-
|
9
5
|
def self.included(klass)
|
10
6
|
klass.extend(DSL::ColumnConverter)
|
11
7
|
klass.extend(DSL::ColumnDefinition)
|
@@ -14,22 +10,35 @@ module TableStructure
|
|
14
10
|
klass.extend(DSL::ResultBuilder)
|
15
11
|
end
|
16
12
|
|
17
|
-
|
13
|
+
def initialize(
|
14
|
+
name: self.class.name,
|
15
|
+
context: nil,
|
18
16
|
name_prefix: nil,
|
19
17
|
name_suffix: nil,
|
20
18
|
key_prefix: nil,
|
21
19
|
key_suffix: nil,
|
22
|
-
nil_definitions_ignored: false
|
23
|
-
|
24
|
-
|
25
|
-
|
20
|
+
nil_definitions_ignored: false,
|
21
|
+
**deprecated_options
|
22
|
+
)
|
23
|
+
unless deprecated_options.empty?
|
24
|
+
caller_location = caller_locations(1, 1)
|
25
|
+
deprecated_options.keys.each do |k|
|
26
|
+
warn "[TableStructure] Specify #{k} option on the writer or the iterator. #{caller_location}"
|
27
|
+
end
|
28
|
+
end
|
26
29
|
|
27
|
-
def initialize(context: nil, name: self.class.name, **options)
|
28
30
|
column_definitions = [].concat(self.class.column_definitions)
|
29
31
|
context_builders = {}.merge!(self.class.context_builders)
|
30
32
|
column_converters = {}.merge!(self.class.column_converters)
|
31
33
|
result_builders = {}.merge!(self.class.result_builders)
|
32
|
-
options =
|
34
|
+
options = {
|
35
|
+
name_prefix: name_prefix,
|
36
|
+
name_suffix: name_suffix,
|
37
|
+
key_prefix: key_prefix,
|
38
|
+
key_suffix: key_suffix,
|
39
|
+
nil_definitions_ignored: nil_definitions_ignored
|
40
|
+
}.merge!(self.class.options).merge!(deprecated_options)
|
41
|
+
|
33
42
|
@table_structure_schema_definition_ =
|
34
43
|
Definition.new(
|
35
44
|
name,
|
@@ -41,5 +50,9 @@ module TableStructure
|
|
41
50
|
options
|
42
51
|
)
|
43
52
|
end
|
53
|
+
|
54
|
+
def create_table(**options, &block)
|
55
|
+
@table_structure_schema_definition_.create_table(**options, &block)
|
56
|
+
end
|
44
57
|
end
|
45
58
|
end
|
@@ -15,7 +15,7 @@ module TableStructure
|
|
15
15
|
|
16
16
|
def write(items, to:, **options)
|
17
17
|
options = @options.merge(options)
|
18
|
-
@schema.create_table(options) do |table|
|
18
|
+
@schema.create_table(**options) do |table|
|
19
19
|
unless options[:header_omitted]
|
20
20
|
header = table.header(
|
21
21
|
context: options[:header_context]
|
@@ -40,7 +40,7 @@ module TableStructure
|
|
40
40
|
warn "[TableStructure] Use `Enumerator` to wrap items instead of `lambda`. The use of `lambda` has been deprecated. #{items}"
|
41
41
|
Enumerator.new { |y| items.call(y) }
|
42
42
|
else
|
43
|
-
raise ::TableStructure::Error,
|
43
|
+
raise ::TableStructure::Error, "Must be enumerable. #{items}"
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/table_structure.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
|
27
|
-
spec.add_development_dependency 'bundler'
|
28
|
-
spec.add_development_dependency 'rake'
|
29
|
-
spec.add_development_dependency 'rspec'
|
27
|
+
spec.add_development_dependency 'bundler'
|
28
|
+
spec.add_development_dependency 'rake'
|
29
|
+
spec.add_development_dependency 'rspec'
|
30
30
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: table_structure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jsmmr
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
description: Generates and outputs table structured data. Useful to stream CSV.
|
56
56
|
email:
|
57
57
|
- jsmmr@icloud.com
|
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
|
-
rubygems_version: 3.0.
|
116
|
+
rubygems_version: 3.0.6
|
117
117
|
signing_key:
|
118
118
|
specification_version: 4
|
119
119
|
summary: Generates and outputs table structured data.
|