appraisal 2.0.2 → 2.1.0
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 +4 -4
- data/lib/appraisal/appraisal.rb +2 -2
- data/lib/appraisal/bundler_dsl.rb +11 -4
- data/lib/appraisal/gemfile.rb +2 -1
- data/lib/appraisal/source.rb +30 -0
- data/lib/appraisal/version.rb +1 -1
- data/spec/acceptance/appraisals_file_bundler_dsl_compatibility_spec.rb +14 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3b0fc3ea3d75b4caacecc601a02f5cc3dbe9aad9
|
4
|
+
data.tar.gz: 12d540aa5afe3fe1a12813e21dbccbf65e3c2b9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb0850ae7207e6f668668dcfdd0debb6c06b38989ca7bf557530a0e40ecb71aca98404d9d469106b60f2f5469833a40a49743acb96690fb31a492df51f1115b5
|
7
|
+
data.tar.gz: 6ec513b116b30e95f775df2e5f88d06a5eafad736e922cbd5db3c0f6b2703b655750e9417f700d73cc34f95e30a3c9bd04e55cfd9b9dfe2579fcccd3c73f864a
|
data/lib/appraisal/appraisal.rb
CHANGED
@@ -6,7 +6,7 @@ module Appraisal
|
|
6
6
|
attr_reader :dependencies
|
7
7
|
|
8
8
|
PARTS = %w(source ruby_version git_sources path_sources dependencies groups
|
9
|
-
platforms gemspec)
|
9
|
+
platforms source_blocks gemspec)
|
10
10
|
|
11
11
|
def initialize
|
12
12
|
@sources = []
|
@@ -17,6 +17,7 @@ module Appraisal
|
|
17
17
|
@platforms = OrderedHash.new
|
18
18
|
@git_sources = OrderedHash.new
|
19
19
|
@path_sources = OrderedHash.new
|
20
|
+
@source_blocks = OrderedHash.new
|
20
21
|
end
|
21
22
|
|
22
23
|
def run(&block)
|
@@ -39,8 +40,13 @@ module Appraisal
|
|
39
40
|
|
40
41
|
alias_method :platform, :platforms
|
41
42
|
|
42
|
-
def source(source)
|
43
|
-
|
43
|
+
def source(source, &block)
|
44
|
+
if block_given?
|
45
|
+
@source_blocks[source] ||= Source.new(source)
|
46
|
+
@source_blocks[source].run(&block)
|
47
|
+
else
|
48
|
+
@sources << source
|
49
|
+
end
|
44
50
|
end
|
45
51
|
|
46
52
|
def ruby(ruby_version)
|
@@ -103,7 +109,8 @@ module Appraisal
|
|
103
109
|
METHODS
|
104
110
|
end
|
105
111
|
|
106
|
-
[:git_sources, :path_sources, :platforms, :groups].
|
112
|
+
[:git_sources, :path_sources, :platforms, :groups, :source_blocks].
|
113
|
+
each do |method_name|
|
107
114
|
class_eval <<-METHODS, __FILE__, __LINE__
|
108
115
|
private
|
109
116
|
|
data/lib/appraisal/gemfile.rb
CHANGED
@@ -3,9 +3,10 @@ require "appraisal/bundler_dsl"
|
|
3
3
|
module Appraisal
|
4
4
|
autoload :Gemspec, "appraisal/gemspec"
|
5
5
|
autoload :GitSource, "appraisal/git_source"
|
6
|
-
autoload :PathSource, "appraisal/path_source"
|
7
6
|
autoload :Group, "appraisal/group"
|
7
|
+
autoload :PathSource, "appraisal/path_source"
|
8
8
|
autoload :Platform, "appraisal/platform"
|
9
|
+
autoload :Source, "appraisal/source"
|
9
10
|
|
10
11
|
# Load bundler Gemfiles and merge dependencies
|
11
12
|
class Gemfile < BundlerDSL
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "appraisal/bundler_dsl"
|
2
|
+
require "appraisal/utils"
|
3
|
+
|
4
|
+
module Appraisal
|
5
|
+
class Source < BundlerDSL
|
6
|
+
def initialize(source)
|
7
|
+
super()
|
8
|
+
@source = source
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
formatted_output indent(super)
|
13
|
+
end
|
14
|
+
|
15
|
+
# :nodoc:
|
16
|
+
def for_dup
|
17
|
+
formatted_output indent(super)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def formatted_output(output_dependencies)
|
23
|
+
<<-OUTPUT.strip
|
24
|
+
source #{@source.inspect} do
|
25
|
+
#{output_dependencies}
|
26
|
+
end
|
27
|
+
OUTPUT
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/appraisal/version.rb
CHANGED
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe 'Appraisals file Bundler DSL compatibility' do
|
4
4
|
it 'supports all Bundler DSL in Appraisals file' do
|
5
|
-
build_gems %w(bagel orange_juice milk waffle coffee ham)
|
5
|
+
build_gems %w(bagel orange_juice milk waffle coffee ham sausage pancake)
|
6
6
|
build_git_gem 'egg'
|
7
7
|
|
8
8
|
build_gemfile <<-Gemfile
|
@@ -31,6 +31,10 @@ describe 'Appraisals file Bundler DSL compatibility' do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
source "https://other-rubygems.org" do
|
35
|
+
gem "sausage"
|
36
|
+
end
|
37
|
+
|
34
38
|
gem 'appraisal', :path => #{PROJECT_ROOT.inspect}
|
35
39
|
Gemfile
|
36
40
|
|
@@ -61,6 +65,10 @@ describe 'Appraisals file Bundler DSL compatibility' do
|
|
61
65
|
gem 'yoghurt'
|
62
66
|
end
|
63
67
|
|
68
|
+
source "https://other-rubygems.org" do
|
69
|
+
gem "pancake"
|
70
|
+
end
|
71
|
+
|
64
72
|
gemspec
|
65
73
|
end
|
66
74
|
Appraisals
|
@@ -108,6 +116,11 @@ describe 'Appraisals file Bundler DSL compatibility' do
|
|
108
116
|
end
|
109
117
|
end
|
110
118
|
|
119
|
+
source "https://other-rubygems.org" do
|
120
|
+
gem "sausage"
|
121
|
+
gem "pancake"
|
122
|
+
end
|
123
|
+
|
111
124
|
gemspec :path => "../"
|
112
125
|
Gemfile
|
113
126
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appraisal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Ferris
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/appraisal/ordered_hash.rb
|
118
118
|
- lib/appraisal/path_source.rb
|
119
119
|
- lib/appraisal/platform.rb
|
120
|
+
- lib/appraisal/source.rb
|
120
121
|
- lib/appraisal/task.rb
|
121
122
|
- lib/appraisal/travis_ci_helper.rb
|
122
123
|
- lib/appraisal/utils.rb
|