resource_accessor 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjBlYjg5ZDZiZTU1ZjRhYjBjNDJiODQyYWNlYzU3MGUyNGU2NWQ4Zg==
5
- data.tar.gz: !binary |-
6
- OTlmNmYxN2IyMDk0YzY3NDFlNDJlNDg3YWVkZGRmMzllYjljMDE3YQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NTMwYmNlMGNkYzg1NWU5ZTFiZTk0ZGViZGYwY2U3ZjU5OTAzNTk0MDYxOWMx
10
- MWFlYjgyZTA3MmM4OWRiZTcyYmIwZTI1OWUwYjliZDZhNTc3YzE2NTZmNTQ4
11
- Y2IzNWFlNjUzNGMzZDdkMmM5YzM4NmI2MDc2MDU4N2NkZTZmOTk=
12
- data.tar.gz: !binary |-
13
- Y2ExNDE5NGI3YWQ4NDkxMGJmZDBiZTVlMTFmY2M1ODk1NDk3Y2VhMDMzMjZi
14
- MGUwOGJkMzBjMzAxNzNjOTA2ZTQ0YzliZjM4MjNiMGMyMzBkOGRiODEyZGUx
15
- MTFiNjEwMzU5ZTliZjBjZjcyZmViYTQyMWQ0NzI0NmQyOWI2Yjk=
2
+ SHA1:
3
+ metadata.gz: 32baacfc4e7a916204597ea8d1f6241e56c38807
4
+ data.tar.gz: a1994c6edd8045267b9ab688cf658edcd70bec12
5
+ SHA512:
6
+ metadata.gz: afb238c1736db16a20a52b995b789bff9a3fbdc0989ecd174607972584ee87903d3071f0e5fcf69bbd22b7f49be2f8c456be6593f64aa075ac0c61c5e634acbe
7
+ data.tar.gz: b9e1d3c2f7069b857d86e9d4d4dbe42000055c79dc7344f3871df29ce5f5ddfc05709ca8d449b7362e80e727800bbccf631e08eb7ec431e6ae1f1c7da5678026
@@ -0,0 +1 @@
1
+ resource_accessor
@@ -0,0 +1 @@
1
+ 2.0.0
data/CHANGES CHANGED
@@ -6,4 +6,8 @@
6
6
 
7
7
  == Version 1.0.1
8
8
 
9
- * Bug fix.
9
+ * Bug fix.
10
+
11
+ == Version 1.1.0
12
+
13
+ * Write documentation;API change.
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
 
3
3
  group :development do
4
4
  gem "gemspec_deps_gen"
@@ -7,7 +7,5 @@ end
7
7
 
8
8
  group :test do
9
9
  gem "rspec"
10
- gem "rspec-core"
11
- gem "rspec-expectations"
12
10
  gem "mocha"
13
11
  end
@@ -1,22 +1,23 @@
1
1
  GEM
2
- remote: http://rubygems.org/
2
+ remote: https://rubygems.org/
3
3
  specs:
4
- diff-lcs (1.1.3)
5
- file_utils (1.0.6)
4
+ diff-lcs (1.2.4)
5
+ file_utils (1.0.7)
6
6
  gemcutter (0.7.1)
7
- gemspec_deps_gen (1.0.5)
7
+ gemspec_deps_gen (1.1.2)
8
+ bundler
8
9
  file_utils
9
10
  metaclass (0.0.1)
10
- mocha (0.13.2)
11
+ mocha (0.14.0)
11
12
  metaclass (~> 0.0.1)
12
- rspec (2.12.0)
13
- rspec-core (~> 2.12.0)
14
- rspec-expectations (~> 2.12.0)
15
- rspec-mocks (~> 2.12.0)
16
- rspec-core (2.12.2)
17
- rspec-expectations (2.12.1)
18
- diff-lcs (~> 1.1.3)
19
- rspec-mocks (2.12.2)
13
+ rspec (2.14.1)
14
+ rspec-core (~> 2.14.0)
15
+ rspec-expectations (~> 2.14.0)
16
+ rspec-mocks (~> 2.14.0)
17
+ rspec-core (2.14.5)
18
+ rspec-expectations (2.14.2)
19
+ diff-lcs (>= 1.1.3, < 2.0)
20
+ rspec-mocks (2.14.3)
20
21
 
21
22
  PLATFORMS
22
23
  ruby
@@ -26,5 +27,3 @@ DEPENDENCIES
26
27
  gemspec_deps_gen
27
28
  mocha
28
29
  rspec
29
- rspec-core
30
- rspec-expectations
data/README.md CHANGED
@@ -12,41 +12,77 @@ And then execute:
12
12
 
13
13
  ## Usage
14
14
 
15
+ Create accessor object:
16
+
15
17
  ```ruby
16
- require 'resource_accessor'
18
+ require 'resource_accessor'
19
+
20
+ accessor = ResourceAccessor.new
21
+ ```
22
+
23
+ If you want to access unprotected resource located at **some_url**:
17
24
 
18
- accessor = ResourceAccessor.new
25
+ ```ruby
26
+ response = accessor.get_response :url => some_url
27
+ ```
19
28
 
20
- # to get unprotected resource
21
- response = accessor.get_response :url => some_url
29
+ If you want to get protected resource, first get a cookie and then access protected resource:
22
30
 
23
- # to get cookie
24
- cookie = accessor.get_cookie login_url, user_name, password
31
+ ```ruby
32
+ # 1. Get cookie
25
33
 
26
- # to get protected resource through POST and post body as hash
27
- response = accessor.get_response :url => some_url, :method => :post, :cookie => cookie,
28
- :body => some_hash
34
+ cookie = accessor.get_cookie login_url, user_name, password
29
35
 
30
- # to get protected resource through POST and post body as string
31
- response = accessor.get_response :url => some_url, :method => :post, :cookie => cookie,
32
- :body => some_string
36
+ # 2.a. Get protected resource through POST and post body as hash
33
37
 
34
- # to get AJAX resource
35
- response = accessor.get_ajax_response :url => some_url
36
- # or
37
- response = accessor.get_response {:url => some_url}, {'X-Requested-With' => 'XMLHttpRequest'}
38
+ response = accessor.get_response :url => some_url, :method => :post, :cookie => cookie,
39
+ :body => some_hash
38
40
 
39
- # to get SOAP resource
40
- response = accessor.get_soap_response :url => some_url
41
- # or
42
- response = accessor.get_response {:url => some_url}, {'SOAPAction' => 'someSoapOperation', 'Content-Type' => 'text/xml;charset=UTF-8'}
41
+ # 2.b. Get protected resource through POST and post body as string
43
42
 
44
- # to get JSON resource
45
- response = accessor.get_response {:url => some_url}, {'Content-Type" => "application/json;charset=UTF-'}
43
+ response = accessor.get_response :url => some_url, :method => :post, :cookie => cookie,
44
+ :body => some_string
45
+ ```
46
+ You have to specify HTTP method explicitly here (post).
46
47
 
48
+ If you want to get AJAX resource, add special header to the request or use special method:
49
+
50
+ ```ruby
51
+ response1 = accessor.get_response {:url => some_url}, {'X-Requested-With' => 'XMLHttpRequest'}
52
+
53
+ response2 = accessor.get_ajax_response :url => some_url
54
+ ```
55
+
56
+ If you want to get SOAP resource, same as before, add special header to the request or use special method:
57
+
58
+ ```ruby
59
+ response1 = accessor.get_response {:url => some_url}, {'SOAPAction' => 'someSoapOperation', 'Content-Type' => 'text/xml;charset=UTF-8'}
47
60
 
61
+ response2 = accessor.get_soap_response :url => some_url
48
62
  ```
49
63
 
64
+ If you want to get JSON resource, same as before, add special header to the request or use special method:
65
+
66
+ ```ruby
67
+ response = accessor.get_response {:url => some_url}, {'Content-Type" => "application/json;charset=UTF-8'}
68
+
69
+ response2 = accessor.get_json_response :url => some_url
70
+ ```
71
+
72
+ You can setup timeout for your accessor object in milliseconds:
73
+
74
+ ```ruby
75
+ accessor.timeout = 10000
76
+ ```
77
+
78
+ If you need to work over ssl enable certificate validation before the call:
79
+
80
+ ```ruby
81
+ accessor.validate_ssl_cert = true
82
+ accessor.ca_file = 'your cert file location'
83
+ ```
84
+
85
+
50
86
  ## Contributing
51
87
 
52
88
  1. Fork it
data/Rakefile CHANGED
@@ -6,20 +6,16 @@ require "rspec/core/rake_task"
6
6
  require "resource_accessor/version"
7
7
  require "gemspec_deps_gen/gemspec_deps_gen"
8
8
 
9
- def version
10
- ResourceAccessor::VERSION
11
- end
12
-
13
- def project_name
14
- File.basename(Dir.pwd)
15
- end
9
+ version = ResourceAccessor::VERSION
10
+ project_name = File.basename(Dir.pwd)
16
11
 
17
- task :build do
18
- system "rm #{project_name}.gemspec"
12
+ task :gen do
19
13
  generator = GemspecDepsGen.new
20
14
 
21
- generator.generate_dependencies "#{project_name}.gemspec.erb", "#{project_name}.gemspec"
15
+ generator.generate_dependencies "spec", "#{project_name}.gemspec.erb", "#{project_name}.gemspec"
16
+ end
22
17
 
18
+ task :build => :gen do
23
19
  system "gem build #{project_name}.gemspec"
24
20
  end
25
21
 
@@ -27,6 +23,10 @@ task :install do
27
23
  system "gem install #{project_name}-#{version}.gem"
28
24
  end
29
25
 
26
+ task :uninstall do
27
+ system "gem uninstall #{project_name}"
28
+ end
29
+
30
30
  task :release => :build do
31
31
  system "gem push #{project_name}-#{version}.gem"
32
32
  end
@@ -35,3 +35,4 @@ RSpec::Core::RakeTask.new do |task|
35
35
  task.pattern = 'spec/**/*_spec.rb'
36
36
  task.verbose = false
37
37
  end
38
+
@@ -1,9 +1,13 @@
1
1
  require 'net/https'
2
2
 
3
- require 'system_timer' if RUBY_VERSION.to_f < 1.9 and RUBY_PLATFORM != 'java'
4
-
5
3
  class ResourceAccessor
6
- include SystemTimer if RUBY_VERSION.to_f < 1.9 and RUBY_PLATFORM != 'java'
4
+ attr_accessor :timeout, :ca_file, :validate_ssl_cert
5
+
6
+ def initialize timeout = 10000, ca_file = nil, validate_ssl_cert = false
7
+ @timeout = timeout
8
+ @ca_file = ca_file
9
+ @validate_ssl_cert = validate_ssl_cert
10
+ end
7
11
 
8
12
  def get_response params, headers = {}
9
13
  locate_response(params[:url], params[:method], headers, params[:body], params[:cookie])
@@ -23,6 +27,12 @@ class ResourceAccessor
23
27
  locate_response(params[:url], params[:method], headers, params[:body], params[:cookie])
24
28
  end
25
29
 
30
+ def get_json_response params, headers = {}
31
+ headers["Content-Type"] = "application/json;charset=UTF-8"
32
+
33
+ locate_response(params[:url], params[:method], headers, params[:body], params[:cookie])
34
+ end
35
+
26
36
  def get_cookie url, user_name, password
27
37
  headers = {"Content-Type" => "application/x-www-form-urlencoded; charset=UTF-8"}
28
38
 
@@ -85,25 +95,16 @@ class ResourceAccessor
85
95
  request = Net::HTTP::Get.new(uri.request_uri, headers)
86
96
  end
87
97
 
88
- connection.read_timeout = timeout()
89
- connection.open_timeout = timeout()
90
-
91
- timeout_class = defined?(SystemTimer) ? SystemTimer : Timeout
98
+ connection.read_timeout = timeout
99
+ connection.open_timeout = timeout
92
100
 
93
- timeout_class.timeout(timeout) do
101
+ Timeout.timeout(timeout) do
94
102
  return connection.request(request)
95
103
  end
96
104
  end
97
105
 
98
106
  def validate_ssl_cert?
99
- false
107
+ validate_ssl_cert
100
108
  end
101
109
 
102
- def ca_file
103
- nil
104
- end
105
-
106
- def timeout
107
- 10000
108
- end
109
110
  end
@@ -1,3 +1,3 @@
1
1
  class ResourceAccessor
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -14,9 +14,11 @@ Gem::Specification.new do |spec|
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
15
  spec.require_paths = ["lib"]
16
16
  spec.version = ResourceAccessor::VERSION
17
+ spec.license = "MIT"
17
18
 
19
+
18
20
  spec.add_development_dependency "gemspec_deps_gen", [">= 0"]
19
21
  spec.add_development_dependency "gemcutter", [">= 0"]
20
-
22
+
21
23
  end
22
24
 
@@ -14,7 +14,8 @@ Gem::Specification.new do |spec|
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
15
  spec.require_paths = ["lib"]
16
16
  spec.version = ResourceAccessor::VERSION
17
+ spec.license = "MIT"
17
18
 
18
- <%= include_dependencies %>
19
+ <%= project_dependencies %>
19
20
  end
20
21
 
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resource_accessor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Shvets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-14 00:00:00.000000000 Z
11
+ date: 2013-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gemspec_deps_gen
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gemcutter
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: This library is used to simplify access to protected or unprotected http
@@ -48,7 +48,8 @@ files:
48
48
  - .gitignore
49
49
  - .idea/dictionaries/alex.xml
50
50
  - .idea/scopes/scope_settings.xml
51
- - .rvmrc
51
+ - .ruby-gemset
52
+ - .ruby-version
52
53
  - CHANGES
53
54
  - Gemfile
54
55
  - Gemfile.lock
@@ -63,7 +64,8 @@ files:
63
64
  - spec/resource_accessor_spec.rb
64
65
  - spec/spec_helper.rb
65
66
  homepage: http://github.com/shvets/resource_accessor
66
- licenses: []
67
+ licenses:
68
+ - MIT
67
69
  metadata: {}
68
70
  post_install_message:
69
71
  rdoc_options: []
@@ -71,12 +73,12 @@ require_paths:
71
73
  - lib
72
74
  required_ruby_version: !ruby/object:Gem::Requirement
73
75
  requirements:
74
- - - ! '>='
76
+ - - '>='
75
77
  - !ruby/object:Gem::Version
76
78
  version: '0'
77
79
  required_rubygems_version: !ruby/object:Gem::Requirement
78
80
  requirements:
79
- - - ! '>='
81
+ - - '>='
80
82
  - !ruby/object:Gem::Version
81
83
  version: '0'
82
84
  requirements: []
data/.rvmrc DELETED
@@ -1,4 +0,0 @@
1
- rvm_gemset_create_on_use_flag=1
2
- rvm_pretty_print_flag=1
3
-
4
- rvm use ruby-1.9.3@resource_accessor