mini_portile 0.7.0.rc2 → 0.7.0.rc3

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: 3a24bcc1e3b18b3338a9595b520062973a78dafb
4
- data.tar.gz: 265a02102a47fecdf0b5fd96536bfe67878e9ba8
3
+ metadata.gz: b543ca78884927062b44e38c56d01e69b89bcb79
4
+ data.tar.gz: 366e7c9a6610c2ad0d7df9d506cf039596ce4c4d
5
5
  SHA512:
6
- metadata.gz: b8ece67b3e3e972ffea18f98b2ceebc1f4a2b3b1158fd30fb7d22aac3cd41578f1c00ecd877f325359e8e5062c5c6cf262203c91c5374f43ba455235e2310826
7
- data.tar.gz: f59593838f8fb5d24c526a8e911aee3b854ecbfcc483bc61481ae72de3c2ba03b01bb77e186f47b7ef81c7af807e179a14529c3bb85ccee6b7ca86a0fa7a53b1
6
+ metadata.gz: c5572f248c68e6139cbed61da20f3c680465eb1ce1e1f5936316f6d56a538e7d26aad85770d1dc37ad72fbe6fe5795349925bbb069e8b676e212710ed0276b95
7
+ data.tar.gz: e99707c84d0149e132b27d5b17e1fee04cd281aa78c6a0ccc0bc643998fa4cba75ef750a7f95506e2e829b15751165d98d1fd4a12f2a5fab6d958eebed0fe87e
@@ -1,3 +1,14 @@
1
+ ### 0.7.0.rc3 / 2015-08-24
2
+
3
+ * Restore backwards-compatible behavior with respect to escaped strings.
4
+
5
+
6
+ ### 0.7.0.rc2 / 2015-08-24
7
+
8
+ * Restore support for Ruby 1.9.2
9
+ * Add Ruby 2.0.0 and Ruby 2.1.x to Appveyor suite
10
+
11
+
1
12
  ### 0.7.0.rc1 / 2015-08-24
2
13
 
3
14
  Many thanks to @larskanis, @knu, and @kirikak2, who all contributed
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # MiniPortile
2
2
 
3
3
  [![travis status](https://travis-ci.org/flavorjones/mini_portile.svg?branch=master)](https://travis-ci.org/flavorjones/mini_portile?branch=master)
4
- [![appveyor status](https://ci.appveyor.com/api/projects/status/rjji6y9uteaw4oua/branch/master?svg=true)](https://ci.appveyor.com/project/flavorjones/mini-portile/branch/master)
4
+ [![appveyor status](https://ci.appveyor.com/api/projects/status/509669xx1qlhqqab/branch/master?svg=true)](https://ci.appveyor.com/project/flavorjones/mini-portile/branch/master)
5
5
 
6
6
  * Documentation: http://www.rubydoc.info/github/flavorjones/mini_portile
7
7
  * Source Code: https://github.com/flavorjones/mini_portile
@@ -15,10 +15,10 @@ test_script:
15
15
 
16
16
  environment:
17
17
  matrix:
18
- - ruby_version: "193"
19
- - ruby_version: "200"
20
- - ruby_version: "200-x64"
21
- - ruby_version: "21"
22
- - ruby_version: "21-x64"
23
- - ruby_version: "22"
24
18
  - ruby_version: "22-x64"
19
+ - ruby_version: "22"
20
+ - ruby_version: "21-x64"
21
+ - ruby_version: "21"
22
+ - ruby_version: "200-x64"
23
+ - ruby_version: "200"
24
+ - ruby_version: "193"
@@ -28,11 +28,11 @@ class Net::HTTP
28
28
  end
29
29
 
30
30
  class MiniPortile
31
- attr_reader :name, :version, :original_host
31
+ attr_reader :name, :version, :original_host, :unescape_commands
32
32
  attr_writer :configure_options
33
33
  attr_accessor :host, :files, :patch_files, :target, :logger
34
34
 
35
- def initialize(name, version)
35
+ def initialize(name, version, options={})
36
36
  @name = name
37
37
  @version = version
38
38
  @target = 'ports'
@@ -42,6 +42,8 @@ class MiniPortile
42
42
  @logger = STDOUT
43
43
 
44
44
  @original_host = @host = detect_host
45
+
46
+ @unescape_commands = options.fetch(:unescape_commands) { true }
45
47
  end
46
48
 
47
49
  def download
@@ -333,6 +335,8 @@ private
333
335
  message "Running '#{action}' for #{@name} #{@version}... "
334
336
  end
335
337
 
338
+ command = unescape_options_from command
339
+
336
340
  if Process.respond_to?(:spawn) && ! RbConfig.respond_to?(:java)
337
341
  args = [command].flatten + [{[:out, :err]=>[log_out, "a"]}]
338
342
  pid = spawn(*args)
@@ -491,4 +495,16 @@ private
491
495
  m = ENV['MAKE'] || ENV['make'] || 'make'
492
496
  return m.dup
493
497
  end
498
+
499
+ def unescape_options_from command
500
+ return command unless unescape_commands
501
+ [command].flatten.map do |opt|
502
+ if opt =~ /\\/
503
+ warn "NOTICE: MiniPortile: escaping shell characters is not necessary in MiniPortile 0.7.0+ (\"#{opt}\"). Set the `:unescape_commands` option to false if you actually want to preserve escapes."
504
+ opt.gsub!(/\\/, "")
505
+ else
506
+ opt
507
+ end
508
+ end
509
+ end
494
510
  end
@@ -1,3 +1,3 @@
1
1
  class MiniPortile
2
- VERSION = "0.7.0.rc2"
2
+ VERSION = "0.7.0.rc3"
3
3
  end
@@ -0,0 +1,31 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'mini_portile'
3
+
4
+ class TestUnescapingCommands < TestCase
5
+ class << self
6
+ def startup
7
+ FileUtils.rm_rf "tmp" # remove any previous test files
8
+ end
9
+ end
10
+
11
+ def echo_helper recipe, string
12
+ FileUtils.mkdir_p File.join(recipe.send(:tmp_path), "workdir")
13
+ recipe.send :execute, "echo", ["echo", "-en", string]
14
+ File.read Dir.glob("tmp/**/echo.log").first
15
+ end
16
+
17
+ def test_setting_unescape_to_true_unescapes_escaped_strings
18
+ recipe = MiniPortile.new("foo", "1.0", :unescape_commands => true)
19
+ assert_equal "thistthat", echo_helper(recipe, 'this\tthat')
20
+ end
21
+
22
+ def test_setting_unescape_to_false_does_not_touch_unescaped_strings
23
+ recipe = MiniPortile.new("foo", "1.0", :unescape_commands => false)
24
+ assert_equal "this\tthat", echo_helper(recipe, 'this\tthat')
25
+ end
26
+
27
+ def test_default_unescape_setting_is_true
28
+ recipe = MiniPortile.new("foo", "1.0")
29
+ assert_true recipe.unescape_commands
30
+ end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mini_portile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0.rc2
4
+ version: 0.7.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis Lavena
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-24 00:00:00.000000000 Z
12
+ date: 2015-09-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -96,6 +96,7 @@ files:
96
96
  - test/test_cook.rb
97
97
  - test/test_digest.rb
98
98
  - test/test_proxy.rb
99
+ - test/test_unescaping_commands.rb
99
100
  homepage: http://github.com/flavorjones/mini_portile
100
101
  licenses:
101
102
  - MIT
@@ -116,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
117
  version: 1.3.1
117
118
  requirements: []
118
119
  rubyforge_project:
119
- rubygems_version: 2.4.6
120
+ rubygems_version: 2.4.8
120
121
  signing_key:
121
122
  specification_version: 4
122
123
  summary: Simplistic port-like solution for developers
@@ -130,3 +131,4 @@ test_files:
130
131
  - test/test_cook.rb
131
132
  - test/test_digest.rb
132
133
  - test/test_proxy.rb
134
+ - test/test_unescaping_commands.rb