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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a5cf0748fd56bb9c92fd5e26d4f636255ef78bd4647502293421b7b74a6db7d5
4
- data.tar.gz: a93aeea8bbec25c4383cbfa608e58e65ee8380be0efd951957c302916d9d589a
3
+ metadata.gz: 96ceeb0b5ab126e4604f72e976f6c26577f6d2ce089c589063781094cb973da4
4
+ data.tar.gz: 23f8d7ce8b4653975cee752e354e2c96b6c4ef4df406b310b9ad14bd9e15e7ab
5
5
  SHA512:
6
- metadata.gz: e5b1fd8ba4d351a904e8e13cb944cd22ae2caadc613884e5b9eee2b9748f1382329ba127dd2c04c40d35ef42f69a83c6c8a8d7d7c246049626f51d7a372151f3
7
- data.tar.gz: 50cac9775f4bc39a8d290beea1e62803b51f5035d7738f47f1320fece0bfe4712ec3d35b37b0e8f0d66522add06a1995ad3459175519d824ecf55db07263a866
6
+ metadata.gz: 136eeab91ff921911297ab261b6ccfa6e4c18942723a69e8a38813f6a00cbabf971049f1e234fffefff257942ee846d27fcc5f91d491cc406b21b504ed2697b3
7
+ data.tar.gz: 5dd0cd11c403934ae55899b2f596361936aeb2162330ecbeafbdf60f06bc7c636bf89efa2796cd05e4cd517eee7502a5e3c829b316918530f354da3c56009ffe
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
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/rake_helper'
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::RakeHelper.exec(cmd_gem)
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.2
1
+ 0.0.3
@@ -21,4 +21,5 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_runtime_dependency 'bundler', '~> 2.0'
24
+ spec.add_dependency 'git', '~> 1.5.0'
24
25
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module FlazmRubyHelpers
4
4
  # Define methods to handle default initialization behavior
5
- module ClassHelper
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 walk_values(vproc)
8
+ def visit_values(vproc)
9
9
  map do |array_item|
10
- array_item.is_a?(Hash) || array_item.is_a?(Array) ? array_item.walk_values(vproc) : vproc.call(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 walk_keys(kproc)
14
+ def visit_keys(kproc)
15
15
  map do |array_item|
16
- array_item.is_a?(Hash) || array_item.is_a?(Array) ? array_item.walk_keys(kproc) : 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 walk_values(vproc)
36
+ def visit_values(vproc)
37
37
  map do |key, value|
38
- value.is_a?(Hash) || value.is_a?(Array) ? { key => value.walk_values(vproc) } : { key => vproc.call(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 walk_keys(kproc)
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.walk_keys(kproc) }
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 RakeHelper
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.2
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-16 00:00:00.000000000 Z
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/class_helper.rb
69
+ - lib/flazm_ruby_helpers/class.rb
55
70
  - lib/flazm_ruby_helpers/data_structures.rb
56
- - lib/flazm_ruby_helpers/rake_helper.rb
57
- - pkg/consul_watcher-0.0.1.gem
58
- - pkg/flazm_ruby_helpers-0.0.1.gem
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