penchant 0.2.1 → 0.2.2
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.
- data/README.md +28 -7
- data/features/ruby_gemfile.feature +23 -0
- data/features/step_definitions/given/i_am_on_the_linux_platform.rb +3 -0
- data/features/support/env.rb +13 -0
- data/lib/penchant/gemfile.rb +16 -0
- data/lib/penchant/version.rb +1 -1
- metadata +5 -8
data/README.md
CHANGED
@@ -27,6 +27,11 @@ Yeah, it's a `Gemfile` with some extras:
|
|
27
27
|
source :rubygems
|
28
28
|
|
29
29
|
gem 'rails', '3.2.3'
|
30
|
+
# expands to:
|
31
|
+
#
|
32
|
+
# gem 'rake'
|
33
|
+
# gem 'nokogiri'
|
34
|
+
# gem 'rack-rewrite'
|
30
35
|
gems 'rake', 'nokogiri', 'rack-rewrite'
|
31
36
|
|
32
37
|
no_deployment do
|
@@ -36,12 +41,30 @@ no_deployment do
|
|
36
41
|
dev_gems = %w{flowerbox guard-flowerbox}
|
37
42
|
|
38
43
|
env :local do
|
44
|
+
# expands to:
|
45
|
+
#
|
46
|
+
# gem 'flowerbox', :path => '../flowerbox'
|
47
|
+
# gem 'guard-flowerbox', :path => '../guard-flowerbox'
|
39
48
|
gems dev_gems, :path => '../%s'
|
40
49
|
end
|
41
50
|
|
42
51
|
env :remote do
|
52
|
+
# expands to:
|
53
|
+
#
|
54
|
+
# gem 'flowerbox', :git => 'git://github.com/johnbintz/flowerbox.git'
|
55
|
+
# gem 'guard-flowerbox', :git => 'git://github.com/johnbintz/guard-flowerbox.git'
|
43
56
|
gems dev_gems, :git => 'git://github.com/johnbintz/%s.git'
|
44
57
|
end
|
58
|
+
|
59
|
+
# only expanded on Mac OS X
|
60
|
+
os :darwin do
|
61
|
+
gem 'rb-fsevent'
|
62
|
+
end
|
63
|
+
|
64
|
+
# only expanded on Linux
|
65
|
+
os :linux do
|
66
|
+
gems 'rb-inotify', 'ffi'
|
67
|
+
end
|
45
68
|
end
|
46
69
|
end
|
47
70
|
```
|
@@ -60,13 +83,11 @@ frameworks:
|
|
60
83
|
|
61
84
|
``` ruby
|
62
85
|
no_deployment do
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
gem 'rb-fsevent'
|
69
|
-
when /linux/
|
86
|
+
os :darwin do
|
87
|
+
gems 'growl_notify', 'growl', 'rb-fsevent'
|
88
|
+
end
|
89
|
+
|
90
|
+
os :linux do
|
70
91
|
gem 'libnotify', :require => nil
|
71
92
|
end
|
72
93
|
|
@@ -129,3 +129,26 @@ Feature: Gemfiles
|
|
129
129
|
gem "one", {:path=>"../one"}
|
130
130
|
"""
|
131
131
|
|
132
|
+
@wip @mocha
|
133
|
+
Scenario: OS-specific blocks
|
134
|
+
Given I have the file "Gemfile.penchant" with the content:
|
135
|
+
"""
|
136
|
+
os :darwin do
|
137
|
+
gem 'one', :path => '../%s'
|
138
|
+
end
|
139
|
+
"""
|
140
|
+
And I am on the "darwin" platform
|
141
|
+
When I rebuild the Gemfile for "local" mode
|
142
|
+
Then the file "Gemfile" should have the following content:
|
143
|
+
"""
|
144
|
+
# generated by penchant, environment: local
|
145
|
+
gem "one", {:path=>"../one"}
|
146
|
+
"""
|
147
|
+
Given I am on the "linux" platform
|
148
|
+
When I rebuild the Gemfile for "local" mode
|
149
|
+
Then the file "Gemfile" should have the following content:
|
150
|
+
"""
|
151
|
+
# generated by penchant, environment: local
|
152
|
+
|
153
|
+
"""
|
154
|
+
|
data/features/support/env.rb
CHANGED
@@ -1,14 +1,27 @@
|
|
1
1
|
require 'fakefs/safe'
|
2
2
|
require 'penchant'
|
3
|
+
require 'mocha'
|
4
|
+
|
5
|
+
World(Mocha::Standalone)
|
3
6
|
|
4
7
|
Before('@fakefs') do
|
5
8
|
FakeFS.activate!
|
6
9
|
end
|
7
10
|
|
11
|
+
Before('@mocha') do
|
12
|
+
mocha_setup
|
13
|
+
end
|
14
|
+
|
8
15
|
After do
|
9
16
|
FakeFS::FileSystem.clear
|
10
17
|
FakeFS.deactivate!
|
11
18
|
|
19
|
+
begin
|
20
|
+
mocha_verify
|
21
|
+
ensure
|
22
|
+
mocha_teardown
|
23
|
+
end
|
24
|
+
|
12
25
|
FileUtils.rm_rf 'tmp'
|
13
26
|
end
|
14
27
|
|
data/lib/penchant/gemfile.rb
CHANGED
@@ -112,6 +112,10 @@ module Penchant
|
|
112
112
|
yield if !is_deployment
|
113
113
|
end
|
114
114
|
|
115
|
+
def os(*args)
|
116
|
+
yield if args.include?(current_os)
|
117
|
+
end
|
118
|
+
|
115
119
|
protected
|
116
120
|
def args_to_string(args)
|
117
121
|
args.inspect[1..-2]
|
@@ -144,6 +148,18 @@ module Penchant
|
|
144
148
|
}.sort
|
145
149
|
]
|
146
150
|
end
|
151
|
+
|
152
|
+
def current_os
|
153
|
+
require 'rbconfig'
|
154
|
+
case host_os = RbConfig::CONFIG['host_os']
|
155
|
+
when /darwin/
|
156
|
+
:darwin
|
157
|
+
when /linux/
|
158
|
+
:linux
|
159
|
+
else
|
160
|
+
host_os[%r{^[a-z]+}, 1].to_sym
|
161
|
+
end
|
162
|
+
end
|
147
163
|
end
|
148
164
|
|
149
165
|
class ERBFile < FileProcessor
|
data/lib/penchant/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: penchant
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-06 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Things I do for my Rails projects to get up to speed in new environments
|
15
15
|
fast
|
@@ -30,6 +30,7 @@ files:
|
|
30
30
|
- features/cli.feature
|
31
31
|
- features/gemfile.feature
|
32
32
|
- features/ruby_gemfile.feature
|
33
|
+
- features/step_definitions/given/i_am_on_the_linux_platform.rb
|
33
34
|
- features/step_definitions/given/i_have_the_file_with_content.rb
|
34
35
|
- features/step_definitions/then/the_file_gemfile_should_have_the_following_stripped_content.rb
|
35
36
|
- features/step_definitions/then/the_file_should_have_content.rb
|
@@ -73,18 +74,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
73
74
|
- - ! '>='
|
74
75
|
- !ruby/object:Gem::Version
|
75
76
|
version: '0'
|
76
|
-
segments:
|
77
|
-
- 0
|
78
|
-
hash: -4406262957412417452
|
79
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
78
|
none: false
|
81
79
|
requirements:
|
82
80
|
- - ! '>='
|
83
81
|
- !ruby/object:Gem::Version
|
84
82
|
version: '0'
|
85
|
-
segments:
|
86
|
-
- 0
|
87
|
-
hash: -4406262957412417452
|
88
83
|
requirements: []
|
89
84
|
rubyforge_project: penchant
|
90
85
|
rubygems_version: 1.8.23
|
@@ -96,6 +91,7 @@ test_files:
|
|
96
91
|
- features/cli.feature
|
97
92
|
- features/gemfile.feature
|
98
93
|
- features/ruby_gemfile.feature
|
94
|
+
- features/step_definitions/given/i_am_on_the_linux_platform.rb
|
99
95
|
- features/step_definitions/given/i_have_the_file_with_content.rb
|
100
96
|
- features/step_definitions/then/the_file_gemfile_should_have_the_following_stripped_content.rb
|
101
97
|
- features/step_definitions/then/the_file_should_have_content.rb
|
@@ -110,3 +106,4 @@ test_files:
|
|
110
106
|
- spec/lib/penchant/gemfile_spec.rb
|
111
107
|
- spec/lib/penchant_spec.rb
|
112
108
|
- spec/spec_helper.rb
|
109
|
+
has_rdoc:
|