flazm_ruby_helpers 0.0.2 → 0.0.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 +4 -4
- data/.gitignore +9 -0
- data/Rakefile +7 -2
- data/VERSION +1 -1
- data/flazm_ruby_helpers.gemspec +1 -0
- data/lib/flazm_ruby_helpers/{class_helper.rb → class.rb} +1 -1
- data/lib/flazm_ruby_helpers/data_structures.rb +8 -8
- data/lib/flazm_ruby_helpers/http.rb +30 -0
- data/lib/flazm_ruby_helpers/{rake_helper.rb → os.rb} +1 -24
- data/lib/flazm_ruby_helpers/project.rb +78 -0
- metadata +21 -6
- data/pkg/consul_watcher-0.0.1.gem +0 -0
- data/pkg/flazm_ruby_helpers-0.0.1.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96ceeb0b5ab126e4604f72e976f6c26577f6d2ce089c589063781094cb973da4
|
4
|
+
data.tar.gz: 23f8d7ce8b4653975cee752e354e2c96b6c4ef4df406b310b9ad14bd9e15e7ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 136eeab91ff921911297ab261b6ccfa6e4c18942723a69e8a38813f6a00cbabf971049f1e234fffefff257942ee846d27fcc5f91d491cc406b21b504ed2697b3
|
7
|
+
data.tar.gz: 5dd0cd11c403934ae55899b2f596361936aeb2162330ecbeafbdf60f06bc7c636bf89efa2796cd05e4cd517eee7502a5e3c829b316918530f354da3c56009ffe
|
data/.gitignore
ADDED
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
4
|
require 'open3'
|
5
|
-
require_relative 'lib/flazm_ruby_helpers/
|
5
|
+
require_relative 'lib/flazm_ruby_helpers/os'
|
6
6
|
|
7
7
|
spec_file = Gem::Specification.load('flazm_ruby_helpers.gemspec')
|
8
8
|
|
@@ -10,5 +10,10 @@ task default: :build
|
|
10
10
|
|
11
11
|
task :publish do
|
12
12
|
cmd_gem = "gem push pkg/flazm_ruby_helpers-#{spec_file.version}.gem"
|
13
|
-
_output, _status = FlazmRubyHelpers::
|
13
|
+
_output, _status = FlazmRubyHelpers::Os.exec(cmd_gem)
|
14
|
+
end
|
15
|
+
|
16
|
+
task :install do
|
17
|
+
cmd_gem = "bundle exec gem install pkg/flazm_ruby_helpers-#{spec_file.version}.gem"
|
18
|
+
_output, _status = FlazmRubyHelpers::Os.exec(cmd_gem)
|
14
19
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/flazm_ruby_helpers.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module FlazmRubyHelpers
|
4
4
|
# Define methods to handle default initialization behavior
|
5
|
-
module
|
5
|
+
module Class
|
6
6
|
def initialize_variables(config = {})
|
7
7
|
# define the defaults method in the class that includes this
|
8
8
|
# defaults method returns a hash of instance variables mapped to values
|
@@ -5,15 +5,15 @@ require 'json'
|
|
5
5
|
|
6
6
|
# Adding transversal logic
|
7
7
|
class ::Array # rubocop:disable Style/ClassAndModuleChildren
|
8
|
-
def
|
8
|
+
def visit_values(vproc)
|
9
9
|
map do |array_item|
|
10
|
-
array_item.is_a?(Hash) || array_item.is_a?(Array) ? array_item.
|
10
|
+
array_item.is_a?(Hash) || array_item.is_a?(Array) ? array_item.visit_values(vproc) : vproc.call(array_item)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
14
|
+
def visit_keys(kproc)
|
15
15
|
map do |array_item|
|
16
|
-
array_item.is_a?(Hash) || array_item.is_a?(Array) ? array_item.
|
16
|
+
array_item.is_a?(Hash) || array_item.is_a?(Array) ? array_item.visit_keys(kproc) : array_item
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -33,16 +33,16 @@ class ::Hash # rubocop:disable Style/ClassAndModuleChildren
|
|
33
33
|
merge(second, &merger)
|
34
34
|
end
|
35
35
|
|
36
|
-
def
|
36
|
+
def visit_values(vproc)
|
37
37
|
map do |key, value|
|
38
|
-
value.is_a?(Hash) || value.is_a?(Array) ? { key => value.
|
38
|
+
value.is_a?(Hash) || value.is_a?(Array) ? { key => value.visit_values(vproc) } : { key => vproc.call(value) }
|
39
39
|
end.reduce({}, :merge)
|
40
40
|
end
|
41
41
|
|
42
|
-
def
|
42
|
+
def visit_keys(kproc)
|
43
43
|
map do |key, value|
|
44
44
|
if value.is_a?(Hash) || value.is_a?(Array)
|
45
|
-
{ kproc.call(key) => value.
|
45
|
+
{ kproc.call(key) => value.visit_keys(kproc) }
|
46
46
|
else
|
47
47
|
{ kproc.call(key) => value }
|
48
48
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# frozen_string_literal: true
|
4
|
+
|
5
|
+
require 'net/http'
|
6
|
+
|
7
|
+
module FlazmRubyHelpers
|
8
|
+
module Http
|
9
|
+
def self.wait_for_urls(urls)
|
10
|
+
urls.each do |url|
|
11
|
+
uri = URI(url)
|
12
|
+
error = true
|
13
|
+
puts "uri: #{uri}"
|
14
|
+
Net::HTTP.start(uri.host, uri.port, read_timeout: 5, max_retries: 12) do |http|
|
15
|
+
while error
|
16
|
+
begin
|
17
|
+
response = http.request(Net::HTTP::Get.new(uri))
|
18
|
+
error = false
|
19
|
+
rescue EOFError
|
20
|
+
retry
|
21
|
+
end
|
22
|
+
end
|
23
|
+
raise Exception unless response.code == '200'
|
24
|
+
|
25
|
+
puts "up: #{url}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -3,12 +3,9 @@
|
|
3
3
|
# frozen_string_literal: true
|
4
4
|
|
5
5
|
require 'open3'
|
6
|
-
require 'net/http'
|
7
|
-
require 'bunny'
|
8
|
-
require 'json'
|
9
6
|
|
10
7
|
module FlazmRubyHelpers
|
11
|
-
module
|
8
|
+
module Os
|
12
9
|
def self.exec(command, stream: true)
|
13
10
|
output = [] ; threads = [] ; status = nil
|
14
11
|
Open3.popen3(command) do |_stdin, stdout, stderr, wait_thr|
|
@@ -25,25 +22,5 @@ module FlazmRubyHelpers
|
|
25
22
|
end
|
26
23
|
return output, status
|
27
24
|
end
|
28
|
-
|
29
|
-
def self.wait_for_urls(urls)
|
30
|
-
urls.each do |url|
|
31
|
-
uri = URI(url)
|
32
|
-
error = true
|
33
|
-
Net::HTTP.start(uri.host, uri.port, read_timeout: 5, max_retries: 12) do |http|
|
34
|
-
while error
|
35
|
-
begin
|
36
|
-
response = http.request(Net::HTTP::Get.new(uri))
|
37
|
-
error = false
|
38
|
-
rescue EOFError
|
39
|
-
retry
|
40
|
-
end
|
41
|
-
end
|
42
|
-
raise Exception unless response.code == '200'
|
43
|
-
|
44
|
-
puts "up: #{url}"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
25
|
end
|
49
26
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'git'
|
4
|
+
require 'flazm_ruby_helpers/os'
|
5
|
+
#require 'rubygems/version'
|
6
|
+
|
7
|
+
module FlazmRubyHelpers
|
8
|
+
module Project
|
9
|
+
# Helper module to publish git projects
|
10
|
+
module Git
|
11
|
+
# Depends on version file
|
12
|
+
|
13
|
+
#git show origin/master:VERSION
|
14
|
+
def self.publish(version, remote, branch)
|
15
|
+
g = ::Git.init
|
16
|
+
g.fetch
|
17
|
+
|
18
|
+
validate(g, version)
|
19
|
+
|
20
|
+
g.add_tag(version)
|
21
|
+
puts "Added git tag '#{version}'"
|
22
|
+
_output, push_success = FlazmRubyHelpers::Os.exec("git push #{remote} #{version}:master")
|
23
|
+
raise "ERROR: Failed to push to #{remote} for branch #{branch}" unless push_success
|
24
|
+
_output, tag_success = FlazmRubyHelpers::Os.exec("git push --tags #{remote}")
|
25
|
+
raise "ERROR: Failed to push to #{remote} for branch #{branch}" unless tag_success
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def self.validate(g, version)
|
31
|
+
previous_version = g.object('origin/master:VERSION').contents
|
32
|
+
raise "ERROR: New version (#{version}) is not greater than previous version (#{previous_version})" if ::Gem::Version.new(previous_version) > ::Gem::Version.new(version)
|
33
|
+
|
34
|
+
num_changes = g.log.between('origin/master', 'HEAD').size
|
35
|
+
raise 'ERROR: Local workspace has changes not checked in' unless g.status.changed.size == 0
|
36
|
+
raise "ERROR: Should only have 1 change, have #{num_changes} changes. Please squash your commit" if num_changes != 1
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Helper module to publish docker projects
|
41
|
+
module Docker
|
42
|
+
def self.build(build_cmd)
|
43
|
+
output, success = FlazmRubyHelpers::Os.exec(build_cmd)
|
44
|
+
match = output[-1].match(/Successfully built (.*)$/i)
|
45
|
+
raise 'failed to build docker image' unless success && match
|
46
|
+
|
47
|
+
match.captures[0]
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.tag(docker_image_name, version, image_id)
|
51
|
+
puts "Docker id #{image_id} => tag #{docker_image_name}:#{version}"
|
52
|
+
tag_cmd = "docker tag #{image_id} #{docker_image_name}:#{version}"
|
53
|
+
_output, success = FlazmRubyHelpers::Os.exec(tag_cmd)
|
54
|
+
raise 'docker tag failed' unless success
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.publish(image_name, version)
|
58
|
+
_output, docker_push_success = FlazmRubyHelpers::Os.exec("docker push #{image_name}:#{version}")
|
59
|
+
raise "Docker push failed for image #{image_name}:#{version}" unless docker_push_success
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.validate
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
# Helper module to publish gem projects
|
68
|
+
module Gem
|
69
|
+
def self.publish(gem_name, version)
|
70
|
+
_output, gem_push_success = FlazmRubyHelpers::Os.exec("gem push pkg/#{gem_name}-#{version}.gem")
|
71
|
+
raise "Gem push failed for #{gem_name}:#{version}" unless gem_push_success
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.validate
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flazm_ruby_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Fortman
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-05-
|
11
|
+
date: 2019-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: git
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.5.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.5.0
|
41
55
|
description:
|
42
56
|
email:
|
43
57
|
- r.fortman.dev@gmail.com
|
@@ -45,17 +59,18 @@ executables: []
|
|
45
59
|
extensions: []
|
46
60
|
extra_rdoc_files: []
|
47
61
|
files:
|
62
|
+
- ".gitignore"
|
48
63
|
- Gemfile
|
49
64
|
- LICENSE
|
50
65
|
- README.md
|
51
66
|
- Rakefile
|
52
67
|
- VERSION
|
53
68
|
- flazm_ruby_helpers.gemspec
|
54
|
-
- lib/flazm_ruby_helpers/
|
69
|
+
- lib/flazm_ruby_helpers/class.rb
|
55
70
|
- lib/flazm_ruby_helpers/data_structures.rb
|
56
|
-
- lib/flazm_ruby_helpers/
|
57
|
-
-
|
58
|
-
-
|
71
|
+
- lib/flazm_ruby_helpers/http.rb
|
72
|
+
- lib/flazm_ruby_helpers/os.rb
|
73
|
+
- lib/flazm_ruby_helpers/project.rb
|
59
74
|
homepage: https://github.com/fortman/flazm_ruby_helpers
|
60
75
|
licenses: []
|
61
76
|
metadata: {}
|
Binary file
|
Binary file
|