-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.ru
51 lines (48 loc) · 2.52 KB
/
config.ru
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
require 'json'
require './tamagotchi.rb'
use Rack::Static, urls: ['/images'],
root: 'public'
class Pet
def call(env)
req = Rack::Request.new(env)
case req.path_info
when '/'
[200, { 'Content-Type' => 'text/html', 'Cache-Control' => 'public, max-age=86400' }, File.open('public/index.html', File::RDONLY)]
when '/index.json'
@@pet = Tamagotchi.new('Pikachu')
result = JSON.generate(name: @@pet.name, stuff_in_belly: @@pet.stuff_in_belly, is_dead: @@pet.is_dead,
stuff_in_intestine: @@pet.stuff_in_intestine, message: @@pet.message, image: '/images/happy.png')
[200, { 'Content-Type' => 'text/json' }, [result]]
when '/feed.json'
@@pet.feed
result = JSON.generate(name: @@pet.name, stuff_in_belly: @@pet.stuff_in_belly, is_dead: @@pet.is_dead,
stuff_in_intestine: @@pet.stuff_in_intestine, message: @@pet.message, image: '/images/eating.png')
[200, { 'Content-Type' => 'text/json' }, [result]]
when '/walk.json'
@@pet.walk
result = JSON.generate(name: @@pet.name, stuff_in_belly: @@pet.stuff_in_belly, is_dead: @@pet.is_dead,
stuff_in_intestine: @@pet.stuff_in_intestine, message: @@pet.message, image: '/images/walk.gif')
[200, { 'Content-Type' => 'text/json' }, [result]]
when '/put_to_bed.json'
@@pet.put_to_bed
result = JSON.generate(name: @@pet.name, stuff_in_belly: @@pet.stuff_in_belly, is_dead: @@pet.is_dead,
stuff_in_intestine: @@pet.stuff_in_intestine, message: @@pet.message, image: '/images/sleeping.jpg')
[200, { 'Content-Type' => 'text/json' }, [result]]
when '/toss.json'
@@pet.toss
result = JSON.generate(name: @@pet.name, stuff_in_belly: @@pet.stuff_in_belly, is_dead: @@pet.is_dead,
stuff_in_intestine: @@pet.stuff_in_intestine, message: @@pet.message, image: '/images/toss.gif')
[200, { 'Content-Type' => 'text/json' }, [result]]
when '/rock.json'
@@pet.rock
result = JSON.generate(name: @@pet.name, stuff_in_belly: @@pet.stuff_in_belly, is_dead: @@pet.is_dead,
stuff_in_intestine: @@pet.stuff_in_intestine, message: @@pet.message, image: '/images/rocking.jpg')
[200, { 'Content-Type' => 'text/json' }, [result]]
else
error_hash = JSON.generate(result: "I'm Lost!")
[404, { 'Content-Type' => 'text/json' }, [error_hash]]
end
end
end
run Pet.new
# to run server 'rackup config.ru' in terminal