flazm_ruby_helpers 0.0.2 → 0.0.3

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
  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