resty 0.3.0 → 0.4.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.
- data/lib/resty/transport.rb +19 -3
- metadata +8 -10
    
        data/lib/resty/transport.rb
    CHANGED
    
    | @@ -1,12 +1,16 @@ | |
| 1 1 | 
             
            class Resty::Transport
         | 
| 2 2 |  | 
| 3 | 
            +
              class << self
         | 
| 4 | 
            +
                attr_accessor :default_href_params
         | 
| 5 | 
            +
              end
         | 
| 6 | 
            +
             | 
| 3 7 | 
             
              def self.request_json(href, method = 'GET', body = nil, content_type = nil)
         | 
| 4 8 |  | 
| 5 9 | 
             
                headers = content_type ? { :content_type => content_type } : nil
         | 
| 6 10 | 
             
                payload = body || ''
         | 
| 7 | 
            -
             | 
| 11 | 
            +
             | 
| 8 12 | 
             
                response = RestClient::Request.execute(
         | 
| 9 | 
            -
                  :url => href,
         | 
| 13 | 
            +
                  :url => add_default_params(href),
         | 
| 10 14 | 
             
                  :method => method,
         | 
| 11 15 | 
             
                  :payload => payload,
         | 
| 12 16 | 
             
                  :headers => headers
         | 
| @@ -14,11 +18,23 @@ class Resty::Transport | |
| 14 18 |  | 
| 15 19 | 
             
                if !(response.nil? || response =~ /\A\s*\Z/)
         | 
| 16 20 | 
             
                  JSON.parse(response)
         | 
| 17 | 
            -
                elsif response.headers[:location]
         | 
| 21 | 
            +
                elsif !response.nil? && response.headers[:location]
         | 
| 18 22 | 
             
                  { ':href' => response.headers[:location] }
         | 
| 19 23 | 
             
                else
         | 
| 20 24 | 
             
                  nil
         | 
| 21 25 | 
             
                end
         | 
| 22 26 | 
             
              end
         | 
| 23 27 |  | 
| 28 | 
            +
              private
         | 
| 29 | 
            +
              
         | 
| 30 | 
            +
              PARAM_REGEX = /\?/
         | 
| 31 | 
            +
              
         | 
| 32 | 
            +
              def self.add_default_params(href)
         | 
| 33 | 
            +
                return href if !default_href_params || default_href_params.empty?
         | 
| 34 | 
            +
                
         | 
| 35 | 
            +
                separator = (href =~ PARAM_REGEX ? '&' : '?')
         | 
| 36 | 
            +
                params = default_href_params.map { |k, v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&')
         | 
| 37 | 
            +
                "#{href}#{separator}#{params}"
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
             | 
| 24 40 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: resty
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.4.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,12 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2011- | 
| 13 | 
            -
            default_executable: 
         | 
| 12 | 
            +
            date: 2011-09-23 00:00:00.000000000Z
         | 
| 14 13 | 
             
            dependencies:
         | 
| 15 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 15 | 
             
              name: rest-client
         | 
| 17 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &15738880 !ruby/object:Gem::Requirement
         | 
| 18 17 | 
             
                none: false
         | 
| 19 18 | 
             
                requirements:
         | 
| 20 19 | 
             
                - - ~>
         | 
| @@ -22,10 +21,10 @@ dependencies: | |
| 22 21 | 
             
                    version: 1.6.3
         | 
| 23 22 | 
             
              type: :runtime
         | 
| 24 23 | 
             
              prerelease: false
         | 
| 25 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *15738880
         | 
| 26 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 27 26 | 
             
              name: json
         | 
| 28 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &15738400 !ruby/object:Gem::Requirement
         | 
| 29 28 | 
             
                none: false
         | 
| 30 29 | 
             
                requirements:
         | 
| 31 30 | 
             
                - - ~>
         | 
| @@ -33,7 +32,7 @@ dependencies: | |
| 33 32 | 
             
                    version: 1.5.1
         | 
| 34 33 | 
             
              type: :runtime
         | 
| 35 34 | 
             
              prerelease: false
         | 
| 36 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *15738400
         | 
| 37 36 | 
             
            description: ! "                    Resty is designed as a client for a particular
         | 
| 38 37 | 
             
              type of discoverable REST API; one that returns JSON, and \n                    where
         | 
| 39 38 | 
             
              that JSON has particular keys which enable navigation of the data graph.\n"
         | 
| @@ -44,13 +43,12 @@ extensions: [] | |
| 44 43 | 
             
            extra_rdoc_files: []
         | 
| 45 44 | 
             
            files:
         | 
| 46 45 | 
             
            - lib/resty/attributes.rb
         | 
| 47 | 
            -
            - lib/resty/transport.rb
         | 
| 48 46 | 
             
            - lib/resty/actions.rb
         | 
| 47 | 
            +
            - lib/resty/transport.rb
         | 
| 49 48 | 
             
            - lib/resty.rb
         | 
| 50 49 | 
             
            - bin/resty
         | 
| 51 50 | 
             
            - LICENSE
         | 
| 52 51 | 
             
            - README.md
         | 
| 53 | 
            -
            has_rdoc: true
         | 
| 54 52 | 
             
            homepage: http://github.com/simonrussell/resty
         | 
| 55 53 | 
             
            licenses: []
         | 
| 56 54 | 
             
            post_install_message: 
         | 
| @@ -71,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 71 69 | 
             
                  version: '0'
         | 
| 72 70 | 
             
            requirements: []
         | 
| 73 71 | 
             
            rubyforge_project: 
         | 
| 74 | 
            -
            rubygems_version: 1. | 
| 72 | 
            +
            rubygems_version: 1.8.8
         | 
| 75 73 | 
             
            signing_key: 
         | 
| 76 74 | 
             
            specification_version: 3
         | 
| 77 75 | 
             
            summary: Simple JSON REST API client wrapper
         |