pasture 0.0.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/pasture +6 -0
  3. data/lib/pasture/api.rb +43 -2
  4. metadata +31 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b5ee5c9ad634dba106d17f4143e193d4032e6243
4
- data.tar.gz: 3e878e42b80543079ce9477a5544277b5048fb72
3
+ metadata.gz: 38123fd083f5c6e7f8c1e91275ea32aa32d13f1b
4
+ data.tar.gz: 953fae3ba6f12f13067d50a690733994dd5f7da4
5
5
  SHA512:
6
- metadata.gz: 5e5417d759bc727c9d389a89c7f9c2a94a5aa258f59d2e098bbdc9e927488e5852c56faef4408b8c316e4e73a9ac8c5f74e180e08b1efc0343b055f4dec1856b
7
- data.tar.gz: a755a4c511411ffd30a585f4f8de1c2f0e72676557786c0a89c46cb603a37fe1ba45caa8d4a4c30de485650335944a9ee25da757107a759ece032fcf12b85eb7
6
+ metadata.gz: 69a8b27c19385c6df23f06d3c33fe3a2fed49a2ef04ae8b5db714ecc150731099c6095645378621e7a89c79926e3f2eeb9c472be9b89f68cb24a1392ce38f77e
7
+ data.tar.gz: 89b2176216966b6b7b15193285780e73baf20ec57598332e2372cd330f2bfa7ae6a1bb882e2ae17fc7f0479ac6bd50d9641d2204e0585d277704fc76f5784f2a
@@ -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
@@ -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
- Cowsay.say(params[:string] || "", options['character'])
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.0.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: 2016-12-21 00:00:00.000000000 Z
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: {}