shiritori 0.0.7 → 0.0.8

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
  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: