grape-oink 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c2ef9caf599eb8218781193a0cf6193d0215f1f4
4
+ data.tar.gz: 8a82ea85be3d175bab43f74b690af1488e7e03bb
5
+ SHA512:
6
+ metadata.gz: 9faa54e075e18474b1248ffda1f5beadac3a102f1380677c1a938a3a6e86f9418914efafb5a0e389492924b42c3f898188ad1204f7af48765aeb0a7326f5bd56
7
+ data.tar.gz: 4bccc02e5ec497245a44f6eeda1f59113389f881169ad424736e55f699f470fa68fb68a8ad38ce2293dd98debd85707161d2c4353297c306daf67711d244e510
@@ -0,0 +1,21 @@
1
+ module Grape
2
+ module Middleware
3
+ class OinkMiddleware < Grape::Middleware::Base
4
+ def before
5
+ options = env['api.endpoint'].try(:options)
6
+
7
+ if options.present?
8
+ controller = options[:for].to_s.split("::").last.underscore
9
+ action = options[:path].try(:first)
10
+ if action
11
+ action.gsub!("/", "sl_")
12
+ action.gsub!(":", "col_")
13
+ end
14
+ method = options[:method].try(:first)
15
+ env_action = "#{action}_#{method}"
16
+ env['action_dispatch.request.parameters'] = {'controller' => controller, 'action' => env_action}
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
data/lib/grape-oink.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'grape'
2
+
3
+ module Grape
4
+ module Middleware
5
+ autoload :OinkMiddleware, 'grape/middleware/oink_middleware'
6
+ end
7
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe "OinkMiddleware" do
4
+ subject do
5
+ Oinkers = Class.new(Grape::API) do
6
+ format :json
7
+ use Grape::Middleware::OinkMiddleware
8
+
9
+ get('/fat/:id') do
10
+ {msg: "oink!", oink_env: env['action_dispatch.request.parameters'] }
11
+ end
12
+ end
13
+ end
14
+
15
+ def app
16
+ subject
17
+ end
18
+
19
+ describe "#/fat/:id" do
20
+ it "adds controller and action information needed by Oink to the environment" do
21
+ get "/fat/:id"
22
+ body = JSON.parse(last_response.body)
23
+ expect(body["oink_env"]).to eq({"controller" => "oinkers", "action" => "sl_fatsl_col_id_GET"})
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ require 'grape-oink'
2
+ require 'json'
3
+
4
+ require 'rubygems'
5
+ require 'bundler'
6
+
7
+ Bundler.setup :default, :test
8
+
9
+ require 'rack/test'
10
+
11
+ RSpec.configure do |config|
12
+ require 'rspec/expectations'
13
+ config.include RSpec::Matchers
14
+ config.mock_with :rspec
15
+ config.include Rack::Test::Methods
16
+ end
metadata ADDED
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: grape-oink
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Alejandro Wainzinger
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: grape
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.10.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: rack-test
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: A middleware for Grape to allow working with Oink.
70
+ email:
71
+ - alejandro.wainzinger@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - lib/grape-oink.rb
77
+ - lib/grape/middleware/oink_middleware.rb
78
+ - spec/simple_api_spec.rb
79
+ - spec/spec_helper.rb
80
+ homepage: https://github.com/xevix/grape-oink
81
+ licenses:
82
+ - MIT
83
+ metadata: {}
84
+ post_install_message:
85
+ rdoc_options: []
86
+ require_paths:
87
+ - lib
88
+ required_ruby_version: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ requirements: []
99
+ rubyforge_project:
100
+ rubygems_version: 2.4.6
101
+ signing_key:
102
+ specification_version: 4
103
+ summary: A middleware for Grape to allow working with Oink.
104
+ test_files:
105
+ - spec/simple_api_spec.rb
106
+ - spec/spec_helper.rb