table_structure 0.2.0 → 0.2.1

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
  SHA256:
3
- metadata.gz: e3c3fdd974ce55df18db48df989c744dd8bc13b28ec4c754d01a815cfde31b93
4
- data.tar.gz: 624360f1775a9c3f7be02453c347adb55870b656eb0e79e6f4cb9c0c84037939
3
+ metadata.gz: 3a8c1be2513b60a1831419aa48faf9c5f326c7dc15ede46343cd9d57cac2caf3
4
+ data.tar.gz: 5dfbfbbd2589b94e7fc438422bf6b5b7f49bc9b80b594c8da4a6cccd4c13cb7a
5
5
  SHA512:
6
- metadata.gz: 044f11d274989855569f1931d98555e7f7cd153e1bc3fe271685860e310b40065bdbff5e87f576025f5401a5db9bb67f0f082d7a0798b2d8e83e040e717cbb1e
7
- data.tar.gz: 110bd8d5cf2cfb215cee9ca0806ec6cbc0ee3074a7b4c944cd1bce0ecc7e031b567e908fe9ff1b3acaed10aaae8ebee44e82f200cf0922b8effae15d4c541608
6
+ metadata.gz: 19dedd18f47cc61c9e9625f23c44cd4423f59423fdfd9906ef694241c08aa182afccd5b93c8be3b13f06ab9abd46465f2c7e959581f72dc52025ebfe1549f611
7
+ data.tar.gz: f68ac3210c804de84865e02c80e3aac5831284419e5518c28f2f31197e057eaf3da00aae21c96858b8640b391615961de4500411ae4bf4c39780c4ec6410dd46
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- table_structure (0.2.0)
4
+ table_structure (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -9,6 +9,7 @@ module TableStructure
9
9
  require 'table_structure/schema/dsl/column_converter'
10
10
  require 'table_structure/schema/dsl/column_definition'
11
11
  require 'table_structure/schema/dsl/context_builder'
12
+ require 'table_structure/schema/dsl/option'
12
13
  require 'table_structure/schema/dsl/result_builder'
13
14
  require 'table_structure/schema/definition'
14
15
  require 'table_structure/schema/definition/error'
@@ -3,14 +3,13 @@
3
3
  module TableStructure
4
4
  class Iterator
5
5
  def initialize(schema_or_writer, **options)
6
- case
7
- when schema_or_writer.is_a?(Schema)
6
+ if schema_or_writer.is_a?(Schema)
8
7
  schema = schema_or_writer
9
8
  @writer = Writer.new(schema, options)
10
- when schema_or_writer.is_a?(Writer)
9
+ elsif schema_or_writer.is_a?(Writer)
11
10
  @writer = schema_or_writer
12
11
  else
13
- raise ::TableStructure::Error.new('First argument must be either Schema or Writer.')
12
+ raise ::TableStructure::Error, 'First argument must be either Schema or Writer.'
14
13
  end
15
14
  end
16
15
 
@@ -6,14 +6,18 @@ module TableStructure
6
6
  klass.extend(DSL::ColumnConverter)
7
7
  klass.extend(DSL::ColumnDefinition)
8
8
  klass.extend(DSL::ContextBuilder)
9
+ klass.extend(DSL::Option)
9
10
  klass.extend(DSL::ResultBuilder)
10
11
  end
11
12
 
13
+ DEFAULT_OPTIONS = { result_type: :array }.freeze
14
+
12
15
  def initialize(context: nil, **options)
13
16
  column_definitions = self.class.column_definitions
14
17
  column_converters = self.class.column_converters
15
18
  result_builders = self.class.result_builders
16
19
  context = self.class.context_builders[:table].call(context)
20
+ options = DEFAULT_OPTIONS.merge(self.class.options).merge(options)
17
21
  @table_structure_schema_table_ =
18
22
  Table.new(
19
23
  column_definitions,
@@ -37,5 +41,9 @@ module TableStructure
37
41
  def column_converters
38
42
  @table_structure_schema_table_.column_converters
39
43
  end
44
+
45
+ def result_builders
46
+ @table_structure_schema_table_.result_builders
47
+ end
40
48
  end
41
49
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TableStructure
4
+ module Schema
5
+ module DSL
6
+ module Option
7
+ def option(name, value)
8
+ options[name] = value
9
+ nil
10
+ end
11
+
12
+ def options
13
+ @table_structure_schema_options__ ||= {}
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -3,12 +3,9 @@
3
3
  module TableStructure
4
4
  module Schema
5
5
  class Table
6
- DEFAULT_OPTIONS = { result_type: :array }.freeze
7
-
8
6
  attr_reader :columns, :column_converters, :result_builders
9
7
 
10
8
  def initialize(column_definitions, column_converters, result_builders, context, options)
11
- options = DEFAULT_OPTIONS.merge(options)
12
9
  @columns = build_columns(column_definitions, context, options)
13
10
  @column_converters = default_column_converters.merge(column_converters)
14
11
  @result_builders = default_result_builders(options).merge(result_builders)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TableStructure
4
- VERSION = '0.2.0'
4
+ VERSION = '0.2.1'
5
5
  end
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['jsmmr']
11
11
  spec.email = ['jsmmr@icloud.com']
12
12
 
13
- spec.summary = 'Create and output table structure data.'
14
- spec.description = 'This gem creates and outputs table structure data. Useful for creating CSV.'
13
+ spec.summary = 'Create and output table structured data.'
14
+ spec.description = 'This gem creates and outputs table structured data. Useful for creating CSV.'
15
15
  spec.homepage = 'https://github.com/jsmmr/ruby_table_structure'
16
16
  spec.license = 'MIT'
17
17
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_structure
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - jsmmr
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-22 00:00:00.000000000 Z
11
+ date: 2019-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,7 +52,7 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- description: This gem creates and outputs table structure data. Useful for creating
55
+ description: This gem creates and outputs table structured data. Useful for creating
56
56
  CSV.
57
57
  email:
58
58
  - jsmmr@icloud.com
@@ -80,6 +80,7 @@ files:
80
80
  - lib/table_structure/schema/dsl/column_converter.rb
81
81
  - lib/table_structure/schema/dsl/column_definition.rb
82
82
  - lib/table_structure/schema/dsl/context_builder.rb
83
+ - lib/table_structure/schema/dsl/option.rb
83
84
  - lib/table_structure/schema/dsl/result_builder.rb
84
85
  - lib/table_structure/schema/table.rb
85
86
  - lib/table_structure/schema/utils.rb
@@ -109,5 +110,5 @@ rubyforge_project:
109
110
  rubygems_version: 2.7.6.2
110
111
  signing_key:
111
112
  specification_version: 4
112
- summary: Create and output table structure data.
113
+ summary: Create and output table structured data.
113
114
  test_files: []