iron_worker_ng 0.7.1 → 0.7.2

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.1
1
+ 0.7.2
@@ -45,8 +45,10 @@ module IronWorkerNG
45
45
  wfiles << 'Workerfile'
46
46
 
47
47
  wfiles.each do |wfile|
48
- if File.exists?(wfile)
49
- eval(File.read(wfile))
48
+ src, clean = IronWorkerNG::Fetcher.fetch(wfile)
49
+
50
+ unless src.nil?
51
+ eval(src)
50
52
 
51
53
  @base_dir = File.dirname(wfile) == '.' ? '' : File.dirname(wfile) + '/'
52
54
 
@@ -1,3 +1,5 @@
1
+ require 'fileutils'
2
+
1
3
  module IronWorkerNG
2
4
  module Feature
3
5
  class Base
@@ -6,10 +8,12 @@ module IronWorkerNG
6
8
  end
7
9
 
8
10
  def rebase(path)
9
- File.expand_path(path, @code.base_dir)
11
+ @code.base_dir + path
10
12
  end
11
13
 
12
14
  def zip_add(zip, dest, src)
15
+ src, clean = IronWorkerNG::Fetcher.fetch(src, true)
16
+
13
17
  src = File.expand_path(src)
14
18
 
15
19
  unless File.exists?(src)
@@ -24,6 +28,10 @@ module IronWorkerNG
24
28
  else
25
29
  zip.add(@code.dest_dir + dest, src)
26
30
  end
31
+
32
+ unless clean.nil?
33
+ FileUtils.rm_f(clean)
34
+ end
27
35
  end
28
36
 
29
37
  def hash_string
@@ -0,0 +1,50 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+ require 'tmpdir'
4
+
5
+ module IronWorkerNG
6
+ class Fetcher
7
+ def self.fetch(url, to_file = false)
8
+ if url.start_with?('http://') || url.start_with?('https://')
9
+ uri = URI.parse(url)
10
+
11
+ http = Net::HTTP.new(uri.host, uri.port)
12
+
13
+ if uri.scheme == 'https'
14
+ http.use_ssl = true
15
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
16
+ end
17
+
18
+ response = http.request(Net::HTTP::Get.new(uri.request_uri))
19
+
20
+ if response.kind_of?(Net::HTTPRedirection)
21
+ IronWorkerNG::Fetcher.fetch(response['location'], to_file)
22
+ end
23
+
24
+ if to_file
25
+ tmp_dir_name = Dir.tmpdir + '/' + Dir::Tmpname.make_tmpname("iron-worker-ng-", "http")
26
+
27
+ Dir.mkdir(tmp_dir_name)
28
+
29
+ File.open(tmp_dir_name + '/' + File.basename(url), 'wb') do |f|
30
+ f.write(response.body)
31
+ end
32
+
33
+ [tmp_dir_name + '/' + File.basename(url), tmp_dir_name]
34
+ else
35
+ [response.body, nil]
36
+ end
37
+ else
38
+ unless File.exists?(url)
39
+ return [nil, nil]
40
+ end
41
+
42
+ if to_file
43
+ [url, nil]
44
+ else
45
+ [File.read(url), nil]
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,3 +1,4 @@
1
1
  require_relative 'iron_worker_ng/version'
2
+ require_relative 'iron_worker_ng/fetcher'
2
3
  require_relative 'iron_worker_ng/client'
3
4
  require_relative 'iron_worker_ng/code/creator'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_worker_ng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -128,6 +128,7 @@ files:
128
128
  - lib/iron_worker_ng/feature/ruby/merge_exec.rb
129
129
  - lib/iron_worker_ng/feature/ruby/merge_gem.rb
130
130
  - lib/iron_worker_ng/feature/ruby/merge_gemfile.rb
131
+ - lib/iron_worker_ng/fetcher.rb
131
132
  - lib/iron_worker_ng/version.rb
132
133
  - ng_tests_worker.rb
133
134
  - remote_test.rb
@@ -145,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
146
  version: '0'
146
147
  segments:
147
148
  - 0
148
- hash: -928794419
149
+ hash: 787590099
149
150
  required_rubygems_version: !ruby/object:Gem::Requirement
150
151
  none: false
151
152
  requirements: