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