webspicy 0.8.1 → 0.8.2

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
2
  SHA1:
3
- metadata.gz: 1216e362e9162c4657dc62e48660b3b1540d55b6
4
- data.tar.gz: 88214366f0817d552a1deb14603c5b5387cbdfd2
3
+ metadata.gz: 307186390914fac502fb560054045ff9936bfd84
4
+ data.tar.gz: 8d8e2493375de6c5273fb19d57819581665e2ac9
5
5
  SHA512:
6
- metadata.gz: ed7dbf5f9e8ad8e5dfa5e19de3085c8f631ccd61d7aa44def209f4765a5923c05443d302a02e160c559e3549aeebbebbd17d76ff3d36164f2b3aa010056252d5
7
- data.tar.gz: fbc13e3a9aec36b18b8a96b3d2f80b4140eda6dde257b5659f03c92733b9734637c1bc058161cccb0253fd974fc37c1f82c6ebac204d5c8de5ef585875ffbc23
6
+ metadata.gz: 0c902c091f409e70587947564b458e0d0090275c6d908b4bc57440a15c0c7c382a6bb8996a31302f23ca1c0504f4c28de44792d07c80bd76c8509f07230cac13
7
+ data.tar.gz: b0d2bef54001b8d1c6ef8218265b8567309c71cd88302ac09193a714e50e9a9d4e1e04b2e52ddb634b87e8d0035745eb715a4b4f4249a229bf2f199b6c5c52ae
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../..
3
3
  specs:
4
- webspicy (0.8.0)
4
+ webspicy (0.8.2)
5
5
  finitio (~> 0.5.2)
6
6
  http (~> 2)
7
7
  path (~> 1.3)
@@ -39,19 +39,19 @@ GEM
39
39
  rack-test (0.6.3)
40
40
  rack (>= 1.0)
41
41
  rake (10.5.0)
42
- rspec (3.6.0)
43
- rspec-core (~> 3.6.0)
44
- rspec-expectations (~> 3.6.0)
45
- rspec-mocks (~> 3.6.0)
46
- rspec-core (3.6.0)
47
- rspec-support (~> 3.6.0)
48
- rspec-expectations (3.6.0)
42
+ rspec (3.7.0)
43
+ rspec-core (~> 3.7.0)
44
+ rspec-expectations (~> 3.7.0)
45
+ rspec-mocks (~> 3.7.0)
46
+ rspec-core (3.7.0)
47
+ rspec-support (~> 3.7.0)
48
+ rspec-expectations (3.7.0)
49
49
  diff-lcs (>= 1.2.0, < 2.0)
50
- rspec-support (~> 3.6.0)
51
- rspec-mocks (3.6.0)
50
+ rspec-support (~> 3.7.0)
51
+ rspec-mocks (3.7.0)
52
52
  diff-lcs (>= 1.2.0, < 2.0)
53
- rspec-support (~> 3.6.0)
54
- rspec-support (3.6.0)
53
+ rspec-support (~> 3.7.0)
54
+ rspec-support (3.7.0)
55
55
  sinatra (2.0.0)
56
56
  mustermann (~> 1.0)
57
57
  rack (~> 2.0)
@@ -5,7 +5,7 @@ require 'finitio'
5
5
  require 'rack/robustness'
6
6
  require 'csv'
7
7
 
8
- SCHEMA = Finitio::DEFAULT_SYSTEM.parse (Path.dir/'webspicy/schema.fio').read
8
+ SCHEMA = Finitio::DEFAULT_SYSTEM.parse (Path.dir/('webspicy/schema.fio')).read
9
9
 
10
10
  TODOLIST = [
11
11
  {
@@ -31,6 +31,10 @@ use Rack::Robustness do |g|
31
31
  g.on(Finitio::TypeError)
32
32
  end
33
33
 
34
+ options '*' do
35
+ status 204
36
+ ""
37
+ end
34
38
 
35
39
  post '/reset' do
36
40
  settings.todolist = TODOLIST.dup
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: |-
3
+ Todo
4
+
5
+ url: |-
6
+ /todo/
7
+
8
+ services:
9
+ - method: |-
10
+ OPTIONS
11
+
12
+ description: |-
13
+ Returns options about the web service
14
+
15
+ preconditions: |-
16
+
17
+ input_schema: |-
18
+ {
19
+ }
20
+
21
+ output_schema: |-
22
+ .
23
+
24
+ error_schema: |-
25
+ ErrorSchema
26
+
27
+ examples:
28
+
29
+ - description: |-
30
+ when requested on an existing TODO
31
+ params: {}
32
+ expected:
33
+ content_type: ~
34
+ status: 204
data/lib/webspicy.rb CHANGED
@@ -30,13 +30,13 @@ module Webspicy
30
30
 
31
31
  ROOT_FOLDER = Path.backfind('.[Gemfile]')
32
32
 
33
- EXAMPLES_FOLDER = ROOT_FOLDER/'examples'
33
+ EXAMPLES_FOLDER = ROOT_FOLDER/('examples')
34
34
 
35
35
  ###
36
36
  ### About formal doc and resources defined there
37
37
  ###
38
38
 
39
- FORMALDOC = Finitio::DEFAULT_SYSTEM.parse (Path.dir/"webspicy/formaldoc.fio").read
39
+ FORMALDOC = Finitio::DEFAULT_SYSTEM.parse (Path.dir/("webspicy/formaldoc.fio")).read
40
40
 
41
41
  # Returns a default scope instance.
42
42
  def default_scope
@@ -31,6 +31,17 @@ module Webspicy
31
31
 
32
32
  attr_reader :last_response
33
33
 
34
+ def options(url, params = {}, headers = nil, body = nil)
35
+ Webspicy.info("OPTIONS #{url} -- #{params.inspect}")
36
+
37
+ @last_response = HTTP[headers || {}].options(url, params: params)
38
+
39
+ Webspicy.debug("Headers: #{@last_response.headers.to_hash}")
40
+ Webspicy.debug("Response: #{@last_response.body}")
41
+
42
+ @last_response
43
+ end
44
+
34
45
  def get(url, params = {}, headers = nil, body = nil)
35
46
  Webspicy.info("GET #{url} -- #{params.inspect}")
36
47
 
@@ -61,6 +61,20 @@ module Webspicy
61
61
  @app = app
62
62
  end
63
63
 
64
+ def options(url, params = {}, headers = nil, body = nil)
65
+ handler = get_handler(headers)
66
+
67
+ Webspicy.info("OPTIONS #{url} -- #{params.inspect} -- #{headers.inspect}")
68
+
69
+ handler.options(url, params)
70
+ @last_response = handler.last_response
71
+
72
+ Webspicy.debug("Headers: #{@last_response.headers.to_hash}")
73
+ Webspicy.debug("Response: #{@last_response.body}")
74
+
75
+ @last_response
76
+ end
77
+
64
78
  def get(url, params = {}, headers = nil, body = nil)
65
79
  handler = get_handler(headers)
66
80
 
@@ -1,5 +1,5 @@
1
1
  Method =
2
- String( s | s =~ /^(GET|POST|POST_FORM|PUT|DELETE|PATCH)$/ )
2
+ String( s | s =~ /^(GET|POST|POST_FORM|PUT|DELETE|PATCH|OPTIONS)$/ )
3
3
 
4
4
  Schema =
5
5
  .Finitio::System <fio> String
@@ -2,7 +2,7 @@ module Webspicy
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 8
5
- TINY = 1
5
+ TINY = 2
6
6
  end
7
7
  VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::TINY}"
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webspicy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernard Lambeau
@@ -143,6 +143,7 @@ files:
143
143
  - examples/restful/webspicy/todo/deleteTodo.yml
144
144
  - examples/restful/webspicy/todo/getTodo.yml
145
145
  - examples/restful/webspicy/todo/getTodos.yml
146
+ - examples/restful/webspicy/todo/options.yml
146
147
  - examples/restful/webspicy/todo/patchTodo.yml
147
148
  - examples/restful/webspicy/todo/postCsv.yml
148
149
  - examples/restful/webspicy/todo/postTodos.yml