randwordjp 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 +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/Guardfile +5 -17
- data/Rakefile +3 -4
- data/lib/randwordjp/version.rb +4 -1
- data/lib/randwordjp.rb +58 -58
- data/randwordjp.gemspec +12 -12
- data/spec/randwordjp_spec.rb +52 -54
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 528409f317e7bb12f6211829867d7a345aefcf8d
|
4
|
+
data.tar.gz: 575e1d2ded025c112d7ae64c40930b5161a921c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6faee0e5d2ec963f239aba8479c06b20acf5bb502dec19f3b0fff4b50b1d971b6c76bc6a5f607766e2430cb6749fa0d015c358a1189562f9a159387351fa02d0
|
7
|
+
data.tar.gz: 4dbe56a616454667e27f839e108269857d63b598ad789ce0aa9aa9ba8488256199bdf185e708c6328b388b2a4e8c3a3ad1235233ac72fcfe62ab248632f3a5ba
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.5
|
data/Gemfile
CHANGED
data/Guardfile
CHANGED
@@ -12,22 +12,10 @@
|
|
12
12
|
guard :rspec, cmd: 'bundle exec rspec' do
|
13
13
|
watch(%r{^spec/.+_spec\.rb$})
|
14
14
|
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
15
|
-
watch('spec/spec_helper.rb') {
|
16
|
-
|
17
|
-
# Rails example
|
18
|
-
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
19
|
-
watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
20
|
-
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
21
|
-
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
22
|
-
watch('config/routes.rb') { "spec/routing" }
|
23
|
-
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
24
|
-
watch('spec/rails_helper.rb') { "spec" }
|
25
|
-
|
26
|
-
# Capybara features specs
|
27
|
-
watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
|
28
|
-
|
29
|
-
# Turnip features and steps
|
30
|
-
watch(%r{^spec/acceptance/(.+)\.feature$})
|
31
|
-
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
|
15
|
+
watch('spec/spec_helper.rb') { 'spec' }
|
32
16
|
end
|
33
17
|
|
18
|
+
guard :rubocop do
|
19
|
+
watch(%r{.+\.rb$})
|
20
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
21
|
+
end
|
data/Rakefile
CHANGED
data/lib/randwordjp/version.rb
CHANGED
data/lib/randwordjp.rb
CHANGED
@@ -3,104 +3,106 @@ require 'date'
|
|
3
3
|
require 'yaml'
|
4
4
|
require 'sqlite3'
|
5
5
|
|
6
|
+
# Randwordjp
|
7
|
+
# ランダムで日本語文字列などを生成するライブラリとなります。
|
8
|
+
# can get random words(sentence).
|
6
9
|
module Randwordjp
|
7
|
-
@yamlfile= 'lib/randwordjp.yml'
|
10
|
+
@yamlfile = 'lib/randwordjp.yml'
|
8
11
|
@dbfile = 'lib/randwordjp.db'
|
9
12
|
|
10
13
|
# 半角数字の文字列を取得する
|
11
|
-
# @param [Integer] length 文字列長
|
12
|
-
|
13
|
-
|
14
|
-
words = Array.new()
|
14
|
+
# @param [Integer] length 文字列長 # @return [String] lengthで指定した文字列長の数字文字列
|
15
|
+
def self.numeric(length = 10)
|
16
|
+
words = []
|
15
17
|
length.times do
|
16
|
-
words << ('0'..'9').to_a.sample
|
18
|
+
words << ('0'..'9').to_a.sample
|
17
19
|
end
|
18
|
-
|
20
|
+
words.join
|
19
21
|
end
|
20
22
|
|
21
23
|
# 全角日本語の文字列を取得する。
|
22
24
|
# 漢字は第一水準となる。
|
23
25
|
# @param [Integer] length 文字列長
|
24
26
|
# @return [String] lengthで指定した文字列長の文字列
|
25
|
-
def self.
|
26
|
-
words =
|
27
|
-
base = YAML.load_file(@yamlfile)[
|
27
|
+
def self.zenkaku_all(length = 10)
|
28
|
+
words = []
|
29
|
+
base = YAML.load_file(@yamlfile)['worddata']['daiichi']
|
28
30
|
length.times do
|
29
|
-
words << base.split(//).sample
|
31
|
+
words << base.split(//).sample
|
30
32
|
end
|
31
|
-
|
33
|
+
words.join
|
32
34
|
end
|
33
35
|
|
34
36
|
# 全角カタカナの文字列を取得する。
|
35
37
|
# @param [Integer] length 文字列長
|
36
38
|
# @param [Boolean] opt[:old] 旧仮名文字の利用の可否
|
37
39
|
# @return [String] lengthで指定した文字列長の文字列
|
38
|
-
def self.
|
39
|
-
words =
|
40
|
+
def self.zenkaku_katakana(length = 10, opt = { old: false })
|
41
|
+
words = []
|
40
42
|
if opt[:old]
|
41
43
|
base = ('ア'..'ン').to_a
|
42
|
-
else
|
43
|
-
base = ('ア'..'ン').to_a.join.gsub(/ヰヱ/,
|
44
|
+
else
|
45
|
+
base = ('ア'..'ン').to_a.join.gsub(/ヰヱ/, '').split(//)
|
44
46
|
end
|
45
47
|
length.times do
|
46
|
-
words << base.sample
|
48
|
+
words << base.sample
|
47
49
|
end
|
48
|
-
|
50
|
+
words.join
|
49
51
|
end
|
50
52
|
|
51
53
|
# 全角ひらがなの文字列を取得する。
|
52
54
|
# @param [Integer] length 文字列長
|
53
55
|
# @param [Boolean] opt[:old] 旧仮名文字の利用の可否
|
54
56
|
# @return [String] lengthで指定した文字列長の文字列
|
55
|
-
def self.
|
56
|
-
words =
|
57
|
+
def self.zenkaku_hirakana(length = 10, opt = { old: false })
|
58
|
+
words = []
|
57
59
|
if opt[:old]
|
58
60
|
base = ('あ'..'ん').to_a
|
59
61
|
else
|
60
|
-
base = ('あ'..'ん').to_a.join.gsub(/ゐゑ/,
|
62
|
+
base = ('あ'..'ん').to_a.join.gsub(/ゐゑ/, '').split(//)
|
61
63
|
end
|
62
64
|
length.times do
|
63
|
-
words << base.sample
|
65
|
+
words << base.sample
|
64
66
|
end
|
65
|
-
|
67
|
+
words.join
|
66
68
|
end
|
67
69
|
|
68
70
|
# ローマ字の文字列を取得する。
|
69
71
|
# @param [Integer] length 文字列長
|
70
72
|
# @return [String] lengthで指定した文字列長の文字列
|
71
|
-
def self.
|
72
|
-
words =
|
73
|
+
def self.alphabet(length = 10)
|
74
|
+
words = []
|
73
75
|
base = ('a'..'z').to_a
|
74
76
|
length.times do
|
75
|
-
words << base.sample
|
77
|
+
words << base.sample
|
76
78
|
end
|
77
|
-
|
79
|
+
words.join
|
78
80
|
end
|
79
81
|
|
80
82
|
# 数字+ローマ字の文字列を取得する。
|
81
83
|
# @param [Integer] length 文字列長
|
82
84
|
# @return [String] lengthで指定した文字列長の文字列
|
83
|
-
def self.
|
84
|
-
words =
|
85
|
+
def self.alphanumeric(length = 10)
|
86
|
+
words = []
|
85
87
|
base = ('0'..'9').to_a + ('a'..'z').to_a
|
86
|
-
words <<
|
88
|
+
words << alphabet(1)
|
87
89
|
length.times do
|
88
|
-
words << base.sample
|
90
|
+
words << base.sample
|
89
91
|
end
|
90
|
-
|
92
|
+
words.join
|
91
93
|
end
|
92
94
|
|
93
95
|
# 数字+ローマ字+記号(-_)の文字列を取得する。
|
94
96
|
# @param [Integer] length 文字列長
|
95
97
|
# @return [String] lengthで指定した文字列長の文字列
|
96
|
-
def self.
|
97
|
-
words =
|
98
|
-
base = ('0'..'9').to_a + ('a'..'z').to_a + [
|
99
|
-
words <<
|
98
|
+
def self.alphanumeric_plus(length = 10)
|
99
|
+
words = []
|
100
|
+
base = ('0'..'9').to_a + ('a'..'z').to_a + ['-', '_']
|
101
|
+
words << alphabet(1)
|
100
102
|
(length - 1).times do
|
101
|
-
words << base.sample
|
103
|
+
words << base.sample
|
102
104
|
end
|
103
|
-
|
105
|
+
words.join
|
104
106
|
end
|
105
107
|
|
106
108
|
# メールアドレス風の文字列を取得する。
|
@@ -108,56 +110,54 @@ module Randwordjp
|
|
108
110
|
# @param [Integer] local_length ローカルパートの文字列長
|
109
111
|
# @param [Integer] domain_lengh ドメインパートの文字列長
|
110
112
|
# @return [String] lengthで指定した文字列長の文字列
|
111
|
-
def self.
|
112
|
-
local_part =
|
113
|
-
domain_part =
|
114
|
-
|
113
|
+
def self.mail_address(randword = 'rand', local_length = 10, domain_length = 10)
|
114
|
+
local_part = alphanumeric_plus(rand(local_length) + 1)
|
115
|
+
domain_part = alphanumeric(rand(domain_length) + 1) + '.' + randword
|
116
|
+
local_part + '@' + domain_part
|
115
117
|
end
|
116
118
|
|
117
|
-
|
118
119
|
# Date型の日付を取得する。
|
119
120
|
# @param [Date] date 指定日
|
120
121
|
# @param [Integer] before 指定日より後の最大何日までを対象とする
|
121
122
|
# @param [Integer] afute 指定日より前の最大何日までを対象とする
|
122
123
|
# @return [Date] 日付を取得する
|
123
|
-
def self.
|
124
|
-
|
124
|
+
def self.date(date = Date.today, before = 100, after = 100)
|
125
|
+
(date + (rand(after)) - (rand(before))).to_s
|
125
126
|
end
|
126
127
|
|
127
128
|
# String型の都道府県名を取得する
|
128
129
|
# @return [String] 都道府県名
|
129
|
-
def self.
|
130
|
-
todofuken_list = YAML.load_file(@yamlfile)[
|
131
|
-
|
130
|
+
def self.todofuken
|
131
|
+
todofuken_list = YAML.load_file(@yamlfile)['worddata']['todofuken_list']
|
132
|
+
todofuken_list.sample
|
132
133
|
end
|
133
134
|
|
134
135
|
# Hash型の苗字データを取得する
|
135
136
|
# @return [Hash] {:kanji => 漢字名, :kana => 読み仮名}
|
136
|
-
def self.
|
137
|
+
def self.myoji
|
137
138
|
db = SQLite3::Database.new(@dbfile)
|
138
|
-
sql =
|
139
|
+
sql = 'select count(*) from myojilist;'
|
139
140
|
id = Random.rand(((db.execute(sql))[0][0]).to_i)
|
140
141
|
sql = "select * from myojilist where id = #{id};"
|
141
142
|
data = db.execute(sql)
|
142
|
-
return {kanji: data[0][1], kana: data[0][2]}
|
143
143
|
db.close
|
144
|
+
{ kanji: data[0][1], kana: data[0][2] }
|
144
145
|
end
|
145
146
|
|
146
147
|
# Hash型の名前データを取得する
|
147
148
|
# genderは男性はMで女性はFになります。
|
148
149
|
# @return [Hash] {:kanji => 漢字名, :kana => 読み仮名, :gender => 性別}
|
149
|
-
def self.
|
150
|
+
def self.namae
|
150
151
|
db = SQLite3::Database.new(@dbfile)
|
151
|
-
sql =
|
152
|
+
sql = 'select count(*) from namaelist;'
|
152
153
|
id = Random.rand(((db.execute(sql))[0][0]).to_i)
|
153
154
|
sql = "select * from namaelist where id = #{id};"
|
154
155
|
data = db.execute(sql)
|
155
|
-
gender =
|
156
|
-
if data[0][3] == 2
|
157
|
-
gender =
|
156
|
+
gender = 'M'
|
157
|
+
if data[0][3] == 2
|
158
|
+
gender = 'F'
|
158
159
|
end
|
159
|
-
return {kanji: data[0][1], kana: data[0][2], gender: gender }
|
160
160
|
db.close
|
161
|
+
{ kanji: data[0][1], kana: data[0][2], gender: gender }
|
161
162
|
end
|
162
|
-
|
163
163
|
end
|
data/randwordjp.gemspec
CHANGED
@@ -4,22 +4,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'randwordjp/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'randwordjp'
|
8
8
|
spec.version = Randwordjp::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.description =
|
12
|
-
spec.summary =
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['inpwjp']
|
10
|
+
spec.email = ['inpw@mua.biglobe.ne.jp']
|
11
|
+
spec.description = 'get Japanese random words.'
|
12
|
+
spec.summary = 'get Japanese random words.'
|
13
|
+
spec.homepage = ''
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
24
|
-
spec.add_development_dependency
|
21
|
+
spec.add_development_dependency 'bundler'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'rspec'
|
24
|
+
spec.add_development_dependency 'sqlite3'
|
25
25
|
end
|
data/spec/randwordjp_spec.rb
CHANGED
@@ -5,109 +5,107 @@ describe Randwordjp do
|
|
5
5
|
expect(Randwordjp::VERSION).not_to be nil
|
6
6
|
end
|
7
7
|
|
8
|
-
it '
|
9
|
-
expect(Randwordjp.
|
8
|
+
it 'numeric length is should have set length' do
|
9
|
+
expect(Randwordjp.numeric(15).length).to be 15
|
10
10
|
end
|
11
11
|
|
12
|
-
it '
|
13
|
-
expect(Randwordjp.
|
12
|
+
it 'numeric is should have numerical' do
|
13
|
+
expect(Randwordjp.numeric(10)).to match(/[0-9]{10}/)
|
14
14
|
end
|
15
15
|
|
16
|
-
it '
|
17
|
-
expect(Randwordjp.
|
16
|
+
it 'numeric is not should have next time' do
|
17
|
+
expect(Randwordjp.numeric(10)).not_to eq(Randwordjp.numeric(10))
|
18
18
|
end
|
19
19
|
|
20
|
-
describe
|
21
|
-
it '
|
22
|
-
expect(Randwordjp.
|
20
|
+
describe 'zenkaku_katakana' do
|
21
|
+
it 'zenkaku_katakana length is should have set length' do
|
22
|
+
expect(Randwordjp.zenkaku_katakana(15).length).to be 15
|
23
23
|
end
|
24
24
|
|
25
|
-
it '
|
26
|
-
expect(Randwordjp.
|
25
|
+
it 'zenkaku_katakana is should have 全角カタカナ' do
|
26
|
+
expect(Randwordjp.zenkaku_katakana(10)).to match(/[ア-ン]{10}/)
|
27
27
|
end
|
28
28
|
|
29
|
-
it '
|
30
|
-
expect(Randwordjp.
|
29
|
+
it 'zenkaku_katakana is should have ヱヰ , when the old opt is true ' do
|
30
|
+
expect(Randwordjp.zenkaku_katakana(5000, old: true)).to match(/[ヱヰ]/)
|
31
31
|
end
|
32
32
|
|
33
|
-
it '
|
34
|
-
expect(Randwordjp.
|
33
|
+
it 'zenkaku_katakana is not have ヱヰ , when the old opt is false ' do
|
34
|
+
expect(Randwordjp.zenkaku_katakana(5000, old: false)).not_to match(/[ヱヰ]/)
|
35
35
|
end
|
36
36
|
|
37
|
-
it '
|
38
|
-
expect(Randwordjp.
|
37
|
+
it 'zenkaku_katakana is not should have next time' do
|
38
|
+
expect(Randwordjp.zenkaku_katakana(10)).not_to eq(Randwordjp.zenkaku_katakana(10))
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
describe
|
43
|
-
it '
|
44
|
-
expect(Randwordjp.
|
42
|
+
describe 'zenkaku_hirakana' do
|
43
|
+
it 'zenkaku_hirakana length is should have set length' do
|
44
|
+
expect(Randwordjp.zenkaku_hirakana(15).length).to be 15
|
45
45
|
end
|
46
46
|
|
47
|
-
it '
|
48
|
-
expect(Randwordjp.
|
47
|
+
it 'zenkaku_hirakana is should have 全角ひらかな' do
|
48
|
+
expect(Randwordjp.zenkaku_hirakana(10)).to match(/[あ-ん]{10}/)
|
49
49
|
end
|
50
50
|
|
51
|
-
it '
|
52
|
-
expect(Randwordjp.
|
51
|
+
it 'zenkaku_hirakana is should have ゑゐ , when the old opt is true ' do
|
52
|
+
expect(Randwordjp.zenkaku_hirakana(5000, old: true)).to match(/[ゑゐ]/)
|
53
53
|
end
|
54
54
|
|
55
|
-
it '
|
56
|
-
expect(Randwordjp.
|
55
|
+
it 'zenkaku_hirakana is not have ゑゐ , when the old opt is false ' do
|
56
|
+
expect(Randwordjp.zenkaku_hirakana(5000, old: false)).not_to match(/[ゑゐ]/)
|
57
57
|
end
|
58
58
|
|
59
|
-
it '
|
60
|
-
expect(Randwordjp.
|
59
|
+
it 'zenkaku_hirakana is not should have next time' do
|
60
|
+
expect(Randwordjp.zenkaku_hirakana(10)).not_to eq(Randwordjp.zenkaku_hirakana(10))
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
it '
|
65
|
-
expect(Randwordjp.
|
64
|
+
it 'zenkaku_all is not should have next time' do
|
65
|
+
expect(Randwordjp.zenkaku_all(10)).not_to eq(Randwordjp.zenkaku_all(10))
|
66
66
|
end
|
67
67
|
|
68
|
-
it '
|
69
|
-
expect(Randwordjp
|
68
|
+
it 'todofuken is not should have next time' do
|
69
|
+
expect(Randwordjp.todofuken).not_to eq(Randwordjp.todofuken)
|
70
70
|
end
|
71
71
|
|
72
|
-
describe
|
73
|
-
it '
|
74
|
-
expect(Randwordjp
|
72
|
+
describe 'namae' do
|
73
|
+
it 'namae is not null' do
|
74
|
+
expect(Randwordjp.namae).not_to eq nil
|
75
75
|
end
|
76
76
|
|
77
|
-
it '
|
78
|
-
expect(Randwordjp
|
77
|
+
it 'namae have :kana at return hash' do
|
78
|
+
expect(Randwordjp.namae[:kana]).not_to eq nil
|
79
79
|
end
|
80
80
|
|
81
|
-
it '
|
82
|
-
expect(Randwordjp
|
81
|
+
it 'namae have :kanji at return hash' do
|
82
|
+
expect(Randwordjp.namae[:kanji]).not_to eq nil
|
83
83
|
end
|
84
84
|
|
85
|
-
it '
|
86
|
-
expect(Randwordjp
|
85
|
+
it 'namae have :gender at return hash' do
|
86
|
+
expect(Randwordjp.namae[:gender]).not_to eq nil
|
87
87
|
end
|
88
88
|
|
89
|
-
it '
|
90
|
-
expect(Randwordjp
|
89
|
+
it 'namae is not should have next time' do
|
90
|
+
expect(Randwordjp.namae.to_s).not_to eq(Randwordjp.namae.to_s)
|
91
91
|
end
|
92
|
-
|
93
92
|
end
|
94
93
|
|
95
|
-
describe
|
96
|
-
it '
|
97
|
-
expect(Randwordjp
|
94
|
+
describe 'myoji' do
|
95
|
+
it 'myoji is not null' do
|
96
|
+
expect(Randwordjp.myoji).not_to eq nil
|
98
97
|
end
|
99
98
|
|
100
|
-
it '
|
101
|
-
expect(Randwordjp
|
99
|
+
it 'myoji have :kana at return hash' do
|
100
|
+
expect(Randwordjp.myoji[:kana]).not_to eq nil
|
102
101
|
end
|
103
102
|
|
104
|
-
it '
|
105
|
-
expect(Randwordjp
|
103
|
+
it 'myoji have :kanji at return hash' do
|
104
|
+
expect(Randwordjp.myoji[:kanji]).not_to eq nil
|
106
105
|
end
|
107
106
|
|
108
|
-
it '
|
109
|
-
expect(Randwordjp
|
107
|
+
it 'myoji is not should have next time' do
|
108
|
+
expect(Randwordjp.myoji.to_s).not_to eq(Randwordjp.myoji.to_s)
|
110
109
|
end
|
111
110
|
end
|
112
111
|
end
|
113
|
-
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: randwordjp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- inpwjp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,6 +75,7 @@ extra_rdoc_files: []
|
|
75
75
|
files:
|
76
76
|
- ".gitignore"
|
77
77
|
- ".rspec"
|
78
|
+
- ".ruby-version"
|
78
79
|
- ".travis.yml"
|
79
80
|
- Gemfile
|
80
81
|
- Guardfile
|