tbpgr_utils 0.0.77 → 0.0.78

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.
data/README.md CHANGED
@@ -101,6 +101,7 @@ Or install it yourself as:
101
101
  |[TbpgrUtils Object#unless_guard](#objectunless_guard) |data type check for unless_guard |
102
102
  |[SimpleTournament](#simpletournament) |simple tournament |
103
103
  |[TbpgrUtils String#ascii1_other2_size](#stringascii1_other2_size) |count string size. ascii => count1, not ascii => count2 |
104
+ |[TbpgrUtils String#ascii_unicode_table](#stringascii_unicode_table) |get ascii_unicode_table |
104
105
  |[TbpgrUtils String#comma_to_a](#stringcomma_to_a) |comma-format string to array |
105
106
  |[TbpgrUtils String#hyphen_to_a](#stringhyphen_to_a) |hyphen-format string to array |
106
107
  |[TbpgrUtils String#is_meta_variable?](#stringis_meta_variable) |is meta variable. |
@@ -2344,6 +2345,23 @@ require 'tbpgr_utils'
2344
2345
 
2345
2346
  [back to list](#list)
2346
2347
 
2348
+ ### String#ascii_unicode_table
2349
+ ~~~ruby
2350
+ require 'tbpgr_utils'
2351
+
2352
+ 'aあb'.ascii_unicode_table
2353
+ ~~~
2354
+
2355
+ result
2356
+ ~~~
2357
+ |char|ASCII|ascii2 |Unicode|
2358
+ | a | 97 |1100001| -- |
2359
+ | あ | -- | -- |0x3042 |
2360
+ | b | 98 |1100010| -- |
2361
+ ~~~
2362
+
2363
+ [back to list](#list)
2364
+
2347
2365
  ### String#comma_to_a
2348
2366
  space commma case
2349
2367
 
@@ -2739,6 +2757,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
2739
2757
  https://github.com/tbpgr/tbpgr_utils_snippets
2740
2758
 
2741
2759
  ## History
2760
+ * version 0.0.78 : add String#ascii_unicode_table
2742
2761
  * version 0.0.77 : add String#is_meta_variable?, Symbol#is_meta_variable?
2743
2762
  * version 0.0.76 : add EvalHelper#attr_init_class_code, Numeric#is_ascii?, String#ascii1_other2_size
2744
2763
  * version 0.0.75 : add Object#method_nameable?
@@ -0,0 +1,40 @@
1
+ # encoding: utf-8
2
+ require 'open_classes/numeric/is_ascii'
3
+ require 'open_classes/string/justify_table'
4
+ require 'open_classes/string/ascii1_other2_size'
5
+
6
+ # String
7
+ class String
8
+ # get ascii_unicode_table
9
+ #
10
+ # === Example
11
+ #
12
+ # input
13
+ # 'aあb'
14
+ #
15
+ # result
16
+ #
17
+ # |char|ASCII|ascii2 |Unicode|
18
+ # | a | 97 |1100001| -- |
19
+ # | あ | -- | -- |0x3042 |
20
+ # | b | 98 |1100010| -- |
21
+ #
22
+ def ascii_unicode_table
23
+ ret = ['|char|ASCII|ascii2|Unicode|']
24
+ chars.each do |c|
25
+ each_ret = []
26
+ each_ret << "|#{c}"
27
+ if c.ord.is_ascii?
28
+ each_ret << c.ord
29
+ each_ret << c.ord.to_s(2)
30
+ each_ret << '--'
31
+ else
32
+ each_ret << '--'
33
+ each_ret << '--'
34
+ each_ret << "0x#{c.ord.to_s(16)}"
35
+ end
36
+ ret << each_ret.join('|') + '|'
37
+ end
38
+ (ret.join("\n") + "\n").justify_table(:center)
39
+ end
40
+ end
@@ -17,11 +17,11 @@ class String
17
17
  # |eiichiro |oda |
18
18
  # |akira |toriyama |
19
19
  # |yusei |matsui |
20
- def justify_table
20
+ def justify_table(position = :left)
21
21
  return self if self.empty?
22
22
  max_sizes = get_column_maxes
23
23
  return self if max_sizes.nil?
24
- justify_lines max_sizes
24
+ justify_lines max_sizes, position
25
25
  end
26
26
 
27
27
  private
@@ -36,20 +36,32 @@ class String
36
36
  max_sizes
37
37
  end
38
38
 
39
- def justify_lines(max_sizes)
39
+ def justify_lines(max_sizes, position)
40
40
  ret = []
41
41
  each_line do |line|
42
42
  columns = get_columuns(line)
43
43
  line_ret = []
44
44
  columns.each_with_index do |column, cnt|
45
45
  diff = column.ascii1_other2_size - column.size
46
- line_ret << column.ljust(max_sizes[cnt] - diff)
46
+ line_ret << justified_column(column, max_sizes[cnt], diff, position)
47
47
  end
48
48
  ret << "|#{line_ret.join('|')}|"
49
49
  end
50
50
  ret.join("\n") + "\n"
51
51
  end
52
52
 
53
+ def justified_column(column, max_size, diff, position)
54
+ pos = max_size - diff
55
+ case position
56
+ when :left
57
+ column.ljust(pos)
58
+ when :right
59
+ column.rjust(pos)
60
+ when :center
61
+ column.center(pos)
62
+ end
63
+ end
64
+
53
65
  def get_columuns(line)
54
66
  line.split('|')[1..-2]
55
67
  end
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'open_classes/string/ascii1_other2_size'
3
+ require 'open_classes/string/ascii_unicode_table'
3
4
  require 'open_classes/string/comma_to_a'
4
5
  require 'open_classes/string/hyphen_to_a'
5
6
  require 'open_classes/string/is_meta_variable'
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.77'
5
+ VERSION = '0.0.78'
6
6
  end
@@ -0,0 +1,48 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'open_classes/string/ascii_unicode_table'
4
+
5
+ describe String do
6
+ context :ascii_unicode_table do
7
+ cases = [
8
+ {
9
+ case_no: 1,
10
+ case_title: '> case',
11
+ input: 'aあb',
12
+ expected: <<-EOS
13
+ |char|ASCII|ascii2 |Unicode|
14
+ | a | 97 |1100001| -- |
15
+ | あ | -- | -- |0x3042 |
16
+ | b | 98 |1100010| -- |
17
+ EOS
18
+ },
19
+ ]
20
+
21
+ cases.each do |c|
22
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
23
+ begin
24
+ case_before c
25
+
26
+ # -- given --
27
+ # nothing
28
+
29
+ # -- when --
30
+ actual = c[:input].ascii_unicode_table
31
+
32
+ # -- then --
33
+ expect(actual).to eq(c[:expected])
34
+ ensure
35
+ case_after c
36
+ end
37
+ end
38
+
39
+ def case_before(c)
40
+ # implement each case before
41
+ end
42
+
43
+ def case_after(c)
44
+ # implement each case after
45
+ end
46
+ end
47
+ end
48
+ end
@@ -38,6 +38,13 @@ csv_column2_1, csv_column2_2
38
38
  |yusei |matsui |
39
39
  EOS
40
40
 
41
+ SAMPLE_JUSTIFIED_TABLE5 = <<-EOS
42
+ |* firstあ name|* family いいname|
43
+ | eiichiro| oda|
44
+ | akira| toriyama|
45
+ | yusei| matsui|
46
+ EOS
47
+
41
48
  cases = [
42
49
  {
43
50
  case_no: 1,
@@ -63,6 +70,13 @@ csv_column2_1, csv_column2_2
63
70
  input: SAMPLE_TABLE4,
64
71
  expected: SAMPLE_JUSTIFIED_TABLE4,
65
72
  },
73
+ {
74
+ case_no: 5,
75
+ case_title: 'ascii/other code mix valid justify case(right)',
76
+ input: SAMPLE_TABLE4,
77
+ position: :right,
78
+ expected: SAMPLE_JUSTIFIED_TABLE5,
79
+ },
66
80
  ]
67
81
 
68
82
  cases.each do |c|
@@ -74,7 +88,11 @@ csv_column2_1, csv_column2_2
74
88
  # nothing
75
89
 
76
90
  # -- when --
77
- actual = c[:input].justify_table
91
+ if (c[:position])
92
+ actual = c[:input].justify_table c[:position]
93
+ else
94
+ actual = c[:input].justify_table
95
+ end
78
96
 
79
97
  # -- then --
80
98
  expect(actual).to eq(c[:expected])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbpgr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.77
4
+ version: 0.0.78
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-25 00:00:00.000000000 Z
12
+ date: 2014-03-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &25548636 !ruby/object:Gem::Requirement
16
+ requirement: &22382532 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 4.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *25548636
24
+ version_requirements: *22382532
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &25548348 !ruby/object:Gem::Requirement
27
+ requirement: &22382244 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *25548348
35
+ version_requirements: *22382244
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &25548120 !ruby/object:Gem::Requirement
38
+ requirement: &22382016 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *25548120
46
+ version_requirements: *22382016
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &25547796 !ruby/object:Gem::Requirement
49
+ requirement: &22381692 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.14.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *25547796
57
+ version_requirements: *22381692
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &25547496 !ruby/object:Gem::Requirement
60
+ requirement: &22381392 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *25547496
68
+ version_requirements: *22381392
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp
@@ -157,6 +157,7 @@ files:
157
157
  - lib/open_classes/object/to_bool.rb
158
158
  - lib/open_classes/string.rb
159
159
  - lib/open_classes/string/ascii1_other2_size.rb
160
+ - lib/open_classes/string/ascii_unicode_table.rb
160
161
  - lib/open_classes/string/comma_to_a.rb
161
162
  - lib/open_classes/string/heading_helper.rb
162
163
  - lib/open_classes/string/hyphen_to_a.rb
@@ -246,6 +247,7 @@ files:
246
247
  - spec/open_classes/object/null_spec.rb
247
248
  - spec/open_classes/object/to_bool_spec.rb
248
249
  - spec/open_classes/string/ascii1_other2_size_spec.rb
250
+ - spec/open_classes/string/ascii_unicode_table_spec.rb
249
251
  - spec/open_classes/string/comma_to_a_spec.rb
250
252
  - spec/open_classes/string/hyphen_to_a_spec.rb
251
253
  - spec/open_classes/string/is_meta_variable_spec.rb
@@ -358,6 +360,7 @@ test_files:
358
360
  - spec/open_classes/object/null_spec.rb
359
361
  - spec/open_classes/object/to_bool_spec.rb
360
362
  - spec/open_classes/string/ascii1_other2_size_spec.rb
363
+ - spec/open_classes/string/ascii_unicode_table_spec.rb
361
364
  - spec/open_classes/string/comma_to_a_spec.rb
362
365
  - spec/open_classes/string/hyphen_to_a_spec.rb
363
366
  - spec/open_classes/string/is_meta_variable_spec.rb