foreplay 0.10.1 → 0.10.2

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
  SHA1:
3
- metadata.gz: 35a3ae418413c4a78a0c33ef41eb5e7168287e32
4
- data.tar.gz: 954d074b1b34dc7643b3cd4a3b8daa433fa74ad1
3
+ metadata.gz: 8309e23db1f7672cdaed6a12e16ff0b169d12585
4
+ data.tar.gz: 44607300ff2632d6c3d55f7a2d2ed254c1519b86
5
5
  SHA512:
6
- metadata.gz: 20fd2bc4dc6f9eae22d3c098425b581d7b53d19bb0a1085ef8263edcb54b8bbd6f61b98f91ae78034d393316231203c97a90308b9f98cfc4c95af63569b8ddd8
7
- data.tar.gz: aa5ad1cdc055544d768d7ffd63e2dd7766f5eddc23103ea4ab90c8a131efdb8d9b662a4e74e02a770856900c477d337123a8d2f2289797b24959b6a06a10bced
6
+ metadata.gz: 44ffafaac345689e2e0da36d4a2abf5c65545508d38ad5b881d99e2c40621cee76d7ea4b22f0a7d15853c89894bbfe1fbd645c384f6404b994f4339c6cec10e2
7
+ data.tar.gz: 3fd4c8e252f3692d77252f4b3deb724a45356007423b28aa51f9e58d99a12425b96734c730802b683a593476be5474cafc01a7564b6d85f1e954e572b6db2143
data/lib/foreplay.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'active_support/core_ext'
1
2
  require 'foreplay/version'
2
3
  require 'foreplay/engine'
3
4
  require 'foreplay/launcher'
@@ -14,3 +15,56 @@ module Foreplay
14
15
  fail message
15
16
  end
16
17
  end
18
+
19
+ require 'active_support/core_ext/object'
20
+
21
+ class Hash
22
+ # Returns a new hash with +hash+ and +other_hash+ merged recursively, including arrays.
23
+ #
24
+ # h1 = { x: { y: [4,5,6] }, z: [7,8,9] }
25
+ # h2 = { x: { y: [7,8,9] }, z: 'xyz' }
26
+ # h1.supermerge(h2)
27
+ # #=> {:x=>{:y=>[4, 5, 6, 7, 8, 9]}, :z=>[7, 8, 9, "xyz"]}
28
+ def supermerge(other_hash)
29
+ fail 'supermerge only works if you pass a hash. '\
30
+ "You passed a #{self.class} and a #{other_hash.class}." unless other_hash.is_a?(Hash)
31
+
32
+ new_hash = deep_dup
33
+
34
+ other_hash.each_pair do |k, v|
35
+ tv = new_hash[k]
36
+
37
+ if tv.is_a?(Hash) && v.is_a?(Hash)
38
+ new_hash[k] = tv.supermerge(v)
39
+ elsif tv.is_a?(Array) || v.is_a?(Array)
40
+ new_hash[k] = Array.wrap(tv) + Array.wrap(v)
41
+ else
42
+ new_hash[k] = v
43
+ end
44
+ end
45
+
46
+ new_hash
47
+ end
48
+ end
49
+
50
+ # Some useful additions to the String class
51
+ class String
52
+ colors = %w(black red green yellow blue magenta cyan white)
53
+
54
+ colors.each_with_index do |fg_color, i|
55
+ fg = 30 + i
56
+ define_method(fg_color) { ansi_attributes(fg) }
57
+
58
+ colors.each_with_index do |bg_color, j|
59
+ define_method("#{fg_color}_on_#{bg_color}") { ansi_attributes(fg, 40 + j) }
60
+ end
61
+ end
62
+
63
+ def ansi_attributes(*args)
64
+ "\e[#{args.join(';')}m#{self}\e[0m"
65
+ end
66
+
67
+ def fake_erb
68
+ gsub(/(<%=\s+([^%]+)\s+%>)/) { |e| eval "_ = #{e.split[1]}" }
69
+ end
70
+ end
@@ -1,6 +1,4 @@
1
1
  require 'yaml'
2
- require 'string'
3
- require 'hash'
4
2
 
5
3
  require 'foreplay/engine/defaults'
6
4
  require 'foreplay/engine/logger'
@@ -1,3 +1,3 @@
1
1
  module Foreplay
2
- VERSION = '0.10.1'
2
+ VERSION = '0.10.2'
3
3
  end
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
- require 'hash'
2
+ require 'foreplay'
3
3
 
4
4
  describe Hash do
5
5
  context '#supermerge' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreplay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xenapto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-09 00:00:00.000000000 Z
11
+ date: 2015-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: foreman
@@ -236,8 +236,6 @@ files:
236
236
  - lib/foreplay/setup.rb
237
237
  - lib/foreplay/setup/foreplay.yml
238
238
  - lib/foreplay/version.rb
239
- - lib/hash.rb
240
- - lib/string.rb
241
239
  - spec/lib/foreplay/deploy_spec.rb
242
240
  - spec/lib/foreplay/secrets_spec.rb
243
241
  - spec/lib/foreplay/setup_spec.rb
@@ -263,7 +261,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
261
  version: '0'
264
262
  requirements: []
265
263
  rubyforge_project:
266
- rubygems_version: 2.4.6
264
+ rubygems_version: 2.4.7
267
265
  signing_key:
268
266
  specification_version: 4
269
267
  summary: 'Example: foreplay deploy production'
data/lib/hash.rb DELETED
@@ -1,30 +0,0 @@
1
- require 'active_support/core_ext/object'
2
-
3
- class Hash
4
- # Returns a new hash with +hash+ and +other_hash+ merged recursively, including arrays.
5
- #
6
- # h1 = { x: { y: [4,5,6] }, z: [7,8,9] }
7
- # h2 = { x: { y: [7,8,9] }, z: 'xyz' }
8
- # h1.supermerge(h2)
9
- # #=> {:x=>{:y=>[4, 5, 6, 7, 8, 9]}, :z=>[7, 8, 9, "xyz"]}
10
- def supermerge(other_hash)
11
- fail 'supermerge only works if you pass a hash. '\
12
- "You passed a #{self.class} and a #{other_hash.class}." unless other_hash.is_a?(Hash)
13
-
14
- new_hash = deep_dup
15
-
16
- other_hash.each_pair do |k, v|
17
- tv = new_hash[k]
18
-
19
- if tv.is_a?(Hash) && v.is_a?(Hash)
20
- new_hash[k] = tv.supermerge(v)
21
- elsif tv.is_a?(Array) || v.is_a?(Array)
22
- new_hash[k] = Array.wrap(tv) + Array.wrap(v)
23
- else
24
- new_hash[k] = v
25
- end
26
- end
27
-
28
- new_hash
29
- end
30
- end
data/lib/string.rb DELETED
@@ -1,21 +0,0 @@
1
- # Some useful additions to the String class
2
- class String
3
- colors = %w(black red green yellow blue magenta cyan white)
4
-
5
- colors.each_with_index do |fg_color, i|
6
- fg = 30 + i
7
- define_method(fg_color) { ansi_attributes(fg) }
8
-
9
- colors.each_with_index do |bg_color, j|
10
- define_method("#{fg_color}_on_#{bg_color}") { ansi_attributes(fg, 40 + j) }
11
- end
12
- end
13
-
14
- def ansi_attributes(*args)
15
- "\e[#{args.join(';')}m#{self}\e[0m"
16
- end
17
-
18
- def fake_erb
19
- gsub(/(<%=\s+([^%]+)\s+%>)/) { |e| eval "_ = #{e.split[1]}" }
20
- end
21
- end