tty 0.0.11 → 0.1.0

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.
Files changed (265) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +1 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +16 -7
  6. data/CHANGELOG.md +6 -0
  7. data/Gemfile +18 -1
  8. data/README.md +55 -28
  9. data/Rakefile +5 -9
  10. data/images/tty.png +0 -0
  11. data/lib/tty.rb +7 -1
  12. data/lib/tty/coercer/boolean.rb +6 -9
  13. data/lib/tty/coercer/float.rb +14 -17
  14. data/lib/tty/coercer/integer.rb +14 -17
  15. data/lib/tty/coercer/range.rb +6 -7
  16. data/lib/tty/logger.rb +23 -9
  17. data/lib/tty/plugins.rb +3 -6
  18. data/lib/tty/plugins/plugin.rb +4 -7
  19. data/lib/tty/shell.rb +20 -12
  20. data/lib/tty/shell/question.rb +41 -48
  21. data/lib/tty/shell/question/modifier.rb +5 -8
  22. data/lib/tty/shell/question/validation.rb +8 -7
  23. data/lib/tty/shell/reader.rb +28 -19
  24. data/lib/tty/shell/response.rb +26 -22
  25. data/lib/tty/shell/statement.rb +13 -9
  26. data/lib/tty/shell/suggestion.rb +17 -13
  27. data/lib/tty/support/coercion.rb +5 -6
  28. data/lib/tty/support/conversion.rb +7 -6
  29. data/lib/tty/support/delegatable.rb +5 -5
  30. data/lib/tty/support/unicode.rb +3 -4
  31. data/lib/tty/support/utils.rb +1 -2
  32. data/lib/tty/system.rb +13 -6
  33. data/lib/tty/system/editor.rb +21 -18
  34. data/lib/tty/system/which.rb +3 -5
  35. data/lib/tty/table.rb +18 -22
  36. data/lib/tty/table/border.rb +2 -4
  37. data/lib/tty/table/border/ascii.rb +3 -2
  38. data/lib/tty/table/border/null.rb +1 -3
  39. data/lib/tty/table/border/row_line.rb +1 -4
  40. data/lib/tty/table/border/unicode.rb +3 -2
  41. data/lib/tty/table/border_dsl.rb +21 -17
  42. data/lib/tty/table/border_options.rb +6 -5
  43. data/lib/tty/table/column_set.rb +11 -7
  44. data/lib/tty/table/columns.rb +19 -16
  45. data/lib/tty/table/error.rb +1 -3
  46. data/lib/tty/table/field.rb +30 -12
  47. data/lib/tty/table/header.rb +18 -9
  48. data/lib/tty/table/indentation.rb +1 -3
  49. data/lib/tty/table/operation/alignment.rb +8 -9
  50. data/lib/tty/table/operation/alignment_set.rb +6 -5
  51. data/lib/tty/table/operation/escape.rb +3 -3
  52. data/lib/tty/table/operation/filter.rb +3 -4
  53. data/lib/tty/table/operation/truncation.rb +3 -3
  54. data/lib/tty/table/operation/wrapped.rb +3 -4
  55. data/lib/tty/table/operations.rb +19 -22
  56. data/lib/tty/table/orientation.rb +5 -5
  57. data/lib/tty/table/orientation/horizontal.rb +9 -6
  58. data/lib/tty/table/orientation/vertical.rb +10 -7
  59. data/lib/tty/table/padder.rb +46 -8
  60. data/lib/tty/table/renderer.rb +21 -14
  61. data/lib/tty/table/renderer/ascii.rb +6 -5
  62. data/lib/tty/table/renderer/basic.rb +18 -19
  63. data/lib/tty/table/renderer/unicode.rb +11 -5
  64. data/lib/tty/table/row.rb +36 -20
  65. data/lib/tty/table/transformation.rb +6 -5
  66. data/lib/tty/table/validatable.rb +32 -17
  67. data/lib/tty/terminal.rb +26 -42
  68. data/lib/tty/terminal/color.rb +10 -12
  69. data/lib/tty/terminal/echo.rb +4 -7
  70. data/lib/tty/terminal/home.rb +3 -10
  71. data/lib/tty/terminal/pager.rb +11 -10
  72. data/lib/tty/terminal/pager/basic.rb +3 -6
  73. data/lib/tty/terminal/pager/system.rb +2 -5
  74. data/lib/tty/text.rb +7 -10
  75. data/lib/tty/text/distance.rb +2 -4
  76. data/lib/tty/text/truncation.rb +1 -3
  77. data/lib/tty/text/wrapping.rb +1 -3
  78. data/lib/tty/vector.rb +3 -5
  79. data/lib/tty/version.rb +2 -2
  80. data/spec/spec_helper.rb +4 -11
  81. data/spec/tty/coercer/boolean/coerce_spec.rb +19 -16
  82. data/spec/tty/coercer/float/coerce_spec.rb +6 -4
  83. data/spec/tty/coercer/integer/coerce_spec.rb +5 -4
  84. data/spec/tty/coercer/range/coerce_spec.rb +12 -11
  85. data/spec/tty/logger/log_spec.rb +23 -0
  86. data/spec/tty/logger/new_spec.rb +14 -14
  87. data/spec/tty/logger/valid_level_spec.rb +6 -6
  88. data/spec/tty/plugins/find_spec.rb +4 -4
  89. data/spec/tty/plugins/load_spec.rb +4 -5
  90. data/spec/tty/plugins/plugin/load_spec.rb +10 -8
  91. data/spec/tty/plugins/plugin/new_spec.rb +7 -7
  92. data/spec/tty/shell/ask_spec.rb +6 -7
  93. data/spec/tty/shell/error_spec.rb +1 -2
  94. data/spec/tty/shell/print_table_spec.rb +1 -2
  95. data/spec/tty/shell/question/argument_spec.rb +1 -1
  96. data/spec/tty/shell/question/character_spec.rb +11 -3
  97. data/spec/tty/shell/question/default_spec.rb +3 -3
  98. data/spec/tty/shell/question/in_spec.rb +1 -1
  99. data/spec/tty/shell/question/initialize_spec.rb +8 -11
  100. data/spec/tty/shell/question/modifier/apply_to_spec.rb +8 -4
  101. data/spec/tty/shell/question/modifier/letter_case_spec.rb +4 -4
  102. data/spec/tty/shell/question/modifier/whitespace_spec.rb +5 -5
  103. data/spec/tty/shell/question/modify_spec.rb +1 -1
  104. data/spec/tty/shell/question/valid_spec.rb +4 -4
  105. data/spec/tty/shell/question/validate_spec.rb +4 -4
  106. data/spec/tty/shell/question/validation/coerce_spec.rb +2 -3
  107. data/spec/tty/shell/question/validation/valid_value_spec.rb +3 -3
  108. data/spec/tty/shell/reader/getc_spec.rb +16 -14
  109. data/spec/tty/shell/response/read_bool_spec.rb +1 -1
  110. data/spec/tty/shell/response/read_char_spec.rb +1 -2
  111. data/spec/tty/shell/response/read_date_spec.rb +1 -1
  112. data/spec/tty/shell/response/read_email_spec.rb +1 -1
  113. data/spec/tty/shell/response/read_multiple_spec.rb +3 -4
  114. data/spec/tty/shell/response/read_number_spec.rb +1 -2
  115. data/spec/tty/shell/response/read_range_spec.rb +2 -2
  116. data/spec/tty/shell/response/read_spec.rb +7 -7
  117. data/spec/tty/shell/response/read_string_spec.rb +2 -2
  118. data/spec/tty/shell/say_spec.rb +1 -1
  119. data/spec/tty/shell/statement/initialize_spec.rb +3 -3
  120. data/spec/tty/shell/suggest_spec.rb +1 -1
  121. data/spec/tty/shell/warn_spec.rb +1 -2
  122. data/spec/tty/support/coercion_spec.rb +10 -10
  123. data/spec/tty/support/conversion_spec.rb +9 -9
  124. data/spec/tty/support/delegatable_spec.rb +7 -5
  125. data/spec/tty/support/equatable_spec.rb +32 -34
  126. data/spec/tty/support/fixtures/classes.rb +4 -2
  127. data/spec/tty/system/editor/available_spec.rb +12 -12
  128. data/spec/tty/system/editor/build_spec.rb +8 -16
  129. data/spec/tty/system/editor/command_spec.rb +3 -2
  130. data/spec/tty/system/editor/executables_spec.rb +3 -3
  131. data/spec/tty/system/editor/invoke_spec.rb +10 -14
  132. data/spec/tty/system/editor/open_spec.rb +9 -7
  133. data/spec/tty/system/platform_spec.rb +32 -13
  134. data/spec/tty/system/which/which_spec.rb +9 -9
  135. data/spec/tty/system/which_spec.rb +4 -4
  136. data/spec/tty/table/access_spec.rb +24 -21
  137. data/spec/tty/table/add_row_spec.rb +2 -2
  138. data/spec/tty/table/border/ascii/rendering_spec.rb +13 -13
  139. data/spec/tty/table/border/new_spec.rb +5 -4
  140. data/spec/tty/table/border/null/rendering_spec.rb +12 -12
  141. data/spec/tty/table/border/options/from_spec.rb +2 -3
  142. data/spec/tty/table/border/options/new_spec.rb +4 -5
  143. data/spec/tty/table/border/unicode/rendering_spec.rb +10 -10
  144. data/spec/tty/table/border_options/new_spec.rb +20 -0
  145. data/spec/tty/table/border_options/update_spec.rb +18 -0
  146. data/spec/tty/table/column_set/extract_widths_spec.rb +1 -1
  147. data/spec/tty/table/column_set/total_width_spec.rb +2 -2
  148. data/spec/tty/table/column_set/widths_from_spec.rb +1 -2
  149. data/spec/tty/table/columns/enforce_spec.rb +2 -2
  150. data/spec/tty/table/columns/widths_spec.rb +2 -0
  151. data/spec/tty/table/data_spec.rb +3 -3
  152. data/spec/tty/table/each_spec.rb +9 -11
  153. data/spec/tty/table/each_with_index_spec.rb +8 -9
  154. data/spec/tty/table/empty_spec.rb +3 -3
  155. data/spec/tty/table/eql_spec.rb +6 -6
  156. data/spec/tty/table/field/equality_spec.rb +11 -11
  157. data/spec/tty/table/field/length_spec.rb +4 -4
  158. data/spec/tty/table/field/lines_spec.rb +3 -3
  159. data/spec/tty/table/field/new_spec.rb +7 -7
  160. data/spec/tty/table/field/width_spec.rb +6 -4
  161. data/spec/tty/table/filter_spec.rb +3 -3
  162. data/spec/tty/table/header/call_spec.rb +3 -3
  163. data/spec/tty/table/header/height_spec.rb +1 -1
  164. data/spec/tty/table/header/new_spec.rb +5 -5
  165. data/spec/tty/table/header/set_spec.rb +9 -4
  166. data/spec/tty/table/header/to_ary_spec.rb +4 -4
  167. data/spec/tty/table/header_spec.rb +3 -4
  168. data/spec/tty/table/indentation/insert_indent_spec.rb +1 -1
  169. data/spec/tty/table/initialize_spec.rb +13 -13
  170. data/spec/tty/table/operation/alignment/format_spec.rb +5 -5
  171. data/spec/tty/table/operation/alignment/new_spec.rb +4 -4
  172. data/spec/tty/table/operation/alignment_set/call_spec.rb +11 -11
  173. data/spec/tty/table/operation/alignment_set/each_spec.rb +3 -3
  174. data/spec/tty/table/operation/alignment_set/new_spec.rb +6 -6
  175. data/spec/tty/table/operation/alignment_set/to_ary_spec.rb +4 -4
  176. data/spec/tty/table/operation/escape/call_spec.rb +1 -1
  177. data/spec/tty/table/operation/filter/call_spec.rb +1 -1
  178. data/spec/tty/table/operation/truncation/call_spec.rb +1 -1
  179. data/spec/tty/table/operation/truncation/truncate_spec.rb +4 -4
  180. data/spec/tty/table/operation/wrapped/call_spec.rb +1 -1
  181. data/spec/tty/table/operation/wrapped/wrap_spec.rb +3 -3
  182. data/spec/tty/table/operations/new_spec.rb +1 -1
  183. data/spec/tty/table/options_spec.rb +8 -8
  184. data/spec/tty/table/orientation_spec.rb +15 -13
  185. data/spec/tty/table/padder/parse_spec.rb +1 -1
  186. data/spec/tty/table/padder/to_s_spec.rb +14 -0
  187. data/spec/tty/table/padding_spec.rb +1 -1
  188. data/spec/tty/table/properties_spec.rb +9 -8
  189. data/spec/tty/table/render_spec.rb +8 -5
  190. data/spec/tty/table/render_with_spec.rb +5 -4
  191. data/spec/tty/table/renderer/ascii/indentation_spec.rb +1 -1
  192. data/spec/tty/table/renderer/ascii/padding_spec.rb +1 -1
  193. data/spec/tty/table/renderer/ascii/render_spec.rb +7 -7
  194. data/spec/tty/table/renderer/ascii/resizing_spec.rb +1 -1
  195. data/spec/tty/table/renderer/ascii/separator_spec.rb +2 -2
  196. data/spec/tty/table/renderer/basic/alignment_spec.rb +5 -5
  197. data/spec/tty/table/renderer/basic/coloring_spec.rb +1 -1
  198. data/spec/tty/table/renderer/basic/extract_column_widths_spec.rb +6 -6
  199. data/spec/tty/table/renderer/basic/filter_spec.rb +4 -4
  200. data/spec/tty/table/renderer/basic/indentation_spec.rb +5 -3
  201. data/spec/tty/table/renderer/basic/multiline_content_spec.rb +10 -10
  202. data/spec/tty/table/renderer/basic/new_spec.rb +2 -2
  203. data/spec/tty/table/renderer/basic/options_spec.rb +9 -9
  204. data/spec/tty/table/renderer/basic/padding_spec.rb +1 -1
  205. data/spec/tty/table/renderer/basic/render_spec.rb +8 -8
  206. data/spec/tty/table/renderer/basic/resizing_spec.rb +1 -1
  207. data/spec/tty/table/renderer/basic/separator_spec.rb +2 -2
  208. data/spec/tty/table/renderer/basic/truncation_spec.rb +4 -4
  209. data/spec/tty/table/renderer/basic/wrapping_spec.rb +4 -4
  210. data/spec/tty/table/renderer/border_spec.rb +21 -21
  211. data/spec/tty/table/renderer/render_spec.rb +7 -7
  212. data/spec/tty/table/renderer/select_spec.rb +4 -4
  213. data/spec/tty/table/renderer/style_spec.rb +19 -19
  214. data/spec/tty/table/renderer/unicode/indentation_spec.rb +1 -1
  215. data/spec/tty/table/renderer/unicode/padding_spec.rb +1 -1
  216. data/spec/tty/table/renderer/unicode/render_spec.rb +6 -6
  217. data/spec/tty/table/renderer/unicode/separator_spec.rb +2 -2
  218. data/spec/tty/table/renderer_spec.rb +1 -1
  219. data/spec/tty/table/rotate_spec.rb +27 -27
  220. data/spec/tty/table/row/access_spec.rb +3 -3
  221. data/spec/tty/table/row/call_spec.rb +4 -4
  222. data/spec/tty/table/row/data_spec.rb +5 -5
  223. data/spec/tty/table/row/each_spec.rb +1 -1
  224. data/spec/tty/table/row/equality_spec.rb +16 -16
  225. data/spec/tty/table/row/height_spec.rb +1 -1
  226. data/spec/tty/table/row/new_spec.rb +11 -11
  227. data/spec/tty/table/row/to_ary_spec.rb +3 -3
  228. data/spec/tty/table/to_s_spec.rb +8 -8
  229. data/spec/tty/table/validatable/validate_options_spec.rb +5 -5
  230. data/spec/tty/table/validatable_spec.rb +14 -1
  231. data/spec/tty/terminal/color/code_spec.rb +3 -3
  232. data/spec/tty/terminal/color/remove_spec.rb +8 -9
  233. data/spec/tty/terminal/color/set_spec.rb +5 -6
  234. data/spec/tty/terminal/color_spec.rb +3 -5
  235. data/spec/tty/terminal/echo_spec.rb +3 -4
  236. data/spec/tty/terminal/home_spec.rb +12 -14
  237. data/spec/tty/terminal/page_spec.rb +5 -4
  238. data/spec/tty/terminal/pager/available_spec.rb +11 -11
  239. data/spec/tty/terminal/pager/basic/page_spec.rb +8 -8
  240. data/spec/tty/terminal/pager/command_spec.rb +2 -2
  241. data/spec/tty/terminal/pager/executables_spec.rb +3 -3
  242. data/spec/tty/terminal/pager/page_spec.rb +8 -10
  243. data/spec/tty/terminal/pager/system/page_spec.rb +8 -8
  244. data/spec/tty/terminal/size_spec.rb +39 -36
  245. data/spec/tty/text/distance/distance_spec.rb +13 -13
  246. data/spec/tty/text/distance/initialize_spec.rb +4 -4
  247. data/spec/tty/text/distance_spec.rb +2 -2
  248. data/spec/tty/text/truncate_spec.rb +2 -3
  249. data/spec/tty/text/truncation/initialize_spec.rb +9 -9
  250. data/spec/tty/text/truncation/truncate_spec.rb +14 -14
  251. data/spec/tty/text/wrap_spec.rb +2 -3
  252. data/spec/tty/text/wrapping/initialize_spec.rb +7 -7
  253. data/spec/tty/text/wrapping/wrap_spec.rb +11 -11
  254. data/spec/tty/tty_spec.rb +22 -0
  255. data/spec/tty/vector/new_spec.rb +7 -7
  256. data/tasks/console.rake +10 -0
  257. data/tasks/coverage.rake +11 -0
  258. data/tasks/metrics/cane.rake +2 -0
  259. data/tasks/metrics/flog.rake +2 -0
  260. data/tasks/metrics/heckle.rake +15 -0
  261. data/tasks/metrics/reek.rake +2 -0
  262. data/tasks/spec.rake +29 -0
  263. data/tty.gemspec +5 -12
  264. metadata +34 -91
  265. data/.rvmrc +0 -34
@@ -6,89 +6,92 @@ describe TTY::Terminal, '#size' do
6
6
  let(:default_width) { 80 }
7
7
  let(:default_height) { 24 }
8
8
 
9
- it { should be_instance_of(described_class) }
9
+ it { is_expected.to be_instance_of(described_class) }
10
10
 
11
- it { should respond_to(:width) }
11
+ it { is_expected.to respond_to(:width) }
12
12
 
13
- it { should respond_to(:height) }
13
+ it { is_expected.to respond_to(:height) }
14
14
 
15
- its(:default_width) { should == default_width }
16
15
 
17
- its(:default_height) { should == default_height }
16
+ subject(:terminal) { described_class.new }
17
+
18
+ it { expect(terminal.default_width).to eq(default_width) }
19
+
20
+ it { expect(subject.default_height).to eq(default_height) }
18
21
 
19
22
  context '#width' do
20
- it 'sets the env variable' do
21
- ENV.stub(:[]).with('TTY_COLUMNS').and_return '100'
22
- subject.width.should == 100
23
+ it 'reads the env variable' do
24
+ allow(ENV).to receive(:[]).with('TTY_COLUMNS').and_return('100')
25
+ expect(subject.width).to eq(100)
23
26
  end
24
27
 
25
28
  it 'is not unix system' do
26
- TTY::System.stub(:unix?) { false }
27
- subject.should_receive(:default_width)
29
+ allow(TTY::System).to receive(:unix?) { false }
30
+ expect(subject).to receive(:default_width)
28
31
  subject.width
29
32
  end
30
33
 
31
34
  it 'is unix system' do
32
- TTY::System.stub(:unix?) { true }
33
- subject.should_receive(:dynamic_width)
34
- subject.width
35
+ allow(TTY::System).to receive(:unix?) { true }
36
+ expect(subject).to receive(:dynamic_width) { default_width }
37
+ expect(subject.width).to eq(80)
35
38
  end
36
39
 
37
40
  it 'cannot determine width' do
38
- ENV.stub(:[]) { raise }
39
- subject.should_receive(:default_width)
40
- subject.width
41
+ allow(ENV).to receive(:[]) { raise }
42
+ expect(terminal).to receive(:default_width) { default_width }
43
+ expect(terminal.width).to eq(default_width)
41
44
  end
42
45
  end
43
46
 
44
47
  context '#height' do
45
48
  it 'sets the env variable' do
46
- ENV.stub(:[]).with('TTY_LINES').and_return '50'
47
- subject.height.should == 50
49
+ allow(ENV).to receive(:[]).with('TTY_LINES').and_return('50')
50
+ expect(subject.height).to eq(50)
48
51
  end
49
52
 
50
53
  it 'is not unix system' do
51
- TTY::System.stub(:unix?) { false }
52
- subject.should_receive(:default_height)
53
- subject.height
54
+ allow(TTY::System).to receive(:unix?) { false }
55
+ expect(subject).to receive(:default_height) { default_height }
56
+ expect(subject.height).to eq(default_height)
54
57
  end
55
58
 
56
59
  it 'is unix system' do
57
- TTY::System.stub(:unix?) { true }
58
- subject.should_receive(:dynamic_height)
59
- subject.height
60
+ allow(TTY::System).to receive(:unix?) { true }
61
+ expect(subject).to receive(:dynamic_height) { default_height }
62
+ expect(subject.height).to eq(default_height)
60
63
  end
61
64
 
62
65
  it 'cannot determine width' do
63
- ENV.stub(:[]) { raise }
64
- subject.should_receive(:default_height)
66
+ allow(ENV).to receive(:[]) { raise }
67
+ expect(subject).to receive(:default_height)
65
68
  subject.height
66
69
  end
67
70
  end
68
71
 
69
72
  context '#dynamic_width' do
70
73
  it 'uses stty' do
71
- subject.should_receive(:dynamic_width_stty) { 100 }
72
- subject.dynamic_width
74
+ expect(subject).to receive(:dynamic_width_stty) { 100 }
75
+ expect(subject.dynamic_width).to eq(100)
73
76
  end
74
77
 
75
78
  it 'uses tput' do
76
- subject.stub(:dynamic_width_stty).and_return 0
77
- subject.should_receive(:dynamic_width_tput) { 100 }
78
- subject.dynamic_width
79
+ allow(subject).to receive(:dynamic_width_stty).and_return(0)
80
+ expect(subject).to receive(:dynamic_width_tput) { 100 }
81
+ expect(subject.dynamic_width).to eq(100)
79
82
  end
80
83
  end
81
84
 
82
85
  context '#dynamic_height' do
83
86
  it 'uses stty' do
84
- subject.should_receive(:dynamic_height_stty) { 100 }
85
- subject.dynamic_height
87
+ allow(subject).to receive(:dynamic_height_stty) { 100 }
88
+ expect(subject.dynamic_height).to eq(100)
86
89
  end
87
90
 
88
91
  it 'uses tput' do
89
- subject.stub(:dynamic_height_stty).and_return 0
90
- subject.should_receive(:dynamic_height_tput) { 100 }
91
- subject.dynamic_height
92
+ allow(subject).to receive(:dynamic_height_stty).and_return(0)
93
+ expect(subject).to receive(:dynamic_height_tput) { 100 }
94
+ expect(subject.dynamic_height).to eq(100)
92
95
  end
93
96
  end
94
97
  end
@@ -1,75 +1,75 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
5
  describe TTY::Text::Distance, '#distance' do
6
6
  let(:object) { described_class.new(*strings) }
7
7
 
8
- subject { object.distance }
8
+ subject(:distance) { object.distance }
9
9
 
10
10
  context 'when nil' do
11
11
  let(:strings) { [nil, nil] }
12
12
 
13
- it { should eql(0) }
13
+ it { is_expected.to eql(0) }
14
14
  end
15
15
 
16
16
  context 'when empty' do
17
17
  let(:strings) { ['', ''] }
18
18
 
19
- it { should eql(0) }
19
+ it { is_expected.to eql(0) }
20
20
  end
21
21
 
22
22
  context 'with one non empty' do
23
23
  let(:strings) { ['abc', ''] }
24
24
 
25
- it { should eql(3) }
25
+ it { is_expected.to eql(3) }
26
26
  end
27
27
 
28
28
  context 'when single char' do
29
29
  let(:strings) { ['a', 'abc'] }
30
30
 
31
- it { should eql(2) }
31
+ it { is_expected.to eql(2) }
32
32
  end
33
33
 
34
34
  context 'when similar' do
35
35
  let(:strings) { ['abc', 'abc'] }
36
36
 
37
- it { should eql(0) }
37
+ it { is_expected.to eql(0) }
38
38
  end
39
39
 
40
40
  context 'when similar' do
41
41
  let(:strings) { ['abc', 'acb'] }
42
42
 
43
- it { should eql(1) }
43
+ it { is_expected.to eql(1) }
44
44
  end
45
45
 
46
46
  context 'when end similar' do
47
47
  let(:strings) { ['saturday', 'sunday'] }
48
48
 
49
- it { should eql(3) }
49
+ it { is_expected.to eql(3) }
50
50
  end
51
51
 
52
52
  context 'when contain similar' do
53
53
  let(:strings) { ['which', 'witch'] }
54
54
 
55
- it { should eql(2) }
55
+ it { is_expected.to eql(2) }
56
56
  end
57
57
 
58
58
  context 'when prefix' do
59
59
  let(:strings) { ['sta', 'status'] }
60
60
 
61
- it { should eql(3) }
61
+ it { is_expected.to eql(3) }
62
62
  end
63
63
 
64
64
  context 'when similar' do
65
65
  let(:strings) { ['smellyfish','jellyfish'] }
66
66
 
67
- it { should eql(2) }
67
+ it { is_expected.to eql(2) }
68
68
  end
69
69
 
70
70
  context 'when unicode' do
71
71
  let(:strings) { ['マラソン五輪代表', 'ララソン五輪代表'] }
72
72
 
73
- it { should eql(1) }
73
+ it { is_expected.to eql(1) }
74
74
  end
75
75
  end
@@ -1,14 +1,14 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
5
  describe TTY::Text::Distance, '#initialize' do
6
6
  let(:strings) { ['abc', 'acb'] }
7
7
 
8
- subject { described_class.new(*strings) }
8
+ subject(:distance) { described_class.new(*strings) }
9
9
 
10
- its(:first) { should == strings.first }
10
+ it { expect(distance.first).to eq(strings.first) }
11
11
 
12
- its(:second) { should == strings.last }
12
+ it { expect(distance.second).to eq(strings.last) }
13
13
 
14
14
  end # initialize
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -7,5 +7,5 @@ describe TTY::Text, '#distance' do
7
7
 
8
8
  subject { described_class.distance(*strings) }
9
9
 
10
- it { should == 2 }
10
+ it { is_expected.to eq(2) }
11
11
  end # distance
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -8,6 +8,5 @@ describe TTY::Text, '#truncate' do
8
8
 
9
9
  subject { described_class.truncate(text, :length => length) }
10
10
 
11
- it { should == "ラドクリフ、マラソン五…" }
12
-
11
+ it { is_expected.to eq("ラドクリフ、マラソン五…") }
13
12
  end # truncate
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -9,21 +9,21 @@ describe TTY::Text::Truncation, '#initialize' do
9
9
 
10
10
  subject { described_class.new text, *args }
11
11
 
12
- its(:text) { should == text }
12
+ it { expect(subject.text).to eq(text) }
13
13
 
14
- its(:length) { should == 30 }
14
+ it { expect(subject.length).to eq(30) }
15
15
 
16
- its(:separator) { should be_nil }
16
+ it { expect(subject.separator).to be_nil }
17
17
 
18
- its(:trailing) { should == '…' }
18
+ it { expect(subject.trailing).to eq('…') }
19
19
 
20
20
  context 'custom values' do
21
- let(:args) { [45, { :separator => ' ', :trailing => '...' }]}
21
+ let(:args) { [45, { separator: ' ', trailing: '...' }] }
22
22
 
23
- its(:length) { should == 45 }
23
+ it { expect(subject.length).to eq(45) }
24
24
 
25
- its(:separator) { should == ' ' }
25
+ it { expect(subject.separator).to eq(' ') }
26
26
 
27
- its(:trailing) { should == '...' }
27
+ it { expect(subject.trailing).to eq('...') }
28
28
  end
29
29
  end # initialize
@@ -1,53 +1,53 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
5
  describe TTY::Text::Truncation, '#truncate' do
6
6
  let(:separator) { nil }
7
- let(:options) { { :length => length, :separator => separator, :trailing => trailing } }
8
- let(:trailing) { '…' }
9
- let(:object) { described_class.new(text, options) }
7
+ let(:options) { { length: length, separator: separator, trailing: trailing } }
8
+ let(:trailing) { '…' }
9
+ let(:object) { described_class.new(text, options) }
10
10
 
11
11
  subject { object.truncate }
12
12
 
13
13
  context 'unicode support' do
14
- let(:text) { 'ラドクリフ、マラソン五輪代表に1万m出場にも含み' }
14
+ let(:text) { 'ラドクリフ、マラソン五輪代表に1万m出場にも含み' }
15
15
 
16
16
  context 'with zero length' do
17
17
  let(:length) { 0 }
18
18
 
19
- it { should == text }
19
+ it { is_expected.to eq(text) }
20
20
  end
21
21
 
22
22
  context 'with nil length' do
23
23
  let(:length) { nil }
24
24
 
25
- it { should == text }
25
+ it { is_expected.to eq(text) }
26
26
  end
27
27
 
28
28
  context 'with equal length' do
29
29
  let(:length) { text.length }
30
30
 
31
- it { should == text }
31
+ it { is_expected.to eq(text) }
32
32
  end
33
33
 
34
34
  context 'with truncation' do
35
35
  let(:length) { 12 }
36
36
 
37
- it { should == "ラドクリフ、マラソン五#{trailing}" }
37
+ it { is_expected.to eq("ラドクリフ、マラソン五#{trailing}") }
38
38
  end
39
39
 
40
40
  context 'without truncation' do
41
41
  let(:length) { 100 }
42
42
 
43
- it { should == text }
43
+ it { is_expected.to eq(text) }
44
44
  end
45
45
 
46
46
  context 'with separator' do
47
47
  let(:length) { 12 }
48
48
  let(:separator) { ' ' }
49
49
 
50
- it { should == "ラドクリフ、マラソン五#{trailing}" }
50
+ it { is_expected.to eq("ラドクリフ、マラソン五#{trailing}") }
51
51
  end
52
52
  end
53
53
 
@@ -56,7 +56,7 @@ describe TTY::Text::Truncation, '#truncate' do
56
56
  let(:length) { 20 }
57
57
  let(:trailing) { '... (see more)' }
58
58
 
59
- it { should == "ラドクリフ、#{trailing}" }
59
+ it { is_expected.to eq("ラドクリフ、#{trailing}") }
60
60
  end
61
61
 
62
62
  context 'with separator' do
@@ -66,13 +66,13 @@ describe TTY::Text::Truncation, '#truncate' do
66
66
  context 'blank' do
67
67
  let(:separator) { '' }
68
68
 
69
- it { should == "Immense as whales, the m#{trailing}"}
69
+ it { is_expected.to eq("Immense as whales, the m#{trailing}") }
70
70
  end
71
71
 
72
72
  context 'space' do
73
73
  let(:separator) { ' ' }
74
74
 
75
- it { should == "Immense as whales, the…" }
75
+ it { is_expected.to eq("Immense as whales, the…") }
76
76
  end
77
77
  end
78
78
 
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -9,6 +9,5 @@ describe TTY::Text, '#wrap' do
9
9
 
10
10
  subject { described_class.wrap(text, :length => length, :indent => indent) }
11
11
 
12
- it { should == " ラドクリフ、マラ\n ソン五輪代表に1\n 万m出場にも含み" }
13
-
12
+ it { is_expected.to eq(" ラドクリフ、マラ\n ソン五輪代表に1\n 万m出場にも含み") }
14
13
  end # wrap
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -7,19 +7,19 @@ describe TTY::Text::Wrapping, '#initialize' do
7
7
 
8
8
  let(:args) { [] }
9
9
 
10
- subject { described_class.new text, *args }
10
+ subject(:wrapping) { described_class.new text, *args }
11
11
 
12
- its(:text) { should == text }
12
+ it { expect(wrapping.text).to eq(text) }
13
13
 
14
- its(:length) { should == 80 }
14
+ it { expect(wrapping.length).to eq(80) }
15
15
 
16
- its(:indent) { should == 0 }
16
+ it { expect(wrapping.indent).to eq(0) }
17
17
 
18
18
  context 'custom values' do
19
19
  let(:args) { [45, { :indent => 5 }]}
20
20
 
21
- its(:length) { should == 45 }
21
+ it { expect(wrapping.length).to eq(45) }
22
22
 
23
- its(:indent) { should == 5 }
23
+ it { expect(wrapping.indent).to eq(5) }
24
24
  end
25
25
  end # initialize
@@ -1,4 +1,4 @@
1
- # -*- encoding: utf-8 -*-
1
+ # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
4
 
@@ -8,7 +8,7 @@ describe TTY::Text::Wrapping, '#wrap' do
8
8
  let(:padding) { [] }
9
9
  let(:options) { {length: length, indent: indent, padding: padding} }
10
10
 
11
- subject { object.wrap }
11
+ subject(:wrapping) { object.wrap }
12
12
 
13
13
  context 'unicode support' do
14
14
  let(:text) { 'ラドクリフ、マラソン五輪代表に1万m出場にも含み' }
@@ -16,25 +16,25 @@ describe TTY::Text::Wrapping, '#wrap' do
16
16
  context 'with zero length' do
17
17
  let(:length) { 0 }
18
18
 
19
- it { should == text }
19
+ it { is_expected.to eq(text) }
20
20
  end
21
21
 
22
22
  context 'with nil length' do
23
23
  let(:length) { nil }
24
24
 
25
- it { should == text }
25
+ it { is_expected.to eq(text) }
26
26
  end
27
27
 
28
28
  context 'without wrapping' do
29
29
  let(:length) { 8 }
30
30
 
31
- it { should == "ラドクリフ、マラ\nソン五輪代表に1\n万m出場にも含み" }
31
+ it { is_expected.to eq("ラドクリフ、マラ\nソン五輪代表に1\n万m出場にも含み") }
32
32
  end
33
33
 
34
34
  context 'with wrapping' do
35
35
  let(:length) { 100 }
36
36
 
37
- it { should == text }
37
+ it { is_expected.to eq(text) }
38
38
  end
39
39
  end
40
40
 
@@ -50,7 +50,7 @@ describe TTY::Text::Wrapping, '#wrap' do
50
50
  satisfaction of knowing that it is all right;
51
51
  " }
52
52
 
53
- it { should == <<-EOS.normalize
53
+ it { is_expected.to eq <<-EOS.normalize
54
54
  What of it, if some old hunks of a\n sea-captain orders me to get a broom
55
55
  and sweep down the decks? What does that\n indignity amount to, weighed,
56
56
  I mean, in the scales of the New Testament?\n Do you think the archangel
@@ -68,14 +68,14 @@ describe TTY::Text::Wrapping, '#wrap' do
68
68
  let(:length) { 8 }
69
69
  let(:indent) { 4 }
70
70
 
71
- it { should == " ラドクリフ、マラ\n ソン五輪代表に1\n 万m出場にも含み" }
71
+ it { is_expected.to eq " ラドクリフ、マラ\n ソン五輪代表に1\n 万m出場にも含み" }
72
72
  end
73
73
 
74
74
  context 'with ansi colors' do
75
75
  let(:text) { "\[\033[01;32m\]Hey have\[\033[01;34m\]some cake\[\033[00m\]" }
76
76
  let(:length) { 6 }
77
77
 
78
- it { should == "\[\033[01;32m\]Hey have\[\033[01;34m\]some\ncake\[\033[00m\]" }
78
+ it { is_expected.to eq "\[\033[01;32m\]Hey have\[\033[01;34m\]some\ncake\[\033[00m\]" }
79
79
  end
80
80
 
81
81
  context 'with newlines' do
@@ -83,7 +83,7 @@ describe TTY::Text::Wrapping, '#wrap' do
83
83
  let(:text) { "\n\nラドクリフ、マラソン五輪代表に1万m出場にも含み\n\n\n" }
84
84
  let(:length) { 10 }
85
85
 
86
- it { should == "\n\nラドクリフ、マラソン\n五輪代表に1万m出場\nにも含み\n\n\n" }
86
+ it { is_expected.to eq "\n\nラドクリフ、マラソン\n五輪代表に1万m出場\nにも含み\n\n\n" }
87
87
  end
88
88
 
89
89
  context 'with padding' do
@@ -91,7 +91,7 @@ describe TTY::Text::Wrapping, '#wrap' do
91
91
  let(:length) { 10 }
92
92
  let(:padding) { [1,2,3,4] }
93
93
 
94
- it { should == "\n\n ラドクリフ、マラソン \n 五輪代表に1万m出場 \n にも含み \n\n" }
94
+ it { is_expected.to eq "\n\n ラドクリフ、マラソン \n 五輪代表に1万m出場 \n にも含み \n\n" }
95
95
  end
96
96
  end
97
97
  end # wrap