matsuya 0.1.1 → 0.3.0

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
- SHA1:
3
- metadata.gz: 3f98865d16d194fbff56cd113ce65df3bac2d0c7
4
- data.tar.gz: 61b4b695ce167e15ee00d4e47b189ad7ac17cd72
2
+ SHA256:
3
+ metadata.gz: 48e7fd18bfc179c72b30af25681a864a2e081e0dcaa2e0f3ae961cfd11f97a46
4
+ data.tar.gz: c28eecc90e63cab8055b284bc933c433ba68481c226d6f823e5cde8bff9a69e0
5
5
  SHA512:
6
- metadata.gz: deb6302617793dde6eaf81d5971a13e33daaf99d045f5bb84b258db7a2f3f033388ed366dafa7fc7b69beb01585b0f9948286ceedb6b2ce2d1ad5124fc4b0320
7
- data.tar.gz: 99dde451e918eb081247a280fb759dbe054ce94691315822cf736454b38561ee07829848dc4f733b4dd13f6fb832937bb764e7be2ca3934fe995e29537b92237
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
@@ -1,14 +1,29 @@
1
1
  #!/usr/bin/env ruby
2
+ # coding: utf-8
2
3
 
3
4
  require 'matsuya'
4
-
5
- if ARGV.include?('--help') || ARGV.include?('-h')
6
- puts "Usage: matsuya [okano]"
7
- exit
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
@@ -11,28 +11,66 @@ module Matsuya
11
11
  # 牛めしのようにプレミアムとそうでないものがある場合は、プレミアムだけを書く
12
12
  # オリジナルカレギュウ(プレミアム牛肉使用)も、プレミアムとして扱い、プレミアム牛肉使用と書いていないほうは書かない
13
13
  Sample = Set.new([ Menu.new(%i[プレミアム 牛 めし], 380),
14
- Menu.new(%i[プレミアム 旨辛 ネギ たま 牛 めし], 480),
15
- Menu.new(%i[プレミアム おろし ポン酢 牛めし], 480),
16
- Menu.new(%i[プレミアム キムチ 牛 めし], 480),
17
- Menu.new(%i[オリジナル カレー], 330),
18
- Menu.new(%i[オリジナル カレギュウ (プレミアム牛肉使用)], 500),
19
- Menu.new(%i[オリジナル カレギュウ], 490),
20
- Menu.new(%i[オリジナル ハンバーグ カレー], 590),
21
- Menu.new(%i[ネギ たっぷり ネギ 豚 カルビ 丼], 450),
22
- Menu.new(%i[ビビンバ ], 450),
23
- Menu.new(%i[キムチ カルビ ], 490),
24
- Menu.new(%i[ テキ 定食], 690),
25
- Menu.new(%i[シャンピニオン ソース ハンバーグ 定食], 650),
26
- Menu.new(%i[ 焼肉 定食], 590),
27
- Menu.new(%i[カルビ 焼肉 定食], 630),
28
- Menu.new(%i[ バラ 焼肉 定食], 550),
29
- Menu.new(%i[スタミナ バラ 生姜焼 定食], 590),
30
- Menu.new(%i[ チリ ソース 定食], 630),
31
- Menu.new(%i[ブラウン ソース ハンバーグ 定食], 630),
32
- Menu.new(%i[豆腐 キムチ チゲ 膳 (プレミアム牛肉使用)], 530),
33
- Menu.new(%i[チゲ カルビ 焼肉 膳 (プレミアム牛肉使用)], 720),
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, :鶏, :チリ, *_tail)) do
103
- [head, :鶏のチリ, tail]
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, :カルビ, :焼肉, *_tail)) do
107
- [head, :カルビ焼, tail]
176
+ with(Egison::List.(*_head, :とろろ, :玉子, *_tail)) do
177
+ [head, :とろたま, tail]
108
178
  end
109
179
 
110
- with(Egison::List.(*_head, :プレミアム, *_center, :(プレミアム牛肉使用), *_tail)) do
111
- [head, :プレミアム, center + tail]
180
+ with(Egison::List.(*_head, :カレー, :牛, *_tail)) do
181
+ [head, :カレギュウ, tail]
112
182
  end
113
183
 
114
- with(Egison::List.(*_head, :牛, :めし, *_center, :(プレミアム牛肉使用), *_tail)) do
115
- [:プレミアム, head, :牛, :めし, center + tail]
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=0.1) # !> shadowing outer local variable - ys2
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
@@ -1,3 +1,3 @@
1
1
  module Matsuya
2
- VERSION = "0.1.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -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.7"
24
- spec.add_development_dependency "rake", "~> 10.0"
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.1.1
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: 2015-12-05 00:00:00.000000000 Z
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.7'
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.7'
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.0'
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.0'
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
- rubyforge_project:
92
- rubygems_version: 2.4.5.1
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: []