nifty-utils 1.1.4 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7861fedc957d1694081a793e3ae68e3098336ed6
4
- data.tar.gz: 08fcbd00f993d4af6416692a985e63a2fb70238d
3
+ metadata.gz: 4cd572d9cee5d232284ee6891b65d54322cc6e97
4
+ data.tar.gz: af7c8916f38893ca045c5fa08f68e3f282b1a973
5
5
  SHA512:
6
- metadata.gz: 0fe3ac954656f74a573d227b550f303b0a01c57b0b39d02678c84e2f8d3598bbcbfc4fdb68abcc6fdcd0375453c3237a9546ad68ce3c00ea2a32783d9edbb4aa
7
- data.tar.gz: 981b1c35bd0579fdd43d4e588ac45e9d7e56f6d19ed82c7a088acf2e0d0a43e03e8612a080fb7ddd3954d38c4196658b2c31c1e10e7a8807a4ce03a7298736d9
6
+ metadata.gz: 7dc0e5e08d837e9fc8bd9f41ab1f07d7d75b4cde6b113b08cfeca24154159cb94db5c35541fdeb5feaffc52e8c5528726a357309478725cd2693ff92cc01e00f
7
+ data.tar.gz: a40ba6cb5fc8cbb38508df409c6df1e748301f47ee93c37dc7609db300baf431b21a33a576aac1c4f2f23f3b23171fe30eda15f861970550f9d29e37a848c98a
@@ -0,0 +1,72 @@
1
+ require 'net/https'
2
+ require 'uri'
3
+
4
+ module Nifty
5
+ module Utils
6
+ module HTTP
7
+
8
+ def self.get(url, options = {})
9
+ request(Net::HTTP::Get, url, options)
10
+ end
11
+
12
+ def self.post(url, options = {})
13
+ request(Net::HTTP::Post, url, options)
14
+ end
15
+
16
+ def self.request(method, url, options = {})
17
+ options[:headers] ||= {}
18
+ uri = URI.parse(url)
19
+ request = method.new(uri.path.length == 0 ? "/" : uri.path)
20
+ options[:headers].each { |k,v| request.add_field k, v }
21
+
22
+ if options[:username]
23
+ request.basic_auth(options[:username], options[:password])
24
+ end
25
+
26
+ if options[:params].is_a?(Hash)
27
+ # If params has been provided, sent it them as form encoded values
28
+ request.set_form_data(options[:params])
29
+
30
+ elsif options[:json].is_a?(String)
31
+ # If we have a JSON string, set the content type and body to be the JSON
32
+ # data
33
+ request.add_field 'Content-Type', 'application/json'
34
+ request.body = options[:json]
35
+ end
36
+
37
+ if options[:user_agent]
38
+ request['User-Agent'] = options[:user_agent]
39
+ end
40
+
41
+ connection = Net::HTTP.new(uri.host, uri.port)
42
+
43
+ if uri.scheme == 'https'
44
+ connection.use_ssl = true
45
+ connection.verify_mode = OpenSSL::SSL::VERIFY_PEER
46
+ end
47
+
48
+ begin
49
+ timeout = options[:timeout] || 60
50
+ Timeout.timeout(timeout) do
51
+ result = connection.request(request)
52
+ {
53
+ :code => result.code.to_i,
54
+ :body => result.body
55
+ }
56
+ end
57
+ rescue SocketError, Errno::ECONNRESET, EOFError, Errno::EINVAL => e
58
+ {
59
+ :code => -2,
60
+ :body => e.message
61
+ }
62
+ rescue Timeout::Error => e
63
+ {
64
+ :code => -1,
65
+ :body => "Timed out after #{timeout}s"
66
+ }
67
+ end
68
+ end
69
+
70
+ end
71
+ end
72
+ end
@@ -1,5 +1,5 @@
1
1
  module Nifty
2
2
  module Utils
3
- VERSION = '1.1.4'
3
+ VERSION = '1.1.5'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nifty-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Cooke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-09 00:00:00.000000000 Z
11
+ date: 2015-05-14 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A set of useful utilties for Rails applications.
14
14
  email:
@@ -25,6 +25,7 @@ files:
25
25
  - lib/nifty/utils/extensions/core.rb
26
26
  - lib/nifty/utils/extensions/object.rb
27
27
  - lib/nifty/utils/extensions/string.rb
28
+ - lib/nifty/utils/http.rb
28
29
  - lib/nifty/utils/networks.rb
29
30
  - lib/nifty/utils/railtie.rb
30
31
  - lib/nifty/utils/random_string.rb
@@ -57,3 +58,4 @@ signing_key:
57
58
  specification_version: 4
58
59
  summary: A collection of functions which expand upon ActiveRecord and ActionView.
59
60
  test_files: []
61
+ has_rdoc: