cynic 0.0.3.4 → 0.0.3.5
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/lib/cynic/app.rb +8 -24
 - data/lib/cynic/controller.rb +5 -0
 - data/lib/cynic/response.rb +26 -2
 - data/lib/cynic/version.rb +1 -1
 - data/spec/lib/cynic/controller_spec.rb +4 -3
 - data/spec/lib/cynic/response_spec.rb +18 -1
 - metadata +1 -1
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 4d3f7a1b07f7ec9818bdda6bd95a0f8699ad8446
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 46214dc5a9ed1b61e18f652e4bfd96cfc699340b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 78b60f352309b42f6b0229a694a5b09f9b2736aaa06029af31b51dcdc6ff16e2b2a5ffbde19cad4d49bfd0de5577bed1940d785bf389fc563186f66dc6041b0c
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a600c0bd234a9b9aa29dc5e6a0e15f8063f10e6fc43cd7b3f761687a3cbb6a3681944e3c8c9d5f677b4e280466d2bec3d5ee5878f3e18d20200aed038295bc9d
         
     | 
    
        data/lib/cynic/app.rb
    CHANGED
    
    | 
         @@ -18,47 +18,31 @@ module Cynic 
     | 
|
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
                def call(env)
         
     | 
| 
       20 
20 
     | 
    
         
             
                  @env = env
         
     | 
| 
       21 
     | 
    
         
            -
                   
     | 
| 
      
 21 
     | 
    
         
            +
                  response.send
         
     | 
| 
       22 
22 
     | 
    
         
             
                end
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                def request
         
     | 
| 
       25 
     | 
    
         
            -
                   
     | 
| 
      
 25 
     | 
    
         
            +
                  Rack::Request.new(@env)
         
     | 
| 
       26 
26 
     | 
    
         
             
                end
         
     | 
| 
       27 
27 
     | 
    
         | 
| 
       28 
28 
     | 
    
         
             
                def routing_to_request
         
     | 
| 
       29 
29 
     | 
    
         
             
                  routing.go_to request.request_method.downcase.to_sym, @env["REQUEST_PATH"]
         
     | 
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                def send_response
         
     | 
| 
       33 
     | 
    
         
            -
                  [status, headers, response]
         
     | 
| 
       34 
     | 
    
         
            -
                end
         
     | 
| 
       35 
     | 
    
         
            -
                
         
     | 
| 
       36 
32 
     | 
    
         
             
                def response
         
     | 
| 
       37 
     | 
    
         
            -
                  Response.new(execute_controller_actions)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  Response.new(execute_controller_actions, request)
         
     | 
| 
       38 
34 
     | 
    
         
             
                end
         
     | 
| 
       39 
35 
     | 
    
         | 
| 
       40 
36 
     | 
    
         
             
                def execute_controller_actions
         
     | 
| 
       41 
37 
     | 
    
         
             
                  route = self.routing_to_request
         
     | 
| 
       42 
     | 
    
         
            -
                   
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                    end
         
     | 
| 
       46 
     | 
    
         
            -
                    route.object.request = request 
         
     | 
| 
      
 38 
     | 
    
         
            +
                  
         
     | 
| 
      
 39 
     | 
    
         
            +
                  route.params.each do |k,v|
         
     | 
| 
      
 40 
     | 
    
         
            +
                    request.update_param(k, v)
         
     | 
| 
       47 
41 
     | 
    
         
             
                  end
         
     | 
| 
      
 42 
     | 
    
         
            +
                  route.object.request = request 
         
     | 
| 
      
 43 
     | 
    
         
            +
                  
         
     | 
| 
       48 
44 
     | 
    
         
             
                  route.object.response(route.method)
         
     | 
| 
       49 
45 
     | 
    
         
             
                end
         
     | 
| 
       50 
46 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
                def status
         
     | 
| 
       52 
     | 
    
         
            -
                  200
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
                
         
     | 
| 
       55 
     | 
    
         
            -
                def content_type
         
     | 
| 
       56 
     | 
    
         
            -
                  request.content_type || "text/html"
         
     | 
| 
       57 
     | 
    
         
            -
                end
         
     | 
| 
       58 
     | 
    
         
            -
                
         
     | 
| 
       59 
     | 
    
         
            -
                def headers
         
     | 
| 
       60 
     | 
    
         
            -
                  {"CONTENT-TYPE" => content_type}
         
     | 
| 
       61 
     | 
    
         
            -
                end
         
     | 
| 
       62 
     | 
    
         
            -
                
         
     | 
| 
       63 
47 
     | 
    
         
             
              end
         
     | 
| 
       64 
48 
     | 
    
         
             
            end
         
     | 
    
        data/lib/cynic/controller.rb
    CHANGED
    
    | 
         @@ -3,6 +3,7 @@ module Cynic 
     | 
|
| 
       3 
3 
     | 
    
         
             
                attr_accessor :request
         
     | 
| 
       4 
4 
     | 
    
         
             
                class << self
         
     | 
| 
       5 
5 
     | 
    
         
             
                  attr_accessor :before_actions
         
     | 
| 
      
 6 
     | 
    
         
            +
                  
         
     | 
| 
       6 
7 
     | 
    
         
             
                  def before_actions
         
     | 
| 
       7 
8 
     | 
    
         
             
                    @before_actions ||= Hash.new { Set.new }
         
     | 
| 
       8 
9 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -32,6 +33,10 @@ module Cynic 
     | 
|
| 
       32 
33 
     | 
    
         
             
                end
         
     | 
| 
       33 
34 
     | 
    
         | 
| 
       34 
35 
     | 
    
         
             
                def params
         
     | 
| 
      
 36 
     | 
    
         
            +
                  request.params.each do |k,v|
         
     | 
| 
      
 37 
     | 
    
         
            +
                    request.update_param(k.to_sym, v) if k.is_a? String
         
     | 
| 
      
 38 
     | 
    
         
            +
                  end
         
     | 
| 
      
 39 
     | 
    
         
            +
                  
         
     | 
| 
       35 
40 
     | 
    
         
             
                  request.params
         
     | 
| 
       36 
41 
     | 
    
         
             
                end
         
     | 
| 
       37 
42 
     | 
    
         | 
    
        data/lib/cynic/response.rb
    CHANGED
    
    | 
         @@ -1,11 +1,35 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Cynic
         
     | 
| 
       2 
2 
     | 
    
         
             
              class Response
         
     | 
| 
       3 
     | 
    
         
            -
                attr_reader :body
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 3 
     | 
    
         
            +
                attr_reader :body, :content_type, :headers, :status
         
     | 
| 
      
 4 
     | 
    
         
            +
                
         
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(body, request)
         
     | 
| 
       5 
6 
     | 
    
         
             
                  @body = body
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @content_type = set_content_type(request)
         
     | 
| 
       6 
8 
     | 
    
         
             
                end
         
     | 
| 
      
 9 
     | 
    
         
            +
                
         
     | 
| 
       7 
10 
     | 
    
         
             
                def each(&block)
         
     | 
| 
       8 
11 
     | 
    
         
             
                  block.call @body
         
     | 
| 
       9 
12 
     | 
    
         
             
                end
         
     | 
| 
      
 13 
     | 
    
         
            +
                
         
     | 
| 
      
 14 
     | 
    
         
            +
                def status
         
     | 
| 
      
 15 
     | 
    
         
            +
                  200
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
                
         
     | 
| 
      
 18 
     | 
    
         
            +
                def set_content_type(request)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  if request.params.has_key? "format"
         
     | 
| 
      
 20 
     | 
    
         
            +
                    "text/#{request.params['format']}"
         
     | 
| 
      
 21 
     | 
    
         
            +
                  else
         
     | 
| 
      
 22 
     | 
    
         
            +
                    request.content_type =~ /text/ ? request.content_type : "text/html"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                
         
     | 
| 
      
 26 
     | 
    
         
            +
                def headers
         
     | 
| 
      
 27 
     | 
    
         
            +
                  {"CONTENT-TYPE" => content_type}
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
                
         
     | 
| 
      
 30 
     | 
    
         
            +
                def send
         
     | 
| 
      
 31 
     | 
    
         
            +
                  [status, headers, self]
         
     | 
| 
      
 32 
     | 
    
         
            +
                end
         
     | 
| 
      
 33 
     | 
    
         
            +
                
         
     | 
| 
       10 
34 
     | 
    
         
             
              end
         
     | 
| 
       11 
35 
     | 
    
         
             
            end
         
     | 
    
        data/lib/cynic/version.rb
    CHANGED
    
    
| 
         @@ -13,16 +13,17 @@ end 
     | 
|
| 
       13 
13 
     | 
    
         | 
| 
       14 
14 
     | 
    
         
             
            describe Cynic::Controller do
         
     | 
| 
       15 
15 
     | 
    
         
             
              let(:controller) { CynicController.new }
         
     | 
| 
      
 16 
     | 
    
         
            +
              let(:env) { {"REQUEST_METHOD" => "GET", "REQUEST_PATH" => "/cynic", "rack.input" => "wtf", "QUERY_STRING" => "id=1",  "CONTENT_TYPE" => "text/json"} }
         
     | 
| 
      
 17 
     | 
    
         
            +
              
         
     | 
| 
       16 
18 
     | 
    
         
             
              before { CynicController.instance_variable_set(:@before_actions, nil)}
         
     | 
| 
       17 
19 
     | 
    
         | 
| 
       18 
20 
     | 
    
         
             
              describe "#request" do
         
     | 
| 
       19 
21 
     | 
    
         
             
                before { 
         
     | 
| 
       20 
     | 
    
         
            -
                  request =  
     | 
| 
       21 
     | 
    
         
            -
                  request.stub(:params) { {id: 1} }
         
     | 
| 
      
 22 
     | 
    
         
            +
                  request = Rack::Request.new(env)
         
     | 
| 
       22 
23 
     | 
    
         
             
                  controller.request = request
         
     | 
| 
       23 
24 
     | 
    
         
             
                }
         
     | 
| 
       24 
25 
     | 
    
         
             
                it "has params" do
         
     | 
| 
       25 
     | 
    
         
            -
                  expect(controller.params).to eq 
     | 
| 
      
 26 
     | 
    
         
            +
                  expect(controller.params[:id]).to eq "1"
         
     | 
| 
       26 
27 
     | 
    
         
             
                end
         
     | 
| 
       27 
28 
     | 
    
         
             
              end
         
     | 
| 
       28 
29 
     | 
    
         
             
              describe "#render" do
         
     | 
| 
         @@ -1,7 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Cynic::Response do
         
     | 
| 
       4 
     | 
    
         
            -
              let(: 
     | 
| 
      
 4 
     | 
    
         
            +
              let(:env) { {"REQUEST_METHOD" => "GET", "REQUEST_PATH" => "/cynic", "rack.input" => "wtf", "CONTENT_TYPE" => "text/json"} }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:response) { Cynic::Response.new("This is the body", Rack::Request.new(env)) }
         
     | 
| 
       5 
6 
     | 
    
         
             
              describe "#each" do
         
     | 
| 
       6 
7 
     | 
    
         
             
                it "responds" do
         
     | 
| 
       7 
8 
     | 
    
         
             
                  expect(response).to respond_to :each
         
     | 
| 
         @@ -11,4 +12,20 @@ describe Cynic::Response do 
     | 
|
| 
       11 
12 
     | 
    
         
             
                  expect(response.each {|k| k }).to eq "This is the body"
         
     | 
| 
       12 
13 
     | 
    
         
             
                end
         
     | 
| 
       13 
14 
     | 
    
         
             
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
              
         
     | 
| 
      
 16 
     | 
    
         
            +
              describe "content_type" do
         
     | 
| 
      
 17 
     | 
    
         
            +
                it "sets it to json" do
         
     | 
| 
      
 18 
     | 
    
         
            +
                  expect(response.content_type).to eq "text/json"
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
                
         
     | 
| 
      
 21 
     | 
    
         
            +
                it "sets it to html if unknown" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                  env["CONTENT_TYPE"] = "app/something"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  expect(response.content_type).to eq "text/html"
         
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
                
         
     | 
| 
      
 26 
     | 
    
         
            +
                it "the params takes prority" do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  env["QUERY_STRING"] = "format=jsonp"
         
     | 
| 
      
 28 
     | 
    
         
            +
                  expect(response.content_type).to eq "text/jsonp"
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
       14 
31 
     | 
    
         
             
            end
         
     |