Skip to content

Commit 83dd640

Browse files
committed
feat(block): build env branch with block
1 parent 182c261 commit 83dd640

3 files changed

Lines changed: 120 additions & 4 deletions

File tree

lib/env_branch.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
require 'env_branch/version'
33

44
module EnvBranch
5-
def self.new
6-
Base.new
5+
def self.new(&block)
6+
Base.new(&block)
77
end
88
end

lib/env_branch/base.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@ module EnvBranch
22
class Base
33
attr_reader :branch_name
44

5-
def initialize
6-
@branch_name = fetch_branch_name
5+
def initialize(&block)
6+
@branch_name =
7+
if block_given?
8+
block.call || fetch_branch_name
9+
else
10+
fetch_branch_name
11+
end
712
end
813

914
# travis-ci.org:

test/test_own_ci.rb

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,117 @@ def self.shutdown
2525
end
2626
end
2727
end
28+
sub_test_case 'with block' do
29+
test '#branch?' do
30+
assert do
31+
EnvBranch.new do
32+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
33+
ENV['USER_DEFINED_BRANCH']
34+
end
35+
end.branch? == false
36+
end
37+
end
38+
test '#branch_name' do
39+
assert do
40+
EnvBranch.new do
41+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
42+
ENV['USER_DEFINED_BRANCH']
43+
end
44+
end.branch_name.nil?
45+
end
46+
end
47+
end
48+
end
49+
50+
sub_test_case 'own ci' do
51+
branch_name = 'your-branch'
52+
setup do
53+
ENV['USER_DEFINED_BRANCH'] = branch_name
54+
end
55+
teardown do
56+
ENV.delete 'USER_DEFINED_BRANCH'
57+
end
58+
59+
sub_test_case 'with block' do
60+
test '#branch?' do
61+
assert do
62+
EnvBranch.new do
63+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
64+
ENV['USER_DEFINED_BRANCH']
65+
end
66+
end.branch? == true
67+
end
68+
end
69+
test '#branch_name' do
70+
assert do
71+
EnvBranch.new do
72+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
73+
ENV['USER_DEFINED_BRANCH']
74+
end
75+
end.branch_name == branch_name
76+
end
77+
end
78+
end
79+
80+
sub_test_case 'superior user definition' do
81+
env_branch = 'env-branch'
82+
setup do
83+
ENV['TRAVIS_BRANCH'] = env_branch
84+
end
85+
teardown do
86+
ENV.delete 'TRAVIS_BRANCH'
87+
end
88+
test '#branch?' do
89+
assert do
90+
EnvBranch.new do
91+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
92+
ENV['USER_DEFINED_BRANCH']
93+
end
94+
end.branch? == true
95+
end
96+
end
97+
test '#branch_name' do
98+
assert do
99+
EnvBranch.new do
100+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
101+
ENV['USER_DEFINED_BRANCH']
102+
end
103+
end.branch_name == branch_name
104+
end
105+
end
106+
end
107+
108+
sub_test_case 'complex case with travis-ci' do
109+
branch_name = 'your-branch'
110+
setup do
111+
ENV['TRAVIS_BRANCH'] = branch_name
112+
end
113+
114+
teardown do
115+
ENV.delete 'TRAVIS_BRANCH'
116+
end
117+
118+
sub_test_case 'with block' do
119+
test '#branch?' do
120+
assert do
121+
EnvBranch.new do
122+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
123+
ENV['USER_DEFINED_BRANCH']
124+
end
125+
end.branch? == true
126+
end
127+
end
128+
test '#pull_request_id' do
129+
assert do
130+
EnvBranch.new do
131+
if ENV['USER_DEFINED_BRANCH'] && !ENV['USER_DEFINED_BRANCH'].empty?
132+
ENV['USER_DEFINED_BRANCH']
133+
end
134+
end.branch_name == branch_name
135+
end
136+
end
137+
end
138+
end
28139
end
29140
end
30141
end

0 commit comments

Comments
 (0)