table_format 0.0.5 → 0.0.6

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: cc7a2457aeea59874ff842029a0ddb07612b2ea9d4b933c758ad65ee5e6898cf
4
- data.tar.gz: 3cd187d8d8b08a9a1be678a1cb0c00f4f1fca434655037cbd4a1c354af790e2c
3
+ metadata.gz: 94481d8db1ce663a1d86a8b92d43d29e45992f2fd9afd7152e744b110c1e823d
4
+ data.tar.gz: cb027fdf6cc09d6881acfc32185532812de50f78cda8f443de7cee231fef49c7
5
5
  SHA512:
6
- metadata.gz: b73b71faba2c2ab0725d46dcfc7a1a199d4c88d5ed400332334e53bf0dd89f9862426fbbba631703ca3ba29006b76c129ada2352b6f032559af1fdcc640151d1
7
- data.tar.gz: cdfc9c695aa40bdeadba4fb29674fd3c5f3fc9d3ddc41c22462d738b15eac59b0cd1f3e3c41ec37818df6d3ce453929cd1c13eecbf4d1c17f31037156c450a1b
6
+ metadata.gz: 024e3f0118c12b8b7378a84cf496ab3029715e7bd22b084f6e71aeacb7f5ace11a2ab63c3c43580a01b7faf1261de3bbd06c00c569c4a6223cc233517e16d67e
7
+ data.tar.gz: 6df8c7bb4cfdba147cac365776b73ba9943576912ef7a115125d95a47098a99888c215312088081b6e51c7b96469deb871644d3c5069e4c8b1b4082e639a3e3e
@@ -19,6 +19,7 @@ tp TableFormat.default_options
19
19
  # >> | intersection_both | | |
20
20
  # >> | horizon | - |
21
21
  # >> | padding | |
22
+ # >> | truncate | 256 |
22
23
  # >> | in_code | UTF-8 |
23
24
  # >> |-------------------+-------|
24
25
  # >> +-------------------+-------+
@@ -30,5 +31,6 @@ tp TableFormat.default_options
30
31
  # >> | intersection_both | + |
31
32
  # >> | horizon | - |
32
33
  # >> | padding | |
34
+ # >> | truncate | 256 |
33
35
  # >> | in_code | UTF-8 |
34
36
  # >> +-------------------+-------+
@@ -31,12 +31,10 @@ puts
31
31
  # set global options
32
32
  TableFormat.default_options.update(markdown: true)
33
33
  tp array
34
- # >> |----+-------|
35
34
  # >> | id | name |
36
- # >> |----+-------|
35
+ # >> |----|-------|
37
36
  # >> | 1 | alice |
38
37
  # >> | 2 | bob |
39
- # >> |----+-------|
40
38
  # >>
41
39
  # >> | id | name |
42
40
  # >> |----|-------|
@@ -0,0 +1,61 @@
1
+ $LOAD_PATH << '../lib'
2
+ require 'table_format'
3
+ require 'ostruct'
4
+
5
+ class C1
6
+ extend Enumerable
7
+ def self.each(&block)
8
+ [:a, :b].each(&block)
9
+ end
10
+ end
11
+
12
+ class C2
13
+ extend Enumerable
14
+ def self.each(&block)
15
+ [[:a, :b]].each(&block)
16
+ end
17
+ end
18
+
19
+ class C3
20
+ extend Enumerable
21
+ def self.each(&block)
22
+ [
23
+ {id: 1},
24
+ {id: 2},
25
+ ].each(&block)
26
+ end
27
+ end
28
+
29
+ class C4
30
+ extend Enumerable
31
+ def self.each(&block)
32
+ [
33
+ OpenStruct.new(attributes: {id: 1}),
34
+ OpenStruct.new(attributes: {id: 2}),
35
+ ].each(&block)
36
+ end
37
+ end
38
+
39
+ OpenStruct.new(attributes: {id: 1}).respond_to?(:attributes) # => true
40
+
41
+ tp C1
42
+ tp C2
43
+ tp C3
44
+ tp C4
45
+ # >> |---|
46
+ # >> | a |
47
+ # >> | b |
48
+ # >> |---|
49
+ # >> |----------|
50
+ # >> | [:a, :b] |
51
+ # >> |----------|
52
+ # >> |----|
53
+ # >> | id |
54
+ # >> |----|
55
+ # >> | 1 |
56
+ # >> | 2 |
57
+ # >> |----|
58
+ # >> |-----------------------------------|
59
+ # >> | #<OpenStruct attributes={:id=>1}> |
60
+ # >> | #<OpenStruct attributes={:id=>2}> |
61
+ # >> |-----------------------------------|
@@ -23,10 +23,16 @@ end
23
23
  Object.class_eval do
24
24
  def to_t(**options)
25
25
  case
26
- when respond_to?(:to_h)
27
- to_h.to_t(options)
28
26
  when respond_to?(:to_a)
27
+ if false
28
+ if to_a.first.respond_to?(:attributes)
29
+ return to_a.collect(&:attributes).to_t(options)
30
+ end
31
+ end
32
+
29
33
  to_a.to_t(options)
34
+ when respond_to?(:to_h)
35
+ to_h.to_t(options)
30
36
  else
31
37
  TableFormat.generate([{self.class.name => self}], {header: false}.merge(options))
32
38
  end
@@ -1,3 +1,3 @@
1
1
  module TableFormat
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -0,0 +1,69 @@
1
+ require_relative 'spec_helper'
2
+ require "ostruct"
3
+
4
+ describe TableFormat do
5
+ class C1
6
+ extend Enumerable
7
+ def self.each(&block)
8
+ [:a, :b].each(&block)
9
+ end
10
+ end
11
+
12
+ class C2
13
+ extend Enumerable
14
+ def self.each(&block)
15
+ [[:a, :b]].each(&block)
16
+ end
17
+ end
18
+
19
+ class C3
20
+ extend Enumerable
21
+ def self.each(&block)
22
+ [
23
+ {id: 1},
24
+ {id: 2},
25
+ ].each(&block)
26
+ end
27
+ end
28
+
29
+ class C4
30
+ extend Enumerable
31
+ def self.each(&block)
32
+ [
33
+ OpenStruct.new(attributes: {id: 1}),
34
+ OpenStruct.new(attributes: {id: 2}),
35
+ ].each(&block)
36
+ end
37
+ end
38
+
39
+ it do
40
+ C1.to_t.should == <<~EOT
41
+ |---|
42
+ | a |
43
+ | b |
44
+ |---|
45
+ EOT
46
+
47
+ C2.to_t.should == <<~EOT
48
+ |----------|
49
+ | [:a, :b] |
50
+ |----------|
51
+ EOT
52
+
53
+ C3.to_t.should == <<~EOT
54
+ |----|
55
+ | id |
56
+ |----|
57
+ | 1 |
58
+ | 2 |
59
+ |----|
60
+ EOT
61
+
62
+ C4.to_t.should == <<~EOT
63
+ |-----------------------------------|
64
+ | #<OpenStruct attributes={:id=>1}> |
65
+ | #<OpenStruct attributes={:id=>2}> |
66
+ |-----------------------------------|
67
+ EOT
68
+ end
69
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: table_format
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - akicho8
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-30 00:00:00.000000000 Z
11
+ date: 2019-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -113,6 +113,7 @@ files:
113
113
  - examples/0150_line_break.rb
114
114
  - examples/0160_truncate.rb
115
115
  - examples/0170_emoji.rb
116
+ - examples/0180_object_spec.rb
116
117
  - lib/table_format.rb
117
118
  - lib/table_format/core_ext.rb
118
119
  - lib/table_format/generator.rb
@@ -120,6 +121,7 @@ files:
120
121
  - lib/table_format/version.rb
121
122
  - spec/active_record_spec.rb
122
123
  - spec/core_ext_spec.rb
124
+ - spec/object_spec.rb
123
125
  - spec/spec_helper.rb
124
126
  - spec/table_format_spec.rb
125
127
  - table_format.gemspec
@@ -153,5 +155,6 @@ summary: TableFormat shows text table like emacs org-table for easy reading.
153
155
  test_files:
154
156
  - spec/active_record_spec.rb
155
157
  - spec/core_ext_spec.rb
158
+ - spec/object_spec.rb
156
159
  - spec/spec_helper.rb
157
160
  - spec/table_format_spec.rb