pasture 0.0.0 → 0.2.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 +4 -4
- data/bin/pasture +6 -0
- data/lib/pasture/api.rb +43 -2
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38123fd083f5c6e7f8c1e91275ea32aa32d13f1b
|
4
|
+
data.tar.gz: 953fae3ba6f12f13067d50a690733994dd5f7da4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69a8b27c19385c6df23f06d3c33fe3a2fed49a2ef04ae8b5db714ecc150731099c6095645378621e7a89c79926e3f2eeb9c472be9b89f68cb24a1392ce38f77e
|
7
|
+
data.tar.gz: 89b2176216966b6b7b15193285780e73baf20ec57598332e2372cd330f2bfa7ae6a1bb882e2ae17fc7f0479ac6bd50d9641d2204e0585d277704fc76f5784f2a
|
data/bin/pasture
CHANGED
@@ -20,6 +20,12 @@ module GLIWrapper
|
|
20
20
|
puts "No configuration file found at #{config_file}; continuing with defaults"
|
21
21
|
end
|
22
22
|
Pasture::API.set :pasture_options, options
|
23
|
+
if options[:sinatra_settings]
|
24
|
+
Pasture::API.set options[:sinatra_settings]
|
25
|
+
if Pasture::API.server == 'thin' || Pasture::API.server == 'mongrel'
|
26
|
+
require Pasture::API.server
|
27
|
+
end
|
28
|
+
end
|
23
29
|
Pasture::API.run!
|
24
30
|
end
|
25
31
|
end
|
data/lib/pasture/api.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'sinatra/base'
|
2
2
|
require 'cowsay'
|
3
|
+
require 'pg'
|
4
|
+
require 'sequel'
|
3
5
|
|
4
6
|
module Pasture
|
5
7
|
|
@@ -7,14 +9,53 @@ module Pasture
|
|
7
9
|
|
8
10
|
include Cowsay
|
9
11
|
|
12
|
+
def initialize
|
13
|
+
super()
|
14
|
+
puts settings.pasture_options[:db]
|
15
|
+
puts 'true' if settings.pasture_options[:db]
|
16
|
+
if settings.pasture_options[:db]
|
17
|
+
@conn = Sequel.connect(settings.pasture_options[:db])
|
18
|
+
unless @conn.table_exists?(:sayings)
|
19
|
+
@conn.create_table :sayings do
|
20
|
+
primary_key :id
|
21
|
+
String :message
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
10
27
|
helpers do
|
11
28
|
def options
|
12
29
|
settings.pasture_options
|
13
30
|
end
|
31
|
+
def conn
|
32
|
+
@conn
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
post '/api/v1/cowsay/sayings' do
|
37
|
+
halt 501, '501: This endpoint requires a database connection' unless conn
|
38
|
+
conn[:sayings].insert(:message => params[:message])
|
39
|
+
end
|
40
|
+
|
41
|
+
get '/api/v1/cowsay/sayings' do
|
42
|
+
content_type :json
|
43
|
+
halt 501, '501: This endpoint requires a database connection' unless conn
|
44
|
+
conn[:sayings].all.to_json
|
45
|
+
end
|
46
|
+
|
47
|
+
get '/api/v1/cowsay/sayings/:id' do
|
48
|
+
content_type :json
|
49
|
+
halt 501, '501: This endpoint requires a database connection' unless conn
|
50
|
+
message = conn[:sayings].where(:id => params[:id]).naked.first[:message]
|
51
|
+
Cowsay.say(message,
|
52
|
+
params[:character] || options[:default_character])
|
14
53
|
end
|
15
54
|
|
16
|
-
get '/' do
|
17
|
-
|
55
|
+
get '/api/v1/cowsay' do
|
56
|
+
content_type :json
|
57
|
+
Cowsay.say(params[:message] || options[:default_message] || '',
|
58
|
+
params[:character] || options[:default_character])
|
18
59
|
end
|
19
60
|
|
20
61
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pasture
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Henner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cowsay
|
@@ -66,6 +66,34 @@ dependencies:
|
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pg
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.19'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.19'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: sequel
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.42'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.42'
|
69
97
|
description: Pasture provides a RESTful API to serve all your cowsay needs.
|
70
98
|
email:
|
71
99
|
- kevin@puppetlabs.com
|
@@ -80,7 +108,7 @@ files:
|
|
80
108
|
- lib/pasture.rb
|
81
109
|
- lib/pasture/api.rb
|
82
110
|
- lib/pasture/logger.rb
|
83
|
-
homepage: http://github.com/puppetlabs/pasture
|
111
|
+
homepage: http://github.com/puppetlabs/pltraining-pasture
|
84
112
|
licenses:
|
85
113
|
- Apache 2.0
|
86
114
|
metadata: {}
|