table_structure 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5e9bf971b78fd68cbce2023d18033fcd397b1be4de329a5ba616df1c77baa62c
4
- data.tar.gz: ad9e3d5a67d51239038d7fd711602fc4b518188adfd5fd5d1b1a67c3c3e703cd
3
+ metadata.gz: de3f99fed2d954963668ab10f28a330023e28e8a8c41039544c6f961bb3ab539
4
+ data.tar.gz: 0e012e4fbcb5fff523418b6c3bfd3762fb3ee53460d4ddefc8ae91cf3a68a950
5
5
  SHA512:
6
- metadata.gz: b5f93b81fcff429a3899be7ce8e6a0b67bd638cfefea73e425097a08fcc5ddccee031c4f9c112c491cd4cf2dc1e761e3deaefbc1ba12bbab80a5b6ad37c88946
7
- data.tar.gz: 36b8fa006be7530c21c747dc4c931e662161f60eac6e3c8b8a5dabe429c5bd5ce7bd8837dee05311fcba9f7b8e95fd4305be798e71ed38f5a512b459d3d535d8
6
+ metadata.gz: b913207c2199fe5436fca4e4b894443fe6aa0d07f9b78d7c76da11ad752a45432340baed1feb07176088e95ebc56f2ac8917e2a66f4523dfcb45fbbd6fd91dd6
7
+ data.tar.gz: c96ad294ebc1f7f0e8d23ef3de3b17cdb9fd4546792ce3b8bba80d9d9ae1305c00155cf9f19623efa4b40b2723f71d01a0575c60cc1fbd42d4842a29c7c9256c
data/.gitignore CHANGED
@@ -9,3 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
+
13
+ .ruby-version
data/.travis.yml CHANGED
@@ -1,10 +1,11 @@
1
1
  ---
2
- sudo: false
2
+ os: linux
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
+ - 2.7
6
7
  - 2.6
7
8
  - 2.5
8
9
  - 2.4
9
10
  - 2.3
10
- before_install: gem install bundler -v 1.17.3
11
+ before_install: gem install bundler:2.0.2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.3.14
2
+ Changes:
3
+ - Support Ruby 2.7.
4
+
1
5
  # 0.3.13
2
6
  Changes:
3
7
  - Minor improvements.
data/Gemfile.lock CHANGED
@@ -1,35 +1,35 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- table_structure (0.3.13)
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 (10.5.0)
11
- rspec (3.8.0)
12
- rspec-core (~> 3.8.0)
13
- rspec-expectations (~> 3.8.0)
14
- rspec-mocks (~> 3.8.0)
15
- rspec-core (3.8.2)
16
- rspec-support (~> 3.8.0)
17
- rspec-expectations (3.8.4)
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.8.0)
20
- rspec-mocks (3.8.1)
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.8.0)
23
- rspec-support (3.8.2)
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 (~> 1.17)
30
- rake (~> 10.0)
31
- rspec (~> 3.0)
29
+ bundler
30
+ rake
31
+ rspec
32
32
  table_structure!
33
33
 
34
34
  BUNDLED WITH
35
- 1.17.3
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, 'First argument must be either Schema or Writer.'
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
@@ -5,6 +5,7 @@ module TableStructure
5
5
  module DSL
6
6
  module Option
7
7
  def option(name, value)
8
+ warn "[TableStructure] The use of `option` DSL has been deprecated. #{caller_locations(1, 1)}"
8
9
  options[name] = value
9
10
  nil
10
11
  end
@@ -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
- DEFAULT_OPTIONS = {
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
- }.freeze
24
-
25
- def_delegators :@table_structure_schema_definition_, :create_table
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 = DEFAULT_OPTIONS.merge(self.class.options).merge(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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TableStructure
4
- VERSION = '0.3.13'
4
+ VERSION = '0.3.14'
5
5
  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, 'Items is not enumerable.'
43
+ raise ::TableStructure::Error, "Must be enumerable. #{items}"
44
44
  end
45
45
  end
46
46
  end
@@ -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', '~> 1.17'
28
- spec.add_development_dependency 'rake', '~> 10.0'
29
- spec.add_development_dependency 'rspec', '~> 3.0'
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.13
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-01 00:00:00.000000000 Z
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: '1.17'
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: '1.17'
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: '10.0'
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: '10.0'
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: '3.0'
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: '3.0'
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.3
116
+ rubygems_version: 3.0.6
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: Generates and outputs table structured data.