shiritori 0.0.7 → 0.0.8

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
  SHA1:
3
- metadata.gz: 507f4984784dbfb03306eb4f06c37b86bb363ee2
4
- data.tar.gz: 813b26e2b9d13d7c42cab387787f45e86670787b
3
+ metadata.gz: fb84441c364a1dfb4d9b46af2d071a32e2af24c7
4
+ data.tar.gz: 51125877608ca6f3f461fc84f1cafb1a1d7e164d
5
5
  SHA512:
6
- metadata.gz: ef1da128408f68d90953ed1acdc9eb026f325ed3e33c3f9d60be1c4a5dd32e0257b6140692c039ee2d0edd6212671a24d95b93e90e9b02c2db0d5214b3c63023
7
- data.tar.gz: c622ef8f9fc62d7ae150cee3d16dad4c3942130e3ca0eb3e4be6f24750220ea92c2943fec57dd234ff3036742fdda94612a2082b093a72de78b6e5a092fa7168
6
+ metadata.gz: 92841ab261bcab47557f04f5860b9f5c20e3eda002c471d1649529683a5f59a70054d8ada1b034babdc645f9eb5019d79303d98828a1c9f75b95527d20f4b59a
7
+ data.tar.gz: 842afd23db4cce22a20970179d29ed3845ed24a5cdb73042945588bf3df25951c3853115ad98d336429a88dbb0409d4b0adfd2a7e4abe27510c97ece25987fdd
data/bin/shiritori CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  require 'shiritori'
4
4
 
5
- Shiritori::Main.new.start
5
+ Shiritori::Main.new.start(ARGV)
@@ -19,7 +19,7 @@ class Object
19
19
  end
20
20
 
21
21
  BasicObject.class_eval do
22
- def binding
22
+ def __binding__
23
23
  ::Kernel.binding
24
24
  end
25
25
  end
@@ -34,7 +34,7 @@ class BasicObject
34
34
  end
35
35
 
36
36
  def eval(str)
37
- ::Kernel.eval(str, binding)
37
+ ::Kernel.eval(str, __binding__)
38
38
  end
39
39
 
40
40
  alias :to_s :to_ss
@@ -0,0 +1,10 @@
1
+ module Shiritori
2
+ class ShiritoriError < Exception
3
+ end
4
+
5
+ class UseSameMethodError < ShiritoriError
6
+ def message
7
+ "Can't use same method."
8
+ end
9
+ end
10
+ end
@@ -12,7 +12,7 @@ module Shiritori
12
12
  EXIT_PATTERN = /(exit|quit)/.freeze
13
13
  METHOD_PATTERN = /[\w|\?|\>|\<|\=|\!|\[|\[|\]|\*|\/|\+|\-|\^|\~|\@|\%|\&|]+/.freeze
14
14
 
15
- def start
15
+ def start(option = [])
16
16
  init
17
17
  run
18
18
  end
@@ -21,6 +21,7 @@ module Shiritori
21
21
  if result
22
22
  @all_method.delete(result.first)
23
23
  @current_object = result.last
24
+ @chain_count += 1
24
25
  end
25
26
 
26
27
  begin
@@ -28,8 +29,8 @@ module Shiritori
28
29
  rescue Exception => ex
29
30
  @current_class = "Undefined"
30
31
  end
32
+
31
33
  @success = true
32
- @chain_count += 1
33
34
  end
34
35
 
35
36
  def init
@@ -40,17 +41,22 @@ module Shiritori
40
41
  @chain_count = 0
41
42
  @success = false
42
43
 
43
- $stdout.print "Please input first object > "
44
- begin
45
- str = $stdin.gets.chomp
46
- @current_object = eval(str)
47
- @current_chain << @current_object.to_ss
48
- @success = true
49
- rescue Exception => ex
50
- new_line
51
- $stdout.puts "Undefined object error"
52
- init
44
+ loop do
45
+ print "Please input first object > "
46
+
47
+ begin
48
+ str = $stdin.gets.chomp
49
+ @current_object = eval(str)
50
+ @current_chain << @current_object.to_ss
51
+ @success = true
52
+ break
53
+ rescue Exception => ex
54
+ new_line
55
+ $stdout.puts "Undefined object error"
56
+ redo
57
+ end
53
58
  end
59
+
54
60
  update
55
61
  end
56
62
 
@@ -82,15 +88,19 @@ module Shiritori
82
88
 
83
89
  puts "Exec command #{[@current_object.to_ss, command].join('.')}"
84
90
 
85
- if result = exec_method_chain(command, @current_object)
86
- if @all_method.include?(result.first)
87
- update(result)
88
- @current_chain << command
89
- elsif result.first == :exit
90
- break
91
- else
92
- $stdout.puts "Already used method."
91
+ begin
92
+ if result = exec_method_chain(command, @current_object)
93
+ if @all_method.include?(result.first)
94
+ update(result)
95
+ @current_chain << command
96
+ elsif result.first == :exit
97
+ break
98
+ else
99
+ puts "Already used method."
100
+ end
93
101
  end
102
+ rescue Exception => ex
103
+ puts ex.message
94
104
  end
95
105
  end
96
106
  end
@@ -1,3 +1,3 @@
1
1
  module Shiritori
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -4,7 +4,7 @@ describe "Shiritori test" do
4
4
  let(:main){ Shiritori::Main.new }
5
5
 
6
6
  describe "BasicObject instance methods" do
7
- let(:object){ BasicObject.new }
7
+ let(:__instance__){ BasicObject.new }
8
8
 
9
9
  it { instance_check(:!) }
10
10
  it { instance_check(:!=, %Q(Object.new)) }
@@ -4,7 +4,7 @@ describe "Shiritori test" do
4
4
  let(:main){ Shiritori::Main.new }
5
5
 
6
6
  describe "FalseClass instance methods" do
7
- let(:object){ false }
7
+ let(:__instance__){ false }
8
8
 
9
9
  it { instance_check(:&, %Q(true)) }
10
10
  it { instance_check(:^, %Q(true)) }
@@ -4,165 +4,44 @@ describe "Shiritori test" do
4
4
  let(:main){ Shiritori::Main.new }
5
5
 
6
6
  describe "Fixnum instance methods" do
7
- let(:object){ 16 }
8
-
9
- def check( method )
10
- main.exec_method_chain( method, object )
11
- end
12
-
13
- it '#to_s method' do
14
- expect(check("to_s")).to eq [:to_s, object.to_s]
15
- expect(check("to_s(2)")).to eq [:to_s, object.to_s(2)]
16
- expect(check("to_s(8)")).to eq [:to_s, object.to_s(8)]
17
- expect(check("to_s(16)")).to eq [:to_s, object.to_s(16)]
18
- end
19
-
20
- it '#inspect method' do
21
- expect(check("inspect")).to eq [:inspect, object.inspect]
22
- end
23
-
24
- it '#-@ method' do
25
- expect(check("-@")).to eq [:-@, object.-@]
26
- end
27
-
28
- it "#+ method" do
29
- expect(check("+(3)")).to eq [:+, object.+(3)]
30
- end
31
-
32
- it '#- method' do
33
- expect(check("-(3)")).to eq [:-, object.-(3)]
34
- end
35
-
36
- it '#* method' do
37
- expect(check("*(3)")).to eq [:*, object.*(3)]
38
- end
39
-
40
- it '#/ method' do
41
- expect(check("/(3)")).to eq [:/, object./(3)]
42
- end
43
-
44
- it '#div method' do
45
- expect(check("div(3)")).to eq [:div, object.div(3)]
46
- end
47
-
48
- it '#% method' do
49
- expect(check("%(3)")).to eq [:%, object.%(3)]
50
- end
51
-
52
- it '#modulo method' do
53
- expect(check("modulo(3)")).to eq [:modulo, object.modulo(3)]
54
- end
55
-
56
- it '#divmod method' do
57
- expect(check("divmod(3)")).to eq [:divmod, object.divmod(3)]
58
- end
59
-
60
- it '#fdiv method' do
61
- expect(check("fdiv(3)")).to eq [:fdiv, object.fdiv(3)]
62
- end
63
-
64
- it '#** method' do
65
- expect(check("**(7)")).to eq [:**, object.**(7)]
66
- end
67
-
68
- it '#abs method' do
69
- expect(check("abs")).to eq [:abs, object.abs]
70
- end
71
-
72
- it '#magnitude method' do
73
- expect(check("magnitude")).to eq [:magnitude, object.magnitude]
74
- end
75
-
76
- it '#== method' do
77
- expect(check("==(#{object})")).to eq [:==, object.==(object)]
78
- expect(check("==(#{object-1})")).to eq [:==, object.==(object-1)]
79
- end
80
-
81
- it '#=== method' do
82
- expect(check("===(#{object})")).to eq [:===, object.===(object)]
83
- expect(check("===(#{object-1})")).to eq [:===, object.===(object-1)]
84
- end
85
-
86
- it '#<=> method' do
87
- expect(check("<=>(#{object})")).to eq [:<=>, object.<=>(object)]
88
- expect(check("<=>(#{object+1})")).to eq [:<=>, object.<=>(object+1)]
89
- expect(check("<=>(#{object-1})")).to eq [:<=>, object.<=>(object-1)]
90
- end
91
-
92
- it '#> method' do
93
- expect(check(">(#{object})")).to eq [:>, object.>(object)]
94
- expect(check(">(#{object-1})")).to eq [:>, object.>(object-1)]
95
- end
96
-
97
- it '#>= method' do
98
- expect(check(">=(#{object})")).to eq [:>=, object.>=(object)]
99
- expect(check(">=(#{object-2})")).to eq [:>=, object.>=(object-2)]
100
- end
101
-
102
- it '#< method' do
103
- expect(check("<(#{object})")).to eq [:<, object.<(object)]
104
- expect(check("<(#{object+1})")).to eq [:<, object.<(object+1)]
105
- end
106
-
107
- it '#<= method' do
108
- expect(check("<=(#{object})")).to eq [:<=, object.<=(object)]
109
- expect(check("<=(#{object+2})")).to eq [:<=, object.<=(object+2)]
110
- end
111
-
112
- it '#~ method' do
113
- expect(check("~")).to eq [:~, object.~]
114
- end
115
-
116
- it '#& method' do
117
- expect(check("&(-1)")).to eq [:&, object.&(-1)]
118
- end
119
-
120
- it '#| method' do
121
- expect(check("|(1)")).to eq [:|, object.|(1)]
122
- end
123
-
124
- it '#^ method' do
125
- expect(check("^(-1)")).to eq [:^, object.^(-1)]
126
- end
127
-
128
- it '#[] method' do
129
- expect(check("[](0)")).to eq [:[], object.[](0)]
130
- end
131
-
132
- it '#<< method' do
133
- expect(check("<<(3)")).to eq [:<<, object.<<(3)]
134
- end
135
-
136
- it '#>> method' do
137
- expect(check(">>(3)")).to eq [:>>, object.>>(3)]
138
- end
139
-
140
- it '#to_f method' do
141
- expect(check("to_f")).to eq [:to_f, object.to_f]
142
- end
143
-
144
- it '#size method' do
145
- expect(check("size")).to eq [:size, object.size]
146
- end
147
-
148
- it '#bit_length method' do
149
- expect(check("bit_length")).to eq [:bit_length, object.bit_length]
150
- end
151
-
152
- it '#zero? method' do
153
- expect(check("zero?")).to eq [:zero?, object.zero?]
154
- end
155
-
156
- it '#odd? method' do
157
- expect(check("odd?")).to eq [:odd?, object.odd?]
158
- end
159
-
160
- it '#even? method' do
161
- expect(check("even?")).to eq [:even?, object.even?]
162
- end
163
-
164
- it '#succ method' do
165
- expect(check("succ")).to eq [:succ, object.succ]
166
- end
7
+ let(:__instance__){ 16 }
8
+ let(:same_object){ 16 }
9
+
10
+ it { instance_check(:to_s) }
11
+ it { instance_check(:to_s, %q(2)) }
12
+ it { instance_check(:inspect) }
13
+ it { instance_check(:-@) }
14
+ it { instance_check(:-, %Q(3)) }
15
+ it { instance_check(:*, %Q(3)) }
16
+ it { instance_check(:/, %q(3)) }
17
+ it { instance_check(:div, %q(3)) }
18
+ it { instance_check(:%, %q(3)) }
19
+ it { instance_check(:modulo, %q(3)) }
20
+ it { instance_check(:divmod, %q(3)) }
21
+ it { instance_check(:fdiv, %q(3)) }
22
+ it { instance_check(:**, %q(7)) }
23
+ it { instance_check(:abs) }
24
+ it { instance_check(:magnitude) }
25
+ it { instance_check(:==, %Q(#{__instance__})) }
26
+ it { instance_check(:===, %Q(#{__instance__})) }
27
+ it { instance_check(:<=>, %Q(#{__instance__})) }
28
+ it { instance_check(:>, %Q(#{__instance__})) }
29
+ it { instance_check(:>=, %Q(#{__instance__})) }
30
+ it { instance_check(:<, %Q(#{__instance__})) }
31
+ it { instance_check(:<=, %Q(#{__instance__})) }
32
+ it { instance_check(:~) }
33
+ it { instance_check(:&, %q(-1)) }
34
+ it { instance_check(:|, %q(1)) }
35
+ it { instance_check(:^, %q(-1)) }
36
+ it { instance_check(:[], %q(0)) }
37
+ it { instance_check(:<<, %q(3)) }
38
+ it { instance_check(:>>, %q(3)) }
39
+ it { instance_check(:to_f) }
40
+ it { instance_check(:size) }
41
+ it { instance_check(:bit_length) }
42
+ it { instance_check(:zero?) }
43
+ it { instance_check(:odd?) }
44
+ it { instance_check(:even?) }
45
+ it { instance_check(:succ) }
167
46
  end
168
47
  end
@@ -4,7 +4,7 @@ describe "Shiritori test" do
4
4
  let(:main){ Shiritori::Main.new }
5
5
 
6
6
  describe "NilClass instance methods" do
7
- let(:object){ nil }
7
+ let(:__instance__){ nil }
8
8
 
9
9
  it { instance_check(:&, %Q(true)) }
10
10
  it { instance_check(:^, %Q(true)) }
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Shiritori test" do
4
+ let(:main){ Shiritori::Main.new }
5
+ let(:__class__){ Random }
6
+ let(:__instance__){ Random.new }
7
+
8
+ describe "Random singleton methods" do
9
+ it { instance_check(:new, %q(0), obj: __class__) }
10
+ end
11
+
12
+ describe "Random instance methods" do
13
+ end
14
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Shiritori test" do
4
+ let(:main){ Shiritori::Main.new }
5
+ let(:__class__){ Range }
6
+ let(:__instance__){ 1..10 }
7
+
8
+ describe "Range singleton methods" do
9
+ it { instance_check(:new, %q(1, 10), obj: __class__) }
10
+ end
11
+
12
+ describe "Range instance methods" do
13
+ it { instance_check(:==, %q(1..11)) }
14
+ it { instance_check(:===, %q(5)) }
15
+ it { instance_check(:include?, %q(11)) }
16
+ it { instance_check(:member?, %q(-1)) }
17
+ it { instance_check(:begin) }
18
+ it { instance_check(:first) }
19
+ it { instance_check(:bsearch) }
20
+ it { instance_check(:cover?, %q(11)) }
21
+ it { instance_check(:each) }
22
+ it { instance_check(:end) }
23
+ it { instance_check(:last) }
24
+ it { instance_check(:eql?, %q(1..10)) }
25
+ it { instance_check(:exclude_end?) }
26
+ it { instance_check(:hash) }
27
+ it { instance_check(:inspect) }
28
+ it { instance_check(:max) }
29
+ it { instance_check(:min) }
30
+ it { instance_check(:size) }
31
+ it { instance_check(:step) }
32
+ it { instance_check(:to_s) }
33
+ end
34
+ end
@@ -2,6 +2,8 @@ require 'spec_helper'
2
2
  require 'stringio'
3
3
 
4
4
  describe "Shiritori test" do
5
+ let(:shiritori){ Shiritori::Main.new }
6
+
5
7
  describe "Game Init" do
6
8
  it "Game start init" do
7
9
  shiritori = Shiritori::Main.new
@@ -10,18 +12,23 @@ describe "Shiritori test" do
10
12
  end
11
13
  expect(shiritori.current_object).to eq ["R", "u", "b", "y"]
12
14
  end
13
- end
14
15
 
15
- describe "Example " do
16
-
17
- let(:shiritori){ Shiritori::Main.new }
18
-
16
+ it "Invalid object" do
17
+ fake_stdin(%w(eixt "hello nil)) do
18
+ shiritori.start
19
+ end
20
+
21
+ expect(shiritori.chain_count).to eq 0
22
+ end
23
+ end
19
24
 
25
+ describe "Example" do
20
26
  it "test play 1" do
21
27
  fake_stdin(%w(3 next to_s *(5) chars first instance_eval{(1..10)} each{|n|n*100} map{|n|n+100} inject(:+) class)) do
22
28
  shiritori.start
23
29
  end
24
30
  expect(shiritori.current_object).to eq Fixnum
31
+ expect(shiritori.chain_count).to eq 10
25
32
  end
26
33
 
27
34
  it "test play 2" do
@@ -29,6 +36,7 @@ describe "Shiritori test" do
29
36
  shiritori.start
30
37
  end
31
38
  expect(shiritori.current_object).to eq Fixnum
39
+ expect(shiritori.chain_count).to eq 3
32
40
  end
33
41
 
34
42
  it "test play 3" do
@@ -36,6 +44,7 @@ describe "Shiritori test" do
36
44
  shiritori.start
37
45
  end
38
46
  expect(shiritori.current_object).to eq TrueClass
47
+ expect(shiritori.chain_count).to eq 3
39
48
  end
40
49
  end
41
50
  end
@@ -4,7 +4,7 @@ describe "Shiritori test" do
4
4
  let(:main){ Shiritori::Main.new }
5
5
 
6
6
  describe "String instance methods" do
7
- let(:object){ "Ruby" }
7
+ let(:__instance__){ "Ruby" }
8
8
  let(:same_object){ "Ruby" }
9
9
  let(:object_int){ "100" }
10
10
  let(:object_complex){ "3+3i" }
@@ -15,10 +15,10 @@ describe "Shiritori test" do
15
15
  it { instance_check("to_s") }
16
16
  it { instance_check("inspect") }
17
17
  it { instance_check("hash") }
18
- it { instance_check("<=>", %Q('#{object}')) }
19
- it { instance_check("==", %Q('#{object}')) }
20
- it { instance_check("===", %Q('#{object}')) }
21
- it { instance_check("casecmp", %Q('#{object}')) }
18
+ it { instance_check("<=>", %Q('#{__instance__}')) }
19
+ it { instance_check("==", %Q('#{__instance__}')) }
20
+ it { instance_check("===", %Q('#{__instance__}')) }
21
+ it { instance_check("casecmp", %Q('#{__instance__}')) }
22
22
  it { instance_check("+", %Q('#{word}')) }
23
23
  it { instance_check("*", %Q(3)) }
24
24
  it { instance_check("%", %Q(3)) }
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Shiritori test" do
4
+ let(:main){ Shiritori::Main.new }
5
+ let(:__class__){ Symbol }
6
+ let(:__instance__){ :ruby }
7
+
8
+ describe "Symbol instance methods" do
9
+ it { instance_check(:<=>, %q(:python)) }
10
+ it { instance_check(:==, %q(:ruby)) }
11
+ it { instance_check(:=~, %q(/.+/)) }
12
+ it { instance_check(:match, %q(/.+/)) }
13
+ it { instance_check(:[], %q(0)) }
14
+ it { instance_check(:slice, %q(0)) }
15
+ it { instance_check(:capitalize) }
16
+ it { instance_check(:casecmp, %q(:python)) }
17
+ it { instance_check(:downcase) }
18
+ it { instance_check(:empty?) }
19
+ it { instance_check(:encoding) }
20
+ it { instance_check(:id2name) }
21
+ it { instance_check(:to_s) }
22
+ it { instance_check(:inspect) }
23
+ it { instance_check(:intern) }
24
+ it { instance_check(:to_sym) }
25
+ it { instance_check(:length) }
26
+ it { instance_check(:size) }
27
+ it { instance_check(:succ) }
28
+ it { instance_check(:next) }
29
+ it { instance_check(:swapcase) }
30
+ it { instance_check(:to_proc) }
31
+ it { instance_check(:upcase) }
32
+ end
33
+ end
@@ -4,7 +4,7 @@ describe "Shiritori test" do
4
4
  let(:main){ Shiritori::Main.new }
5
5
 
6
6
  describe "TrueClass instance methods" do
7
- let(:object){ true }
7
+ let(:__instance__){ true }
8
8
 
9
9
  it { instance_check(:&, %Q(false)) }
10
10
  it { instance_check(:^, %Q(false)) }
data/spec/spec_helper.rb CHANGED
@@ -20,10 +20,19 @@ module Helpers
20
20
  main.exec_method_chain( method, obj )
21
21
  end
22
22
 
23
- def instance_check(ope, *args, obj: object)
23
+ def compare_range( a, b )
24
+ a[1] = a[1].to_a
25
+ b[1] = b[1].to_a
26
+ end
27
+
28
+ def instance_check(ope, *args, obj: __instance__)
24
29
 
25
30
  begin
26
- test_obj = obj.dup
31
+ if obj.is_a?(Class)
32
+ test_obj = obj
33
+ else
34
+ test_obj = obj.dup
35
+ end
27
36
  rescue Exception => ex
28
37
  test_obj = obj
29
38
  end
@@ -31,8 +40,14 @@ module Helpers
31
40
  ope = ope.to_s if ope.is_a?(Symbol)
32
41
 
33
42
  command = "#{ope}(#{args.join(',')})"
34
- puts "self."+command
35
- expect(check(command, obj||object)).to eq [ope.scan(METHOD_PATTERN).first.to_sym, test_obj.instance_eval{ eval("self."+command) } ]
43
+ #puts "self."+command
44
+
45
+ __self__ = check(command, obj||__instance__)
46
+ other = [ope.scan(METHOD_PATTERN).first.to_sym, test_obj.instance_eval{ eval("self."+command) } ]
47
+
48
+ compare_range(__self__, other) if [Range, Enumerator].include?(__self__.last.class)
49
+
50
+ expect(__self__).to eq other
36
51
  end
37
52
  end
38
53
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shiritori
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - siman-man
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-18 00:00:00.000000000 Z
11
+ date: 2014-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -97,6 +97,7 @@ files:
97
97
  - bin/shiritori
98
98
  - lib/shiritori.rb
99
99
  - lib/shiritori/convert.rb
100
+ - lib/shiritori/error.rb
100
101
  - lib/shiritori/search_method.rb
101
102
  - lib/shiritori/shiritori.rb
102
103
  - lib/shiritori/version.rb
@@ -106,8 +107,11 @@ files:
106
107
  - spec/shiritori/false_method_spec.rb
107
108
  - spec/shiritori/fixnum_method_spec.rb
108
109
  - spec/shiritori/nil_method_spec.rb
110
+ - spec/shiritori/random_method_spec.rb
111
+ - spec/shiritori/range_method_spec.rb
109
112
  - spec/shiritori/shiritori_spec.rb
110
113
  - spec/shiritori/string_method_spec.rb
114
+ - spec/shiritori/symbol_method_spec.rb
111
115
  - spec/shiritori/true_method_spec.rb
112
116
  - spec/spec_helper.rb
113
117
  homepage: https://github.com/siman-man/shiritori
@@ -139,8 +143,11 @@ test_files:
139
143
  - spec/shiritori/false_method_spec.rb
140
144
  - spec/shiritori/fixnum_method_spec.rb
141
145
  - spec/shiritori/nil_method_spec.rb
146
+ - spec/shiritori/random_method_spec.rb
147
+ - spec/shiritori/range_method_spec.rb
142
148
  - spec/shiritori/shiritori_spec.rb
143
149
  - spec/shiritori/string_method_spec.rb
150
+ - spec/shiritori/symbol_method_spec.rb
144
151
  - spec/shiritori/true_method_spec.rb
145
152
  - spec/spec_helper.rb
146
153
  has_rdoc: