faraday-cookie-jar-0.0.6/0000755000076400007640000000000012511464346014207 5ustar pravipravifaraday-cookie-jar-0.0.6/spec/0000755000076400007640000000000012511464346015141 5ustar pravipravifaraday-cookie-jar-0.0.6/spec/spec_helper.rb0000644000076400007640000000024612511464346017761 0ustar pravipravirequire 'rspec' require 'faraday-cookie_jar' require 'sham_rack' require_relative 'support/fake_app' ShamRack.at('faraday.example.com').rackup do run FakeApp end faraday-cookie-jar-0.0.6/spec/support/0000755000076400007640000000000012511464346016655 5ustar pravipravifaraday-cookie-jar-0.0.6/spec/support/fake_app.rb0000644000076400007640000000075612511464346020760 0ustar pravipravirequire 'sinatra' class FakeApp < Sinatra::Application get '/dump' do "foo=#{request.cookies['foo']}" end get '/default' do response.set_cookie "foo", :value => "bar" end get '/path' do response.set_cookie "foo", :value => "bar", :path => "/path" end get '/expires' do response.set_cookie "foo", :value => "bar", :expires => Time.now + 1 end get '/multiple_cookies' do "foo=#{request.cookies['foo']};language=#{request.cookies['language']}" end end faraday-cookie-jar-0.0.6/spec/faraday-cookie_jar/0000755000076400007640000000000012511464346020653 5ustar pravipravifaraday-cookie-jar-0.0.6/spec/faraday-cookie_jar/cookie_jar_spec.rb0000644000076400007640000000234612511464346024324 0ustar pravipravirequire 'spec_helper' describe Faraday::CookieJar do let(:conn) { Faraday.new(:url => 'http://faraday.example.com') } let(:cookie_jar) { HTTP::CookieJar.new } before do conn.use :cookie_jar conn.adapter :net_http # for sham_rock end it 'get default cookie' do conn.get('/default') expect(conn.get('/dump').body).to eq('foo=bar') end it 'does not send cookies to wrong path' do conn.get('/path') expect(conn.get('/dump').body).to_not eq('foo=bar') end it 'expires cookie' do conn.get('/expires') expect(conn.get('/dump').body).to eq('foo=bar') sleep 2 expect(conn.get('/dump').body).to_not eq('foo=bar') end it 'fills an injected cookie jar' do conn_with_jar = Faraday.new(:url => 'http://faraday.example.com') do |conn| conn.use :cookie_jar, jar: cookie_jar conn.adapter :net_http # for sham_rock end conn_with_jar.get('/default') expect(cookie_jar.empty?).to be_false end it 'multiple cookies' do conn.get('/default') response = conn.send('get') do |request| request.url '/multiple_cookies' request.headers.merge!({:Cookie => 'language=english'}) end expect(response.body).to eq('foo=bar;language=english') end end faraday-cookie-jar-0.0.6/LICENSE.txt0000644000076400007640000000206312511464346016033 0ustar pravipraviCopyright (c) 2013 Tatsuhiko Miyagawa MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. faraday-cookie-jar-0.0.6/README.md0000644000076400007640000000124312511464346015466 0ustar pravipravi# Faraday::CookieJar Faraday middleware to manage client-side cookies ## Description This gem is a piece of Faraday middleware that adds client-side Cookies management, using [http-cookie gem](https://github.com/sparklemotion/http-cookie). ## Installation Add this line to your application's Gemfile: gem 'faraday-cookie_jar' And then execute: $ bundle Or install it yourself as: $ gem install faraday-cookie_jar ## Usage ```ruby require 'faraday-cookie_jar' conn = Faraday.new(:url => "http://example.com") do |builder| builder.use :cookie_jar end conn.get "/foo" # gets cookie conn.get "/bar" # sends cookie ``` ## Author Tatsuhiko Miyagawa faraday-cookie-jar-0.0.6/CHANGELOG.md0000644000076400007640000000110712511464346016017 0ustar pravipravi## 0.0.6 Tue Jan 21 16:34:35 PST 2014 - Support Faraday 0.9 registry API (cameron-martin) - Support specifying CookieJar in configuration (cameron-martin) ## 0.0.5 Mon Jan 20 21:53:13 PST 2014 - Lock faraday dependency to < 0.9.0 for now - Ability to add extra cookies in addition to the ones in Cookie Jar (nanjingboy) ## 0.0.4 Mon Aug 12 23:11:46 PDT 2013 - Fix a crash when there's no valid response header #3 ## 0.0.3 Sun Apr 21 08:14:32 CST 2013 - Switch to http-cookie gem (knu) #2 ## 0.0.2 - Repackaging - Typo in README (tmaesaka) #1 ## 0.0.1 - Initial releasefaraday-cookie-jar-0.0.6/Gemfile0000644000076400007640000000014712511464346015504 0ustar pravipravisource 'https://rubygems.org' # Specify your gem's dependencies in faraday-cookie_jar.gemspec gemspec faraday-cookie-jar-0.0.6/metadata.yml0000644000076400007640000000745212511464346016522 0ustar pravipravi--- !ruby/object:Gem::Specification name: faraday-cookie_jar version: !ruby/object:Gem::Version version: 0.0.6 platform: ruby authors: - Tatsuhiko Miyagawa autorequire: bindir: bin cert_chain: [] date: 2014-01-22 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: faraday requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.7.4 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 0.7.4 - !ruby/object:Gem::Dependency name: http-cookie requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: 1.0.0 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: 1.0.0 - !ruby/object:Gem::Dependency name: bundler requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.3' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '1.3' - !ruby/object:Gem::Dependency name: rake requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency name: rspec requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency name: sinatra requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' - !ruby/object:Gem::Dependency name: sham_rack requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' description: Cookie jar middleware for Faraday email: - miyagawa@bulknews.net executables: [] extensions: [] extra_rdoc_files: [] files: - ".gitignore" - CHANGELOG.md - Gemfile - LICENSE.txt - README.md - Rakefile - faraday-cookie_jar.gemspec - lib/faraday-cookie_jar.rb - lib/faraday/cookie_jar.rb - lib/faraday/cookie_jar/version.rb - spec/faraday-cookie_jar/cookie_jar_spec.rb - spec/spec_helper.rb - spec/support/fake_app.rb homepage: https://github.com/miyagawa/faraday-cookie_jar licenses: - MIT metadata: {} post_install_message: rdoc_options: [] require_paths: - lib required_ruby_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: rubygems_version: 2.1.11 signing_key: specification_version: 4 summary: Manages client-side cookie jar for Faraday HTTP client test_files: - spec/faraday-cookie_jar/cookie_jar_spec.rb - spec/spec_helper.rb - spec/support/fake_app.rb faraday-cookie-jar-0.0.6/lib/0000755000076400007640000000000012511464346014755 5ustar pravipravifaraday-cookie-jar-0.0.6/lib/faraday/0000755000076400007640000000000012511464346016364 5ustar pravipravifaraday-cookie-jar-0.0.6/lib/faraday/cookie_jar/0000755000076400007640000000000012511464346020471 5ustar pravipravifaraday-cookie-jar-0.0.6/lib/faraday/cookie_jar/version.rb0000644000076400007640000000011112511464346022474 0ustar pravipravimodule Faraday module CookieJarVersion VERSION = "0.0.6" end end faraday-cookie-jar-0.0.6/lib/faraday/cookie_jar.rb0000644000076400007640000000210012511464346021007 0ustar pravipravirequire "faraday" require "http/cookie_jar" module Faraday class CookieJar < Faraday::Middleware def initialize(app, options = {}) super(app) @jar = options[:jar] || HTTP::CookieJar.new end def call(env) cookies = @jar.cookies(env[:url]) unless cookies.empty? cookie_value = HTTP::Cookie.cookie_value(cookies) if env[:request_headers]["Cookie"] env[:request_headers]["Cookie"] = cookie_value + ';' + env[:request_headers]["Cookie"] else env[:request_headers]["Cookie"] = cookie_value end end @app.call(env).on_complete do |res| if res[:response_headers] if set_cookie = res[:response_headers]["Set-Cookie"] @jar.parse(set_cookie, env[:url]) end end end end end end if Faraday.respond_to? :register_middleware Faraday.register_middleware :cookie_jar => lambda { Faraday::CookieJar } elsif Faraday::Middleware.respond_to? :register_middleware Faraday::Middleware.register_middleware :cookie_jar => Faraday::CookieJar endfaraday-cookie-jar-0.0.6/lib/faraday-cookie_jar.rb0000644000076400007640000000003512511464346021012 0ustar pravipravirequire 'faraday/cookie_jar' faraday-cookie-jar-0.0.6/faraday-cookie_jar.gemspec0000644000076400007640000000222612511464346021270 0ustar pravipravi# coding: utf-8 lib = File.expand_path('../lib', __FILE__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'faraday/cookie_jar/version' Gem::Specification.new do |spec| spec.name = "faraday-cookie_jar" spec.version = Faraday::CookieJarVersion::VERSION spec.authors = ["Tatsuhiko Miyagawa"] spec.email = ["miyagawa@bulknews.net"] spec.description = %q{Cookie jar middleware for Faraday} spec.summary = %q{Manages client-side cookie jar for Faraday HTTP client} spec.homepage = "https://github.com/miyagawa/faraday-cookie_jar" spec.license = "MIT" spec.files = `git ls-files`.split($/) spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ["lib"] spec.add_dependency "faraday", ">= 0.7.4" spec.add_dependency "http-cookie", "~> 1.0.0" spec.add_development_dependency "bundler", "~> 1.3" spec.add_development_dependency "rake" spec.add_development_dependency "rspec" spec.add_development_dependency "sinatra" spec.add_development_dependency "sham_rack" end faraday-cookie-jar-0.0.6/Rakefile0000644000076400007640000000016412511464346015655 0ustar pravipravirequire "bundler/gem_tasks" require 'rspec/core/rake_task' RSpec::Core::RakeTask.new(:spec) task :default => :spec faraday-cookie-jar-0.0.6/.gitignore0000644000076400007640000000023212511464346016174 0ustar pravipravi*.gem *.rbc .bundle .config .yardoc Gemfile.lock InstalledFiles _yardoc coverage doc/ lib/bundler/man pkg rdoc spec/reports test/tmp test/version_tmp tmp