a2zdeploy 1.0.18 → 1.0.19

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
  SHA1:
3
- metadata.gz: 7ff9f5db9e1c4b5abf2950f59f8ec2f039d89005
4
- data.tar.gz: 77c0358fd6d2078746340339eab6af166e13be03
3
+ metadata.gz: 38ba98ff95182928338ffcb4f056e71a50ed626b
4
+ data.tar.gz: 7f8566f7bd6ee26798b77ae943025d9eceeab4bd
5
5
  SHA512:
6
- metadata.gz: 472b463c92a969a930be9e6a37c811af4494e4e3ceb654f2583b257bb3bbe6495b58f746e6839d93fd0485aafad2723a2cf1c7d3fa8a60df360d5c3f61438274
7
- data.tar.gz: 4edf184f609ae730e85bb82b5a95d7bcc57d2f7379a77fa8d1d0bc1b53e7163eb07e7c661b88b871d0799508c347b3c0e41122a4199624bb0aad6c1fd6c0cf01
6
+ metadata.gz: d4d3bac9fdbe431212d12e029c06f6e59e49ff3130236df90f13ee7484f6818f527c6710d215db530f59efcb3a7602faff5b14184f1d362023f51abb14190bdf
7
+ data.tar.gz: 0412791305d2ab825f289afd002e1eb1de90db383d90c1a5bfac60ef14958fc1fe5d372be8dd288daa0b0e7dd483e23fb0e0c0b88850a79a2da1709efc935e0f
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'a2zdeploy'
3
- s.version = '1.0.18'
3
+ s.version = '1.0.19'
4
4
  s.date = '2016-02-15'
5
5
  s.summary = 'Given a project dependency chain, updates versions, builds, tests, manages service and cloud settings as well as build environment configuration'
6
6
  s.description = 'Automated Upgrades Gem. Provides version upgrades, build and deployment configuration management'
@@ -1,10 +1,11 @@
1
1
  =begin
2
2
  Defines a simple dependency tree in a has map and allows accessing top and GlobalConstants::NEXT item in the tree.
3
- - The keys 'GlobalConstants::ROOT, GlobalConstants::NEXT, GlobalConstants::PREVIOUS and GlobalConstants::PROJECTNAME_NAME' are self-descriptive and symbols
4
- - GlobalConstants::ROOT's GlobalConstants::PREVIOUS is always nil, so are all leaf node GlobalConstants::NEXT
3
+ - The keys 'GlobalConstants::NEXT, GlobalConstants::PREVIOUS and GlobalConstants::PROJECTNAME_NAME' are self-descriptive and symbols
4
+ - GlobalConstants::IS_ROOT's project GlobalConstants::PREVIOUS is always nil, so are all leaf node GlobalConstants::NEXT
5
5
  {
6
- "GlobalConstants::ROOT" => {
6
+ "Ontology" => {
7
7
  "GlobalConstants::PROJECTNAME" => "Ontology",
8
+ "GlobalConstants::IS_ROOT" => "y",
8
9
  "GlobalConstants::NEXT" => "FhirWalker",
9
10
  "GlobalConstants::PREVIOUS" => nil,
10
11
  "metadata" => "[json or another hash]"
@@ -23,55 +24,52 @@ class DependencyTree
23
24
 
24
25
  def initialize dependency_map
25
26
  @dependency_map = dependency_map
27
+ @root_node = nil
26
28
  end
27
29
 
28
30
  def root
29
- return nil if @dependency_map.nil? || @dependency_map.class.to_s != GlobalConstants::HASH || @dependency_map.empty?
31
+ return nil if @dependency_map.nil? || !@dependency_map.is_a?(GlobalConstants::HASH) || @dependency_map.empty?
32
+ return @root_node if !@root_node.nil?
30
33
 
31
- if @dependency_map.has_key?(GlobalConstants::ROOT)
32
- if @dependency_map[GlobalConstants::ROOT].has_key? GlobalConstants::PROJECTNAME
33
- root_node = Hashit.new @dependency_map[GlobalConstants::ROOT]
34
- root_node
34
+ @dependency_map.each do |k,v|
35
+ if v.has_key?(GlobalConstants::IS_ROOT) && v[GlobalConstants::IS_ROOT].downcase == 'y'
36
+ root_node = Hashit.new v, k
37
+ @root_node = root_node
38
+ return @root_node
35
39
  end
36
40
  end
37
41
  end
38
42
 
39
43
  def next_node current
40
44
  return nil if current.to_s.strip.length == 0
41
- return nil if @dependency_map.nil? || @dependency_map.class.to_s != GlobalConstants::HASH || @dependency_map.empty?
45
+ return nil if @dependency_map.nil? || !@dependency_map.is_a?(GlobalConstants::HASH) || @dependency_map.empty?
42
46
 
43
- current = GlobalConstants::ROOT if @dependency_map[GlobalConstants::ROOT][GlobalConstants::PROJECTNAME] == current
44
47
  if @dependency_map[current].has_key? GlobalConstants::NEXT
45
- next_node = @dependency_map[current][GlobalConstants::NEXT]
46
- next_node = @dependency_map[next_node]
47
- next_node = Hashit.new next_node if !next_node.nil?
48
+ next_node_name = @dependency_map[current][GlobalConstants::NEXT]
49
+ next_node = @dependency_map[next_node_name]
50
+ return nil if next_node.nil?
51
+ return Hashit.new next_node, next_node_name
48
52
  end
49
53
  end
50
54
 
51
55
  def previous_node current
52
56
  return nil if current.to_s.strip.length == 0
53
- return nil if @dependency_map.nil? || @dependency_map.class.to_s != GlobalConstants::HASH || @dependency_map.empty?
57
+ return nil if @dependency_map.nil? || !@dependency_map.is_a?(GlobalConstants::HASH) || @dependency_map.empty?
54
58
 
55
59
  if @dependency_map[current].has_key? GlobalConstants::PREVIOUS
56
- prev_node = @dependency_map[current][GlobalConstants::PREVIOUS]
57
- if @dependency_map[GlobalConstants::ROOT][GlobalConstants::PROJECTNAME] == prev_node
58
- prev_node = @dependency_map[GlobalConstants::ROOT]
59
- else
60
- prev_node = @dependency_map[prev_node]
61
- end
60
+ prev_node_name = @dependency_map[current][GlobalConstants::PREVIOUS]
61
+ prev_node = @dependency_map[prev_node_name]
62
62
  return nil if prev_node.nil?
63
- return Hashit.new prev_node
63
+ return Hashit.new prev_node, prev_node_name
64
64
  end
65
65
  end
66
66
 
67
67
  def traverse
68
- current = GlobalConstants::ROOT
69
- current = @dependency_map[current]
70
- current = Hashit.new current
68
+ current = root
71
69
  yield current
72
70
  while current != nil
73
71
  begin
74
- current = next_node current.project_name
72
+ current = next_node current._node_name
75
73
  rescue
76
74
  #puts $!
77
75
  current = nil
@@ -1,10 +1,10 @@
1
1
  module GlobalConstants
2
2
 
3
- HASH = 'Hash'
3
+ HASH = Hash
4
4
 
5
5
  SPEC = Dir.pwd + '\src\spec'
6
6
 
7
- ROOT = 'root'
7
+ IS_ROOT = 'is_root'
8
8
  PREVIOUS = 'previous'
9
9
  NEXT = 'next'
10
10
  PROJECTNAME = 'project_name'
@@ -1,9 +1,14 @@
1
1
  class Hashit
2
- def initialize(hash)
2
+ def initialize(hash, node_name=nil)
3
+ if !node_name.nil?
4
+ self.instance_variable_set("@_node_name", node_name)
5
+ self.class.send(:define_method, "_node_name", proc{self.instance_variable_get("@_node_name")}) if !self.respond_to?("_node_name")
6
+ self.class.send(:define_method, "_node_name=", proc{|node_name| self.instance_variable_set("@_node_name", node_name)}) if !self.respond_to?("_node_name=")
7
+ end
3
8
  hash.each do |k,v|
4
- self.instance_variable_set("@#{k}", v.is_a?(Hash) ? Hashit.new(v) : v)
5
- self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")})
6
- self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)})
9
+ self.instance_variable_set("@#{k}", v.is_a?(Hash) ? Hashit.new(v, k) : v)
10
+ self.class.send(:define_method, k, proc{self.instance_variable_get("@#{k}")}) if !self.respond_to?("#{k}")
11
+ self.class.send(:define_method, "#{k}=", proc{|v| self.instance_variable_set("@#{k}", v)}) if !self.respond_to?("#{k}=")
7
12
  end
8
13
  end
9
14
  end
@@ -12,7 +12,7 @@ class InputValidator
12
12
  #if project publishes nuget we need to check if major /minor/patch incrmeented but not all 3
13
13
 
14
14
  def validate_version_map version_map
15
- if version_map.nil? || version_map.class.to_s != GlobalConstants::HASH
15
+ if version_map.nil? || !version_map.is_a?(GlobalConstants::HASH)
16
16
  yield 'Version map must be a non-empty ' + GlobalConstants::HASH
17
17
  end
18
18
  end
@@ -82,7 +82,7 @@ class RollbackAll
82
82
  nuget_targets = []
83
83
 
84
84
  # TODO: This validation could probably go in an input validator specifically for rollback
85
- rollback_config = @manifest['projects']['root']['metadata'].IsRollback
85
+ rollback_config = @manifest['is_rollback'].IsRollback
86
86
  rollback = !rollback_config.nil? and rollback_config.downcase == 'y'
87
87
  if !rollback
88
88
  puts 'IsRollback not set in manifest, aborting rollback.'
@@ -110,10 +110,7 @@ class RollbackAll
110
110
  upgrade_status = upgrader.Do node, nuget_targets, is_local_run
111
111
 
112
112
  # save node name to use for status update
113
- node_name = node.project_name
114
- if (node.respond_to?('is_root') && node.is_root == 'true')
115
- node_name = GlobalConstants::ROOT
116
- end
113
+ node_name = node._node_name
117
114
 
118
115
  # project status set in json
119
116
  if upgrade_status
@@ -135,7 +132,7 @@ class RollbackAll
135
132
  end
136
133
 
137
134
  # upgrade completed successfully, set rollback to 'n' state, update status as unprocessed and save version map and manifest, push
138
- @manifest['projects']['root']['metadata'].IsRollback = 'n'
135
+ @manifest['is_rollback'] = 'n'
139
136
  reset_status_unprocessed
140
137
 
141
138
 
@@ -95,8 +95,7 @@ class UpgradeAll
95
95
  upgrade_status = upgrader.Do node, nuget_targets, is_local_run
96
96
 
97
97
  # save node name to use for status update
98
- node_name = node.project_name
99
- node_name = GlobalConstants::ROOT if (node.respond_to?('is_root') && node.is_root)
98
+ node_name = node._node_name
100
99
 
101
100
  # set project status in json
102
101
  if upgrade_status
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: a2zdeploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.18
4
+ version: 1.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Suresh Batta
@@ -17,6 +17,10 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - Gemfile
21
+ - Gemfile.lock
22
+ - ReadMe.md
23
+ - a2zdeploy.gemspec
20
24
  - lib/a2zdeploy.rb
21
25
  - lib/dependency_tree.rb
22
26
  - lib/github_api.rb
@@ -30,10 +34,6 @@ files:
30
34
  - lib/upgrade.rb
31
35
  - lib/upgradeall.rb
32
36
  - lib/version_map.rb
33
- - a2zdeploy.gemspec
34
- - ReadMe.md
35
- - Gemfile
36
- - Gemfile.lock
37
37
  homepage: http://rubygems.org/gems/a2zdeploy
38
38
  licenses:
39
39
  - MIT
@@ -54,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
54
54
  version: '0'
55
55
  requirements: []
56
56
  rubyforge_project:
57
- rubygems_version: 2.0.14
57
+ rubygems_version: 2.4.6
58
58
  signing_key:
59
59
  specification_version: 4
60
60
  summary: Given a project dependency chain, updates versions, builds, tests, manages