matsuya 0.1.1 → 0.3.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.
- checksums.yaml +5 -5
- data/README.md +3 -1
- data/Rakefile +7 -0
- data/bin/matsuya +20 -5
- data/lib/matsuya.rb +100 -30
- data/lib/matsuya/version.rb +1 -1
- data/matsuya.gemspec +2 -2
- metadata +10 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 48e7fd18bfc179c72b30af25681a864a2e081e0dcaa2e0f3ae961cfd11f97a46
|
4
|
+
data.tar.gz: c28eecc90e63cab8055b284bc933c433ba68481c226d6f823e5cde8bff9a69e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d30c85f87783d894f9339748014c988d48066198eb7bfb856d3ec94a7805b46f17a99d893fcbc0e740b8da8a83fe64ce451216113d5c07eea7cd70eb17919c4
|
7
|
+
data.tar.gz: b42831d524ac59e19a95c068028920d9c3e6ffd95500e36aac741f092f7ef283930d65f356dc6abfc96dec70809a9cd74f93f7b099fd23a622c66a85312f8760
|
data/README.md
CHANGED
@@ -28,7 +28,7 @@ gem 'matsuya'
|
|
28
28
|
牛めし
|
29
29
|
% matsuya
|
30
30
|
めし
|
31
|
-
% matsuya 0.8
|
31
|
+
% matsuya -o 0.8
|
32
32
|
オリジナルチリソースハンバーグ定食
|
33
33
|
% matsuya
|
34
34
|
プレミアムカルビキムカル丼
|
@@ -36,6 +36,8 @@ gem 'matsuya'
|
|
36
36
|
```
|
37
37
|
キツい
|
38
38
|
|
39
|
+
コマンドラインオプションについては -h オプションをつけてくれ
|
40
|
+
|
39
41
|
### ライブラリとして
|
40
42
|
```ruby
|
41
43
|
require 'matsuya'
|
data/Rakefile
CHANGED
@@ -1,2 +1,9 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
|
3
|
+
task :graph do
|
4
|
+
require 'matsuya'
|
5
|
+
puts 'digraph matsuya {'
|
6
|
+
#puts Matsuya::Sample.map{|m| 'begin -> ' + m.pattern.join(' -> ') + ' -> end;' }.join("\n")
|
7
|
+
puts Matsuya::Sample.map{|m| [:begin, *m.pattern, :end].each_cons(2).map{|a,b| " \"#{a}\" -> \"#{b}\";" } }.flatten.uniq.join("\n")
|
8
|
+
puts '}'
|
9
|
+
end
|
data/bin/matsuya
CHANGED
@@ -1,14 +1,29 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# coding: utf-8
|
2
3
|
|
3
4
|
require 'matsuya'
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
require 'optparse'
|
6
|
+
okano = 0.1
|
7
|
+
OptionParser.new do |opt|
|
8
|
+
opt.banner = "Usage: matsuya [options]"
|
9
|
+
opt.separator "options are:"
|
10
|
+
opt.on('-h', '--help', "Show this message") do
|
11
|
+
puts opt
|
12
|
+
exit
|
13
|
+
end
|
14
|
+
opt.on('-o', '--okano=', "出力が狂う確率(0.0-1.0 default %f)" % okano) do |value|
|
15
|
+
if value.match(/^[0-9]+(?:\.[0-9]+)?$/)
|
16
|
+
okano = value.to_f
|
17
|
+
else
|
18
|
+
warn 'Invalid おかの値 (-h to show help message)'
|
19
|
+
abort
|
20
|
+
end
|
21
|
+
end
|
22
|
+
opt.parse!(ARGV)
|
8
23
|
end
|
9
24
|
|
10
25
|
if ARGV.size > 0 && ARGV[0].match(/^[0-9]+(?:\.[0-9]+)?$/)
|
11
26
|
puts Matsuya.order(ARGV[0].to_f)
|
12
27
|
else
|
13
|
-
puts Matsuya.order
|
28
|
+
puts Matsuya.order(okano: okano)
|
14
29
|
end
|
data/lib/matsuya.rb
CHANGED
@@ -11,28 +11,66 @@ module Matsuya
|
|
11
11
|
# 牛めしのようにプレミアムとそうでないものがある場合は、プレミアムだけを書く
|
12
12
|
# オリジナルカレギュウ(プレミアム牛肉使用)も、プレミアムとして扱い、プレミアム牛肉使用と書いていないほうは書かない
|
13
13
|
Sample = Set.new([ Menu.new(%i[プレミアム 牛 めし], 380),
|
14
|
-
Menu.new(%i[プレミアム
|
15
|
-
Menu.new(%i[プレミアム おろし ポン酢
|
16
|
-
Menu.new(%i[
|
17
|
-
Menu.new(%i[
|
18
|
-
Menu.new(%i[
|
19
|
-
Menu.new(%i[
|
20
|
-
Menu.new(%i[
|
21
|
-
Menu.new(%i[
|
22
|
-
Menu.new(%i[
|
23
|
-
Menu.new(%i[
|
24
|
-
Menu.new(%i[
|
25
|
-
Menu.new(%i[
|
26
|
-
Menu.new(%i[
|
27
|
-
Menu.new(%i[
|
28
|
-
Menu.new(%i[
|
29
|
-
Menu.new(%i[
|
30
|
-
Menu.new(%i[
|
31
|
-
Menu.new(%i[
|
32
|
-
Menu.new(%i[
|
33
|
-
Menu.new(%i[
|
14
|
+
Menu.new(%i[ネギ たっぷり プレミアム 旨 辛 ネギ 玉子 牛 めし], 490),
|
15
|
+
Menu.new(%i[プレミアム おろし ポン酢 牛 めし], 480),
|
16
|
+
Menu.new(%i[味噌漬け トンテキ 牛 めし (国産玉ねぎ使用) + キムチ], 730),
|
17
|
+
Menu.new(%i[味噌漬け トンテキ 牛 めし (国産玉ねぎ使用) + 生野菜 + キムチ], 830),
|
18
|
+
Menu.new(%i[味噌漬け トンテキ 牛 めし (国産玉ねぎ使用) + とろろ], 730),
|
19
|
+
Menu.new(%i[味噌漬け トンテキ 牛 めし (国産玉ねぎ使用) + 生野菜 + とろろ], 830),
|
20
|
+
Menu.new(%i[創業 牛 カレー], 490), # 創業ビーフカレー
|
21
|
+
Menu.new(%i[創業 牛 カレー + 生野菜], 590),
|
22
|
+
Menu.new(%i[創業 プレミアム 牛 カレー 牛], 720),
|
23
|
+
Menu.new(%i[創業 牛 カレー 牛], 660),
|
24
|
+
Menu.new(%i[創業 ハンバーグ 牛 カレー], 720),
|
25
|
+
Menu.new(%i[味噌漬け トンテキ 丼 + キムチ], 730),
|
26
|
+
Menu.new(%i[味噌漬け トンテキ 丼 + とろろ], 730),
|
27
|
+
Menu.new(%i[味噌漬け トンテキ 丼 + 生野菜 + キムチ], 830),
|
28
|
+
Menu.new(%i[味噌漬け トンテキ 丼 + 生野菜 + とろろ], 830),
|
29
|
+
Menu.new(%i[豚 キムチ 丼], 650),
|
30
|
+
Menu.new(%i[キムチ カルビ 丼], 500),
|
31
|
+
Menu.new(%i[ネギ たっぷり ネギ 塩 豚 肩ロース 丼], 500),
|
32
|
+
Menu.new(%i[ビビンバ 丼], 500),
|
33
|
+
Menu.new(%i[まぐろ 丼 6枚盛], 730),
|
34
|
+
Menu.new(%i[まぐろ 丼 大漁12枚盛], 1000),
|
35
|
+
Menu.new(%i[海老 チリ ソース 定食], 730),
|
36
|
+
Menu.new(%i[海老 チリ ソース 定食 + ポテトサラダ], 790),
|
37
|
+
Menu.new(%i[豚 キムチ 定食], 730),
|
38
|
+
Menu.new(%i[牛 焼肉 定食], 600),
|
39
|
+
Menu.new(%i[カルビ 焼肉 定食], 660),
|
40
|
+
Menu.new(%i[豚 肩ロース 豚 焼肉定食], 600),
|
41
|
+
Menu.new(%i[豚 肩ロース 生姜焼 定食], 660),
|
42
|
+
Menu.new(%i[ブラウン ソース ハンバーグ 定食], 600),
|
43
|
+
Menu.new(%i[ブラウン ソース 玉子 ハンバーグ 定食], 680),
|
44
|
+
Menu.new(%i[プレミアム 牛 皿 + 牛 焼肉], 730),
|
45
|
+
Menu.new(%i[プレミアム 牛 皿 + 牛 焼肉 + 生野菜], 830),
|
46
|
+
Menu.new(%i[プレミアム 牛 皿 + 豚 焼肉], 730),
|
47
|
+
Menu.new(%i[プレミアム 牛 皿 + 豚 焼肉 + 生野菜], 830),
|
48
|
+
Menu.new(%i[プレミアム 牛 皿 + ブラウン ソース ハンバーグ], 730),
|
49
|
+
Menu.new(%i[プレミアム 牛 皿 + ブラウン ソース ハンバーグ + 生野菜], 830),
|
50
|
+
Menu.new(%i[プレミアム 牛 皿 + 焼鮭], 730),
|
51
|
+
Menu.new(%i[プレミアム 牛 皿 + 焼鮭 生野菜], 830),
|
52
|
+
Menu.new(%i[プレミアム 牛 皿 + カルビ 焼肉], 790),
|
53
|
+
Menu.new(%i[プレミアム 牛 皿 + カルビ 焼肉 + 生野菜], 890),
|
54
|
+
Menu.new(%i[プレミアム 牛 皿 + 豚 生姜焼], 790),
|
55
|
+
Menu.new(%i[プレミアム 牛 皿 + 豚 生姜焼 + 生野菜], 890),
|
56
|
+
Menu.new(%i[おこさま プレミアム 牛 めし プレート], 390),
|
57
|
+
Menu.new(%i[おこさま 牛 めし プレート], 390),
|
58
|
+
Menu.new(%i[おこさま カレー プレート], 390),
|
59
|
+
Menu.new(%i[+ おもちゃ], 200),
|
60
|
+
Menu.new(%i[りんご ジュース], 100),
|
61
|
+
Menu.new(%i[ぶっかけ うどん], 320),
|
62
|
+
Menu.new(%i[ぶっかけ うどん + ミニ プレミアム 牛 めし], 620),
|
63
|
+
Menu.new(%i[ぶっかけ うどん + ミニ 創業 カレー], 620),
|
64
|
+
Menu.new(%i[ぶっかけ とろろ 玉子 うどん], 400),
|
65
|
+
Menu.new(%i[ぶっかけ とろろ 玉子 うどん + ミニ プレミアム 牛 めし], 700),
|
66
|
+
Menu.new(%i[ぶっかけ とろろ 玉子 うどん + ミニ 創業 カレー], 700),
|
34
67
|
])
|
35
68
|
|
69
|
+
# 松屋の朝定食
|
70
|
+
Morning = Set.new([ %i[定番 朝 定食],
|
71
|
+
%i[焼鮭 定食],
|
72
|
+
%i[ソーセージ エッグ 定食]])
|
73
|
+
|
36
74
|
# 松屋ネットワーク
|
37
75
|
NetworkNode = Struct.new(:node, :follow) do
|
38
76
|
def inspect
|
@@ -91,28 +129,60 @@ module Matsuya
|
|
91
129
|
# String できたー!どの特性を残そう?
|
92
130
|
def preparation(dish)
|
93
131
|
match(dish) do
|
132
|
+
with(Egison::List.(*_head, :+, *_tail)) do
|
133
|
+
[head, :' ', tail, :セット]
|
134
|
+
end
|
135
|
+
|
94
136
|
with(Egison::List.(*_head, :キムチ, :カルビ, *_tail)) do
|
95
137
|
[head, :キムカル, tail]
|
96
138
|
end
|
97
139
|
|
140
|
+
with(Egison::List.(*_head, :創業, :牛, *_tail)) do
|
141
|
+
[head, :創業ビーフ, tail]
|
142
|
+
end
|
143
|
+
|
144
|
+
with(Egison::List.(*_head, :創業, :プレミアム, :牛, *_tail)) do
|
145
|
+
[head, :創業プレミアムビーフ, tail]
|
146
|
+
end
|
147
|
+
|
148
|
+
with(Egison::List.(*_head, :牛, :カレー, *_tail)) do
|
149
|
+
[head, :ビーフカレー, tail]
|
150
|
+
end
|
151
|
+
|
98
152
|
with(Egison::List.(*_head, :ビビンバ, :丼, *_tail)) do
|
99
153
|
[head, :ビビン丼, tail]
|
100
154
|
end
|
101
155
|
|
102
|
-
with(Egison::List.(*_head,
|
103
|
-
[head,
|
156
|
+
with(Egison::List.(*_head, :海老, :チリ, *_tail)) do
|
157
|
+
[head, :海老のチリ, tail]
|
158
|
+
end
|
159
|
+
|
160
|
+
with(Egison::List.(*_head, *%i[豚 肩ロース 豚 焼肉定食], *_tail)) do
|
161
|
+
[head, :豚, :肩ロース, :の, :豚, :焼肉定食, tail]
|
162
|
+
end
|
163
|
+
|
164
|
+
with(Egison::List.(*_head, *%i[豚 肩ロース 生姜焼 定食], *_tail)) do
|
165
|
+
[head, :豚, :肩ロース, :の, :生姜焼, :定食, tail]
|
166
|
+
end
|
167
|
+
|
168
|
+
with(Egison::List.(*_head, :玉子, :ハンバーグ, *_tail)) do
|
169
|
+
[head, :エッグ, :ハンバーグ, tail]
|
170
|
+
end
|
171
|
+
|
172
|
+
with(Egison::List.(*_head, :ネギ, :玉子, *_tail)) do
|
173
|
+
[head, :ネギたま, tail]
|
104
174
|
end
|
105
175
|
|
106
|
-
with(Egison::List.(*_head,
|
107
|
-
[head,
|
176
|
+
with(Egison::List.(*_head, :とろろ, :玉子, *_tail)) do
|
177
|
+
[head, :とろたま, tail]
|
108
178
|
end
|
109
179
|
|
110
|
-
with(Egison::List.(*_head,
|
111
|
-
[head,
|
180
|
+
with(Egison::List.(*_head, :カレー, :牛, *_tail)) do
|
181
|
+
[head, :カレギュウ, tail]
|
112
182
|
end
|
113
183
|
|
114
|
-
with(Egison::List.(*_head,
|
115
|
-
[
|
184
|
+
with(Egison::List.(*_head, :ハンバーグ, :皿, *_tail)) do
|
185
|
+
[head, :バーグディッシュ, tail]
|
116
186
|
end
|
117
187
|
|
118
188
|
with(Egison::Multiset.(*_not_match)) do
|
@@ -129,8 +199,8 @@ module Matsuya
|
|
129
199
|
# Float おかの値。おかの値が高いと商品が変異する確率が上がる。0-1の範囲の値。
|
130
200
|
# ==== Return
|
131
201
|
# String 商品名
|
132
|
-
def order(okano
|
133
|
-
preparation(generate.reject{|x|x==:begin}).join
|
202
|
+
def order(okano: 0.1)
|
203
|
+
preparation(generate(okano: okano).reject{|x|x==:begin}).join
|
134
204
|
end
|
135
205
|
end
|
136
206
|
end
|
data/lib/matsuya/version.rb
CHANGED
data/matsuya.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.required_ruby_version = '~> 2.0'
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler", "~> 1
|
24
|
-
spec.add_development_dependency "rake", "~> 10.
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.4"
|
25
25
|
spec.add_dependency "egison", "~> 1.0"
|
26
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matsuya
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toshiaki Asai
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '2.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '10.
|
33
|
+
version: '10.4'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '10.
|
40
|
+
version: '10.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: egison
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -73,7 +73,7 @@ homepage: https://github.com/toshia/matsuya-generator-ruby
|
|
73
73
|
licenses:
|
74
74
|
- MIT
|
75
75
|
metadata: {}
|
76
|
-
post_install_message:
|
76
|
+
post_install_message:
|
77
77
|
rdoc_options: []
|
78
78
|
require_paths:
|
79
79
|
- lib
|
@@ -88,9 +88,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
|
-
|
92
|
-
|
93
|
-
signing_key:
|
91
|
+
rubygems_version: 3.1.4
|
92
|
+
signing_key:
|
94
93
|
specification_version: 4
|
95
94
|
summary: I'm hungry. gyu-meshi! gyu-meshi!
|
96
95
|
test_files: []
|