simple_request 0.1.2 → 0.1.3

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: a380dc73a4972d042555cffee97ee309aeb6d81d4835227e637af3c5f57b5561
4
- data.tar.gz: b8c806ca0039fd0e40e134cd43756135a2ce01fab77cdc8f48d794a2df279610
3
+ metadata.gz: b87e6cc7f8d818a1850074a01f2069abbd06676521a09dec3209728a443af691
4
+ data.tar.gz: 5cbdeb16f5b0d71121e1ffdd10103db2c74504156f47240d8173902c8e02d281
5
5
  SHA512:
6
- metadata.gz: dd9e89b641c451af6e22baf4963222f83cd47299601fd146ab9da0b0ae8be481829e1756ad73f355fc47852ad2b6ee9a87c6ed37357e05161f23e59f7b58f307
7
- data.tar.gz: 4d7f9ada57b7935e8bec920179b6ce1bb55314e2782bc0828d8063515cf2dd50e37ebda0d133b65be3415451417079974b9cff649af1c97192b256fb399d19c4
6
+ metadata.gz: 7ac06c193a392ebd7869ab07531e81013bbc8fa2d42edbe48a4d02b0dc1bfa912682430868dcae985ac57eec8abccb2afd82de9ae990fef2b5ef015d60b18216
7
+ data.tar.gz: 4fa7e0b1197faf7609e142bd878ae14225ae12befdb79809a09394f34b278ffb65c01dec5a0eadb402a475c2fa0a0fa4937ce4ea4ea4006facfe7feded166165
data/.gitignore CHANGED
@@ -10,3 +10,5 @@
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
12
  /simple_request-0.1.1.gem
13
+ /simple_request-0.1.2.gem
14
+ /.byebug_history
@@ -42,7 +42,7 @@ Layout/DefEndAlignment:
42
42
  # Configuration parameters: AllowAdjacentOneLineDefs, NumberOfEmptyLines.
43
43
  Layout/EmptyLineBetweenDefs:
44
44
  Exclude:
45
- - 'lib/simple_helper/const.rb'
45
+ - 'lib/simple_helper/config.rb'
46
46
 
47
47
  # Offense count: 1
48
48
  # Cop supports --auto-correct.
@@ -108,7 +108,6 @@ Layout/SpaceInsideBlockBraces:
108
108
  Layout/TrailingEmptyLines:
109
109
  Exclude:
110
110
  - 'Gemfile'
111
- - 'lib/simple_helper/constant_data.rb'
112
111
 
113
112
  # Offense count: 1
114
113
  # Cop supports --auto-correct.
@@ -137,7 +136,6 @@ Metrics/PerceivedComplexity:
137
136
  # Offense count: 2
138
137
  Naming/ConstantName:
139
138
  Exclude:
140
- - 'lib/simple_helper/constant_data.rb'
141
139
 
142
140
  # Offense count: 1
143
141
  # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
@@ -174,7 +172,7 @@ Style/Documentation:
174
172
  Exclude:
175
173
  - 'spec/**/*'
176
174
  - 'test/**/*'
177
- - 'lib/simple_helper/const.rb'
175
+ - 'lib/simple_helper/config.rb'
178
176
  - 'lib/simple_helper/response_parser.rb'
179
177
  - 'lib/simple_helper/utils.rb'
180
178
  - 'lib/simple_request.rb'
@@ -232,7 +230,6 @@ Style/IfUnlessModifier:
232
230
  # SupportedStyles: literals, strict
233
231
  Style/MutableConstant:
234
232
  Exclude:
235
- - 'lib/simple_helper/constant_data.rb'
236
233
  - 'lib/simple_helper/version.rb'
237
234
 
238
235
  # Offense count: 1
@@ -2,8 +2,8 @@
2
2
 
3
3
  ## 2020-02-04
4
4
  - Changed rspec examples from localhost project to JSONPlaceholder API
5
- - Added `to_csv` in array class to convert array to csv
5
+ - Added `to_csv` in array class to convert array to csv
6
6
  - Added `wrap` in array class to convert hash or nill to an array (Powered by rails core repo)
7
7
  - Added `keys` in hash class to symbolize and stringify hash keys
8
- - Added `string_colorize` in String class to colorize any string
8
+ - Added `string_colorize` in String class to colorize any string
9
9
  - Supported csv format you can export the response to csv by `request.csv`
data/Gemfile CHANGED
@@ -3,6 +3,3 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in simple_request.gemspec
4
4
  gemspec
5
5
 
6
- group :development, :test do
7
- gem 'pry'
8
- end
@@ -1,41 +1,51 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_request (0.1.1)
4
+ simple_request (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- coderay (1.1.2)
10
- diff-lcs (1.3)
11
- method_source (0.9.2)
12
- pry (0.12.2)
13
- coderay (~> 1.1.0)
14
- method_source (~> 0.9.0)
15
- rake (10.5.0)
9
+ addressable (2.7.0)
10
+ public_suffix (>= 2.0.2, < 5.0)
11
+ byebug (11.1.3)
12
+ crack (0.4.3)
13
+ safe_yaml (~> 1.0.0)
14
+ diff-lcs (1.4.2)
15
+ hashdiff (1.0.1)
16
+ public_suffix (4.0.5)
17
+ rake (13.0.1)
16
18
  rspec (3.9.0)
17
19
  rspec-core (~> 3.9.0)
18
20
  rspec-expectations (~> 3.9.0)
19
21
  rspec-mocks (~> 3.9.0)
20
- rspec-core (3.9.1)
21
- rspec-support (~> 3.9.1)
22
- rspec-expectations (3.9.0)
22
+ rspec-core (3.9.2)
23
+ rspec-support (~> 3.9.3)
24
+ rspec-expectations (3.9.2)
23
25
  diff-lcs (>= 1.2.0, < 2.0)
24
26
  rspec-support (~> 3.9.0)
25
- rspec-mocks (3.9.0)
27
+ rspec-mocks (3.9.1)
26
28
  diff-lcs (>= 1.2.0, < 2.0)
27
29
  rspec-support (~> 3.9.0)
28
- rspec-support (3.9.1)
30
+ rspec-support (3.9.3)
31
+ safe_yaml (1.0.5)
32
+ vcr (5.0.0)
33
+ webmock (3.6.2)
34
+ addressable (>= 2.3.6)
35
+ crack (>= 0.3.2)
36
+ hashdiff (>= 0.4.0, < 2.0.0)
29
37
 
30
38
  PLATFORMS
31
39
  ruby
32
40
 
33
41
  DEPENDENCIES
34
42
  bundler (~> 2.0)
35
- pry
36
- rake (~> 10.0)
43
+ byebug (~> 11.1.3)
44
+ rake (~> 13.0)
37
45
  rspec (~> 3.0)
38
46
  simple_request!
47
+ vcr (~> 5.0.0)
48
+ webmock (~> 3.6.2)
39
49
 
40
50
  BUNDLED WITH
41
- 2.0.2
51
+ 2.1.4
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "bundler/setup"
4
4
  require "simple_request"
5
+ require 'byebug'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
data/bin/setup CHANGED
@@ -5,4 +5,4 @@ set -vx
5
5
 
6
6
  bundle install
7
7
 
8
- # Do any other automated setup that you need to do here
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/https'
4
+ module SimpleHelper
5
+ module Config
6
+ class << self
7
+ def supported_methods
8
+ {
9
+ 'get' => Net::HTTP::Get,
10
+ 'post' => Net::HTTP::Post,
11
+ 'patch' => Net::HTTP::Patch,
12
+ 'put' => Net::HTTP::Put,
13
+ 'delete' => Net::HTTP::Delete
14
+ }
15
+ end
16
+
17
+ def supported_schemes
18
+ %w[http https]
19
+ end
20
+
21
+ def reference
22
+ %w[scheme host port request_uri path query]
23
+ end
24
+
25
+ def supported_format
26
+ %w[json plain]
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pry'
4
3
  module SimpleHelper
5
4
  module HeadersProcessor
6
5
  attr_reader :headers
@@ -1,14 +1,15 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  require 'uri'
3
+ require 'net/http'
4
4
  require 'net/https'
5
- require 'pry'
5
+ require 'json'
6
6
  require_relative 'string/string_colorize'
7
+
7
8
  module SimpleHelper
8
9
  module Https
9
10
  class << self
10
- SimpleHelper::Const.supported_methods.each do |key, http_method|
11
- define_method key.to_s do |uri, params, headers|
11
+ SimpleHelper::Config.supported_methods.each do |key, http_method|
12
+ define_method key do |uri, params, headers|
12
13
  https = Net::HTTP.new(uri.host, uri.port)
13
14
  https.use_ssl = true
14
15
  https.verify_mode = OpenSSL::SSL::VERIFY_NONE
@@ -26,4 +27,23 @@ module SimpleHelper
26
27
  end
27
28
  end
28
29
  end
30
+
31
+ module Http
32
+ class << self
33
+ SimpleHelper::Config.supported_methods.each do |key, http_method|
34
+ define_method key.to_s do |uri, params, headers|
35
+ http = Net::HTTP.new(uri.host, uri.port)
36
+ req = http_method.new(uri, headers)
37
+ req.body = params.to_json
38
+ http.request(req)
39
+ rescue Timeout::Error || Net::OpenTimeout
40
+ puts 'Time out'.bold.red.gray
41
+ rescue Net::HTTPBadResponse || SocketError
42
+ puts 'Request Failed!'.bold.red.gray
43
+ rescue StandardError
44
+ puts 'An unknown error occurred!'.bold.red.gray
45
+ end
46
+ end
47
+ end
48
+ end
29
49
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'pry'
4
3
  require_relative 'array/wrap'
5
4
  require_relative 'array/to_csv'
6
5
  require_relative 'string/string_colorize'
@@ -1,3 +1,3 @@
1
1
  module SimpleHelper
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -1,21 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require 'uri'
4
- require 'pry'
5
- # require 'json'
6
-
7
- # require_relative 'simple_helper/array/wrap'
8
- # require_relative 'simple_helper/string/string_colorize'
9
- # require_relative 'simple_helper/array/to_csv'
10
3
  require_relative 'simple_helper/hash/keys'
11
4
 
12
- require_relative 'simple_helper/const'
13
- require_relative 'simple_helper/http'
14
- require_relative 'simple_helper/https'
15
- require_relative 'simple_helper/version'
16
- require_relative 'simple_helper/exceptions'
17
- require_relative 'simple_helper/response_parser'
18
- require_relative 'simple_helper/headers_processor'
5
+ %w[config request version exceptions response_parser headers_processor].each do |file_name|
6
+ require_relative "simple_helper/#{file_name}"
7
+ end
19
8
 
20
9
  class SimpleRequest
21
10
  attr_reader :options, :response
@@ -27,7 +16,7 @@ class SimpleRequest
27
16
 
28
17
  # This define method should create ["get", "post", "patch", "put", "delete"] class methods
29
18
  class << self
30
- SimpleHelper::Const.supported_methods.keys.each do |method_name|
19
+ SimpleHelper::Config.supported_methods.keys.each do |method_name|
31
20
  define_method method_name do |*args|
32
21
  new(*args).send(method_name)
33
22
  end
@@ -35,7 +24,7 @@ class SimpleRequest
35
24
  end
36
25
 
37
26
  # This define method should create ["get", "post", "patch", "put", "delete"] instance methods
38
- SimpleHelper::Const.supported_methods.keys.each do |method_name|
27
+ SimpleHelper::Config.supported_methods.keys.each do |method_name|
39
28
  define_method method_name do
40
29
  @response = requested_class.send(method_name, uri, body, headers_processor)
41
30
  self
@@ -43,13 +32,13 @@ class SimpleRequest
43
32
  end
44
33
 
45
34
  # This define method should create ["scheme", "host", "port", "request_uri", "path", "query"] instance methods
46
- SimpleHelper::Const.reference.each do |key|
35
+ SimpleHelper::Config.reference.each do |key|
47
36
  define_method key do
48
37
  uri.instance_eval(key)
49
38
  end
50
39
  end
51
40
 
52
- SimpleHelper::Const.supported_format.each do |key|
41
+ SimpleHelper::Config.supported_format.each do |key|
53
42
  define_method key do
54
43
  SimpleHelper::ResponseParser.perform(body_response, key, nil)
55
44
  end
@@ -92,13 +81,13 @@ class SimpleRequest
92
81
  def validate
93
82
  # raise SimpleHelper::RedirectionTooDeep.new(last_response), 'HTTP redirects too deep' if options[:limit].to_i <= 0
94
83
 
95
- # unless SimpleHelper::Const.supported_methods.include?(http_method)
84
+ # unless SimpleHelper::Config.supported_methods.include?(http_method)
96
85
  # raise ArgumentError, 'only get, post, patch, put, and delete methods are supported'
97
86
  # end
98
87
 
99
88
  raise ArgumentError, ':headers must be a hash' unless headers.respond_to?(:to_hash)
100
89
 
101
- unless SimpleHelper::Const.supported_schemes.include? scheme
90
+ unless SimpleHelper::Config.supported_schemes.include? scheme
102
91
  raise SimpleHelper::UnsupportedURIScheme, ' URL Must start with http:// or https://'
103
92
  end
104
93
 
@@ -28,6 +28,9 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ["lib"]
29
29
 
30
30
  spec.add_development_dependency "bundler", "~> 2.0"
31
- spec.add_development_dependency "rake", "~> 10.0"
31
+ spec.add_development_dependency 'byebug', '~> 11.1.3'
32
+ spec.add_development_dependency "rake", "~> 13.0"
32
33
  spec.add_development_dependency "rspec", "~> 3.0"
34
+ spec.add_development_dependency 'vcr', '~> 5.0.0'
35
+ spec.add_development_dependency 'webmock', '~> 3.6.2'
33
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - MaJeD BoJaN
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-11 00:00:00.000000000 Z
11
+ date: 2020-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -24,20 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: byebug
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 11.1.3
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 11.1.3
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '10.0'
47
+ version: '13.0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '10.0'
54
+ version: '13.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rspec
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,34 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: vcr
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 5.0.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 5.0.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.6.2
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.6.2
55
97
  description:
56
98
  email:
57
99
  - bojanmajed@gmail.com
@@ -75,14 +117,12 @@ files:
75
117
  - bin/setup
76
118
  - lib/simple_helper/array/to_csv.rb
77
119
  - lib/simple_helper/array/wrap.rb
78
- - lib/simple_helper/const.rb
79
- - lib/simple_helper/constant_data.rb
120
+ - lib/simple_helper/config.rb
80
121
  - lib/simple_helper/exceptions.rb
81
122
  - lib/simple_helper/float/trim.rb
82
123
  - lib/simple_helper/hash/keys.rb
83
124
  - lib/simple_helper/headers_processor.rb
84
- - lib/simple_helper/http.rb
85
- - lib/simple_helper/https.rb
125
+ - lib/simple_helper/request.rb
86
126
  - lib/simple_helper/response_parser.rb
87
127
  - lib/simple_helper/string/string_colorize.rb
88
128
  - lib/simple_helper/version.rb
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative 'constant_data'
4
-
5
- module SimpleHelper
6
- class Const
7
- def self.supported_methods
8
- ConstantData::SupportedHTTPMethods
9
- end
10
-
11
- def self.supported_schemes
12
- ConstantData::SupportedURISchemes
13
- end
14
-
15
- def self.reference
16
- ConstantData::REFERENCES
17
- end
18
-
19
- def self.supported_format
20
- ConstantData::SUPPORTED_FORMAT
21
- end
22
-
23
- def self.colors
24
- ConstantData::COLORS
25
- end
26
-
27
- def self.bg_colors
28
- ConstantData::BG_COLORS
29
- end
30
-
31
- def self.fonts
32
- ConstantData::FONTS
33
- end
34
- end
35
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module SimpleHelper
4
- class ConstantData
5
- SupportedHTTPMethods = {
6
- 'get' => Net::HTTP::Get,
7
- 'post' => Net::HTTP::Post,
8
- 'patch' => Net::HTTP::Patch,
9
- 'put' => Net::HTTP::Put,
10
- 'delete' => Net::HTTP::Delete
11
- }.freeze
12
-
13
- REFERENCES = %w[scheme host port request_uri path query].freeze
14
- SUPPORTED_FORMAT = %w[json plain].freeze
15
- # SUPPORTED_FORMAT = %w[xml json csv plain].freeze
16
- SupportedURISchemes = ['http', 'https'].freeze
17
- end
18
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'uri'
4
- require 'net/http'
5
- require_relative 'const'
6
- require_relative 'string/string_colorize'
7
-
8
- module SimpleHelper
9
- module Http
10
- class << self
11
- SimpleHelper::Const.supported_methods.each do |key, http_method|
12
- define_method key.to_s do |uri, params, headers|
13
- http = Net::HTTP.new(uri.host, uri.port)
14
- req = http_method.new(uri, headers)
15
- req.body = params.to_json
16
- http.request(req)
17
- rescue Timeout::Error || Net::OpenTimeout
18
- puts 'Time out'.bold.red.gray
19
- rescue Net::HTTPBadResponse || SocketError
20
- puts 'Request Failed!'.bold.red.gray
21
- rescue StandardError
22
- puts 'An unknown error occurred!'.bold.red.gray
23
- end
24
- end
25
- end
26
- end
27
- end