requesta 0.1.3 → 0.1.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0c9d7570286a8a83ceead2c3e695df709ab07ba2a5a556e2b4f7db39dd33b70
4
- data.tar.gz: 292a460bdd843b5fb7ca359522f42648e4ff45544edd263b4382ecd70e58ad1d
3
+ metadata.gz: 3f2550db52fc7f9f91a9366b97fcba644a414b3c7e9da49b1d184defd8272fb1
4
+ data.tar.gz: 1149cea39c0f91f48b67fa07f93c61f88476e293e8039b1d30c85a5fc169d1c9
5
5
  SHA512:
6
- metadata.gz: ff4230435224a615890a5e5df6437f3f54add10cf1d18bc6a52a9f56b6334a16d62acb3f171ade45d2ab52e33142f6b0d185e884dc64da2f9cc87ddb14c7f3a6
7
- data.tar.gz: 7f19047fe872aba2b53c748558892d62f094ffc41c540b9c4bd6786ca056ac1456c73af35b7011a609f8471a720215c6d091ad291726f736ffea9eef86c76062
6
+ metadata.gz: d62c2927061ce2346336990cf9e93edf88120e838b5b17344cbdf33e3c09c2db84fcdff534f95fdf20c480ec47831f0a2315c4470e3a808b81e051f29cf68ce1
7
+ data.tar.gz: ebebc97029f6f2b2633f2f114f9426f83a1abd73ada8ab5d8fdf55526ea3c76f1390b14c73237a8fdf15bae76c42bd98b72cbecdd201760b6eae4002b27c5bba
@@ -1,10 +1,14 @@
1
- require 'net/http'
2
- require 'net/https'
1
+ # FILE: lib/requesta.rb
3
2
 
3
+ # Reference:
4
4
  # https://guides.rubyonrails.org/active_support_core_extensions.html
5
- require 'active_support/all'
6
5
 
7
- require_relative 'requesta/custom_error'
6
+ require 'net/http'
7
+ require 'net/https'
8
+ require 'active_support'
9
+ require 'active_support/core_ext/object/blank'
10
+
11
+ require_relative 'requesta/errors'
8
12
 
9
13
  class Requesta
10
14
 
@@ -20,7 +24,9 @@ class Requesta
20
24
  end
21
25
 
22
26
  def request(uri)
23
- raise CustomError, "request(): URI was nil" if uri.nil?
27
+ unless uri.is_a?(URI)
28
+ raise RequestaError::RequestError, "request(): 'uri' parameter must be of type 'URI'"
29
+ end
24
30
 
25
31
  puts "Requesting '#{uri.to_s}'" if @verbose
26
32
 
@@ -46,56 +52,63 @@ class Requesta
46
52
  end
47
53
 
48
54
  http.request(request)
49
- rescue CustomError => error
50
- error.report
51
- nil
52
- end
53
-
54
- # URI/HREF
55
- #----------
56
-
57
- def uri_scheme_https?(uri)
58
- uri.scheme == 'https'
59
- end
60
-
61
- def href_scheme_https?(href)
62
- uri = URI(href)
63
- uri_scheme_https?(uri)
64
55
  end
65
56
 
66
57
  # Request Headers
67
58
  #-----------------
68
59
 
69
- def set_headers(headers={})
70
- raise CustomError, "set_headers(): headers was blank" if headers.blank?
60
+ def set_headers(headers)
61
+ unless headers.is_a?(Hash)
62
+ raise RequestaError::RequestHeaderError, "set_headers(): 'headers' parameter must be of type 'Hash'"
63
+ end
64
+
71
65
  headers.each{ |key,value| set_header(key, value) }
72
- rescue CustomError => error
73
- error.report
74
- nil
75
66
  end
76
67
 
77
- def set_header(key=nil, value=nil)
78
- raise CustomError, "set_header(): key was nil" if key.nil?
79
- raise CustomError, "set_header(): value was nil" if value.nil?
68
+ def set_header(key, value)
69
+ unless key.is_a?(String) || key.is_a?(Symbol)
70
+ raise RequestaError::RequestHeaderError, "set_header(): 'key' parameter must be of type Symbol or String"
71
+ end
72
+
73
+ unless value.is_a?(String) || value.is_a?(Symbol)
74
+ raise RequestaError::RequestHeaderError, "set_header(): 'value' parameter must be of type Symbol or String"
75
+ end
76
+
80
77
  @headers[key] = value
81
- rescue CustomError => error
82
- error.report
83
- nil
84
78
  end
85
79
 
86
80
  def clear_headers
87
81
  @headers = {}
88
- rescue CustomError => error
89
- error.report
90
- nil
91
82
  end
92
83
 
93
- def clear_header(key=nil)
94
- raise CustomError, "clear_header(): key was nil" if key.nil?
84
+ def clear_header(key)
85
+ unless key.is_a?(String) || key.is_a?(Symbol)
86
+ raise RequestaError::RequestHeaderError, "clear_header(): 'key' must be of type Symbol or String"
87
+ end
88
+
95
89
  @headers.delete(key)
96
- rescue CustomError => error
97
- error.report
98
- nil
90
+ end
91
+
92
+ private
93
+
94
+ # URI/HREF
95
+ #----------
96
+
97
+ def uri_scheme_https?(uri)
98
+ unless uri.is_a?(URI)
99
+ raise RequestaError::MethodError, "href_scheme_https?(): 'href' parameter must be of type 'URI'"
100
+ end
101
+
102
+ uri.scheme == 'https'
103
+ end
104
+
105
+ def href_scheme_https?(href)
106
+ unless href.is_a?(String)
107
+ raise RequestaError::MethodError, "href_scheme_https?(): 'href' parameter must be of type 'String'"
108
+ end
109
+
110
+ uri = URI(href)
111
+ uri_scheme_https?(uri)
99
112
  end
100
113
 
101
114
  end
@@ -0,0 +1,33 @@
1
+ # FILE: lib/requesta/errors.rb
2
+
3
+ # Reference:
4
+ # http://blog.honeybadger.io/ruby-custom-exceptions/
5
+
6
+ module RequestaError
7
+
8
+ class CustomError < StandardError
9
+
10
+ attr_reader :foo
11
+
12
+ def initialize(message="Default error message", foo='bar')
13
+ @foo = foo
14
+ super(message)
15
+ end
16
+
17
+ def report
18
+ "\n\n" +
19
+ self.class.to_s +
20
+ ":\s" +
21
+ self.message +
22
+ "\n\n" +
23
+ self.backtrace.join("\n") +
24
+ "\n\n"
25
+ end
26
+
27
+ end
28
+
29
+ class MethodError < CustomError; end;
30
+ class RequestError < CustomError; end;
31
+ class RequestHeaderError < CustomError; end;
32
+
33
+ end
@@ -1,21 +1,29 @@
1
+ # FILE: requesta.gemspec
2
+
3
+ # Reference:
1
4
  # https://guides.rubygems.org/specification-reference/
5
+ # https://rubygems.org/gems/rspec/versions/3.8.0
6
+ # https://rubygems.org/gems/activesupport
7
+ # https://rubygems.org/gems/awesome_print
2
8
 
3
9
  Gem::Specification.new do |s|
4
10
 
5
11
  s.name = 'requesta'
6
- s.version = '0.1.3'
7
- s.summary = "Wrapper for simple http(s) requests."
8
- s.description = "Wrapper for simple http(s) requests."
12
+ s.version = '0.1.4'
13
+ s.summary = "A wrapper for simple http requests, in Ruby."
14
+ s.description = "A wrapper for simple http requests, in Ruby."
9
15
  s.authors = ["Edrick Clark"]
10
16
  s.email = 'edrickclark@gmail.com'
11
17
  s.homepage = 'https://github.com/edrickclark/requesta'
12
18
 
13
- s.files = Dir['lib/**/*', 'requesta.gemspec']
19
+ s.files = Dir['requesta.gemspec', 'lib/**/*']
14
20
 
15
21
  s.metadata = {
16
- "source_code_uri" => "https://github.com/edrickclark/requesta"
22
+ 'source_code_uri' => "https://github.com/edrickclark/requesta"
17
23
  }
18
24
 
25
+ s.required_ruby_version = '>= 2.2.2'
26
+
19
27
  s.add_runtime_dependency 'activesupport', '~> 5.2'
20
28
  s.add_development_dependency 'awesome_print', '~> 1.8'
21
29
  s.add_development_dependency 'rspec', '~> 3.7'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: requesta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edrick Clark
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-18 00:00:00.000000000 Z
11
+ date: 2018-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -52,14 +52,14 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.7'
55
- description: Wrapper for simple http(s) requests.
55
+ description: A wrapper for simple http requests, in Ruby.
56
56
  email: edrickclark@gmail.com
57
57
  executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
61
  - lib/requesta.rb
62
- - lib/requesta/custom_error.rb
62
+ - lib/requesta/errors.rb
63
63
  - requesta.gemspec
64
64
  homepage: https://github.com/edrickclark/requesta
65
65
  licenses: []
@@ -73,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: 2.2.2
77
77
  required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
@@ -84,5 +84,5 @@ rubyforge_project:
84
84
  rubygems_version: 2.7.6
85
85
  signing_key:
86
86
  specification_version: 4
87
- summary: Wrapper for simple http(s) requests.
87
+ summary: A wrapper for simple http requests, in Ruby.
88
88
  test_files: []
@@ -1,22 +0,0 @@
1
- # http://blog.honeybadger.io/ruby-custom-exceptions/
2
-
3
- class CustomError < StandardError
4
-
5
- attr_reader :foo
6
-
7
- def initialize(message="Default error message", foo='bar')
8
- @foo = foo
9
- super(message)
10
- end
11
-
12
- def report
13
- "\n\n" +
14
- self.class.to_s +
15
- ":\s" +
16
- self.message +
17
- "\n\n" +
18
- self.backtrace.join("\n") +
19
- "\n\n"
20
- end
21
-
22
- end