httparty_with_cookies 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 63dde578687bfe5f8de231e73a78eeaab8681400
4
+ data.tar.gz: 7ca92ac68c49f3eac86dd0fdbba8e5079c648eb7
5
+ SHA512:
6
+ metadata.gz: 9fca0f816a483b6bf75b600602720467654dfbc8bfd85609a670cf5ea4986e2f8960e1902ee5a1f249c140084419e9727dd975aa61af5c056de75905eaa46658
7
+ data.tar.gz: 636acf9cfc1a621f1416fe53b0eedf114a4a1329e084edfdc158b6619d6f87689ab5f591d10629250a46fb69ccf101edcc925fb7748af0baabee7af18a9060c8
@@ -1,17 +1,17 @@
1
- SPEC = Gem::Specification.new do |s|
2
- s.name = 'httparty_with_cookies'
3
- s.version = '0.1.1'
4
- s.date = Time.now.strftime('%Y-%m-%d')
5
- s.author = 'Arthur Silva'
6
- s.summary = 'Basic automatic cookie handling for HTTParty'
7
- s.email = 'awls99@gmail.com'
8
- s.homepage = 'https://github.com/awls99/httparty-with-cookies'
9
- s.description = 'This gem works mostly as HTTParty, but has automatic saving and sending of cookies to the server.'
10
- s.add_dependency 'httparty'
11
- s.add_development_dependency 'rspec'
12
- s.add_development_dependency 'sinatra'
13
- s.files = Dir.glob("{lib}/*").push __FILE__
14
- s.require_path = 'lib'
15
- s.has_rdoc = false
16
- s.license = 'MIT'
17
- end
1
+ SPEC = Gem::Specification.new do |s|
2
+ s.name = 'httparty_with_cookies'
3
+ s.version = '0.2.1'
4
+ s.date = Time.now.strftime('%Y-%m-%d')
5
+ s.author = 'Arthur Silva'
6
+ s.summary = 'Basic automatic cookie handling for HTTParty'
7
+ s.email = 'awls99@gmail.com'
8
+ s.homepage = 'https://github.com/awls99/httparty-with-cookies'
9
+ s.description = 'This gem works mostly as HTTParty, but has automatic saving and sending of cookies to the server.'
10
+ s.add_dependency 'httparty'
11
+ s.add_development_dependency 'rspec'
12
+ s.add_development_dependency 'sinatra'
13
+ s.files = Dir.glob("{lib}/*").push __FILE__
14
+ s.require_path = 'lib'
15
+ s.has_rdoc = false
16
+ s.license = 'MIT'
17
+ end
@@ -1,53 +1,62 @@
1
- require 'httparty'
2
-
3
- module HTTParty_with_cookies
4
- # include HTTParty
5
- attr :cookies
6
-
7
- def self.included(base)
8
- base.extend HTTParty
9
- base.send :include, HTTParty
10
- end
11
-
12
- #####this way we can support the same http verbs as httparty
13
- HTTParty::Request::SupportedHTTPMethods.each do | netclass |
14
- method_sym = netclass.to_s.split('::').last.downcase.to_sym
15
- define_method method_sym do |uri, options={}, &block|
16
-
17
- base_headers = {'Cookie' => request_cookies}
18
- if options[:headers]
19
- options[:headers] = base_headers.merge options[:headers]
20
- else
21
- options[:headers] = base_headers
22
- end
23
- options[:headers] = options[:headers].delete_if{|k,v| v == {}}
24
- @last_response = self.class.method( method_sym ).call uri, options, &block
25
- set_cookies
26
- return @last_response
27
- end
28
- end
29
-
30
-
31
- def request_cookies
32
- URI.unescape( @cookies.to_a.map do |cookie|
33
- cookie.join('=')
34
- end.join(';') )
35
- end
36
- def set_cookies #ugly hack to get the correct cookie array from the headers
37
- response_cookies = @last_response.headers.instance_variable_get(:@header)['set-cookie']
38
- return unless response_cookies and !response_cookies.empty?
39
- response_cookies = [ response_cookies ] if response_cookies.is_a? String
40
- response_cookies.each do |cookie|
41
- add_cookies( cookie.split(';')[0] )
42
- end
43
- end
44
-
45
- private
46
- def add_cookies *cookies
47
- @cookies||= {}
48
- cookies.each do |cookie|
49
- key, value = cookie.split '='
50
- @cookies[ key ] = value
51
- end
52
- end
53
- end
1
+ require 'httparty'
2
+
3
+ module HTTParty_with_cookies
4
+ # include HTTParty
5
+ attr :cookies
6
+
7
+ def self.included(base)
8
+ base.extend HTTParty
9
+ base.send :include, HTTParty
10
+ end
11
+
12
+ #####this way we can support the same http verbs as httparty
13
+ HTTParty::Request::SupportedHTTPMethods.each do | netclass |
14
+ method_sym = netclass.to_s.split('::').last.downcase.to_sym
15
+ define_method method_sym do |uri, options={}, &block|
16
+
17
+ base_headers = {'Cookie' => request_cookies}
18
+ if options[:headers]
19
+ options[:headers] = base_headers.merge options[:headers]
20
+ else
21
+ options[:headers] = base_headers
22
+ end
23
+ options[:headers] = options[:headers].delete_if{|k,v| v == {}}
24
+ @last_response = self.class.method( method_sym ).call uri, options, &block
25
+ set_cookies
26
+ return @last_response
27
+ end
28
+ end
29
+
30
+
31
+ def request_cookies
32
+ URI.unescape( @cookies.to_a.map do |cookie|
33
+ cookie.join('=')
34
+ end.join(';') )
35
+ end
36
+ def set_cookies #ugly hack to get the correct cookie array from the headers
37
+ headers = nil #3 years later: uglier meta hack to allow fetching headers from 3xx responses
38
+ begin
39
+ headers = @last_response.headers.instance_variable_get(:@header)
40
+ rescue NoMethodError
41
+ headers = @last_response.instance_variable_get(:@header)
42
+ end
43
+
44
+ return unless headers and headers['set-cookie']
45
+
46
+ response_cookies = headers['set-cookie']
47
+ return unless response_cookies and !response_cookies.empty?
48
+ response_cookies = [ response_cookies ] if response_cookies.is_a? String
49
+ response_cookies.each do |cookie|
50
+ add_cookies( cookie.split(';')[0] )
51
+ end
52
+ end
53
+
54
+ private
55
+ def add_cookies *cookies
56
+ @cookies||= {}
57
+ cookies.each do |cookie|
58
+ key, value = cookie.split '='
59
+ @cookies[ key ] = value
60
+ end
61
+ end
62
+ end
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httparty_with_cookies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Arthur Silva
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-01 00:00:00.000000000 Z
11
+ date: 2016-03-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: httparty
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: sinatra
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: This gem works mostly as HTTParty, but has automatic saving and sending
@@ -66,31 +59,30 @@ executables: []
66
59
  extensions: []
67
60
  extra_rdoc_files: []
68
61
  files:
69
- - lib/httparty_with_cookies.rb
70
62
  - httparty-with-cookies.gemspec
63
+ - lib/httparty_with_cookies.rb
71
64
  homepage: https://github.com/awls99/httparty-with-cookies
72
65
  licenses:
73
66
  - MIT
67
+ metadata: {}
74
68
  post_install_message:
75
69
  rdoc_options: []
76
70
  require_paths:
77
71
  - lib
78
72
  required_ruby_version: !ruby/object:Gem::Requirement
79
- none: false
80
73
  requirements:
81
- - - ! '>='
74
+ - - ">="
82
75
  - !ruby/object:Gem::Version
83
76
  version: '0'
84
77
  required_rubygems_version: !ruby/object:Gem::Requirement
85
- none: false
86
78
  requirements:
87
- - - ! '>='
79
+ - - ">="
88
80
  - !ruby/object:Gem::Version
89
81
  version: '0'
90
82
  requirements: []
91
83
  rubyforge_project:
92
- rubygems_version: 1.8.24
84
+ rubygems_version: 2.2.2
93
85
  signing_key:
94
- specification_version: 3
86
+ specification_version: 4
95
87
  summary: Basic automatic cookie handling for HTTParty
96
88
  test_files: []