rakeoff 0.0.9 → 0.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.
- data/lib/rakeoff/tasks/tokens_task.rb +3 -3
- metadata +35 -26
- data/lib/rakeoff/tokens.rb +0 -71
- data/lib/rakeoff/tokens_writer.rb +0 -50
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'task'
|
2
|
-
require '
|
2
|
+
require 'tokenr'
|
3
3
|
|
4
4
|
class TokensTask
|
5
5
|
def initialize(name, *args)
|
6
6
|
body = proc {
|
7
|
-
task = Tokens.new(SESSION.
|
8
|
-
task.
|
7
|
+
task = Tokens.new(SESSION.tokens_pattern, SESSION.globals_file)
|
8
|
+
task.replace(SESSION.working_dir, SESSION.environment)
|
9
9
|
}
|
10
10
|
|
11
11
|
Task.new(name, *args, &body)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rakeoff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-15 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &28559700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.9.2.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *28559700
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: term-ansicolor
|
27
|
-
requirement: &
|
27
|
+
requirement: &28559040 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.0.7
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *28559040
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: logger
|
38
|
-
requirement: &
|
38
|
+
requirement: &28558420 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,21 @@ dependencies:
|
|
43
43
|
version: 1.2.8
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *28558420
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: tokenr
|
49
|
+
requirement: &28557800 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *28557800
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: rspec
|
49
|
-
requirement: &
|
60
|
+
requirement: &28557180 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - =
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: 2.9.0
|
55
66
|
type: :development
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *28557180
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: mocha
|
60
|
-
requirement: &
|
71
|
+
requirement: &28556580 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - =
|
@@ -65,43 +76,43 @@ dependencies:
|
|
65
76
|
version: 0.10.5
|
66
77
|
type: :development
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *28556580
|
69
80
|
- !ruby/object:Gem::Dependency
|
70
81
|
name: rdoc
|
71
|
-
requirement: &
|
82
|
+
requirement: &28555980 !ruby/object:Gem::Requirement
|
72
83
|
none: false
|
73
84
|
requirements:
|
74
|
-
- -
|
85
|
+
- - ! '>='
|
75
86
|
- !ruby/object:Gem::Version
|
76
87
|
version: '3.12'
|
77
88
|
type: :development
|
78
89
|
prerelease: false
|
79
|
-
version_requirements: *
|
90
|
+
version_requirements: *28555980
|
80
91
|
- !ruby/object:Gem::Dependency
|
81
92
|
name: bundler
|
82
|
-
requirement: &
|
93
|
+
requirement: &28538040 !ruby/object:Gem::Requirement
|
83
94
|
none: false
|
84
95
|
requirements:
|
85
|
-
- -
|
96
|
+
- - ! '>='
|
86
97
|
- !ruby/object:Gem::Version
|
87
98
|
version: 1.1.3
|
88
99
|
type: :development
|
89
100
|
prerelease: false
|
90
|
-
version_requirements: *
|
101
|
+
version_requirements: *28538040
|
91
102
|
- !ruby/object:Gem::Dependency
|
92
103
|
name: jeweler
|
93
|
-
requirement: &
|
104
|
+
requirement: &28537300 !ruby/object:Gem::Requirement
|
94
105
|
none: false
|
95
106
|
requirements:
|
96
|
-
- -
|
107
|
+
- - ! '>='
|
97
108
|
- !ruby/object:Gem::Version
|
98
109
|
version: 1.8.3
|
99
110
|
type: :development
|
100
111
|
prerelease: false
|
101
|
-
version_requirements: *
|
112
|
+
version_requirements: *28537300
|
102
113
|
- !ruby/object:Gem::Dependency
|
103
114
|
name: simplecov
|
104
|
-
requirement: &
|
115
|
+
requirement: &28536680 !ruby/object:Gem::Requirement
|
105
116
|
none: false
|
106
117
|
requirements:
|
107
118
|
- - ! '>='
|
@@ -109,7 +120,7 @@ dependencies:
|
|
109
120
|
version: '0'
|
110
121
|
type: :development
|
111
122
|
prerelease: false
|
112
|
-
version_requirements: *
|
123
|
+
version_requirements: *28536680
|
113
124
|
description: A common set of build tasks typically used when creating projects in
|
114
125
|
.Net
|
115
126
|
email: robertbeal@gmail.com
|
@@ -138,8 +149,6 @@ files:
|
|
138
149
|
- lib/rakeoff/tasks/tests_task.rb
|
139
150
|
- lib/rakeoff/tasks/tokens_task.rb
|
140
151
|
- lib/rakeoff/tests.rb
|
141
|
-
- lib/rakeoff/tokens.rb
|
142
|
-
- lib/rakeoff/tokens_writer.rb
|
143
152
|
- lib/rakeoff/tools.rb
|
144
153
|
- LICENSE.txt
|
145
154
|
- README.rdoc
|
@@ -158,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
167
|
version: '0'
|
159
168
|
segments:
|
160
169
|
- 0
|
161
|
-
hash:
|
170
|
+
hash: -710103881567156738
|
162
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
172
|
none: false
|
164
173
|
requirements:
|
data/lib/rakeoff/tokens.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'terminal'
|
2
|
-
|
3
|
-
class Tokens
|
4
|
-
|
5
|
-
def initialize(globals_file, tokens_pattern, writer)
|
6
|
-
@globals_file = globals_file
|
7
|
-
@tokens_pattern = tokens_pattern
|
8
|
-
@writer = writer
|
9
|
-
@globals = {}
|
10
|
-
end
|
11
|
-
|
12
|
-
def find_and_replace(path, default)
|
13
|
-
print_heading 'Tokenising'
|
14
|
-
|
15
|
-
read_tokens_file(@globals_file)
|
16
|
-
|
17
|
-
@files = Dir.glob("#{path}/**/#{@tokens_pattern}", File::FNM_CASEFOLD)
|
18
|
-
puts "#{@files.length} config(s) found for tokenising"
|
19
|
-
puts ''
|
20
|
-
|
21
|
-
@files.each do |file|
|
22
|
-
@environments = {}
|
23
|
-
read_tokens_file(file.gsub('.master.', '.tokens.'))
|
24
|
-
puts "Tokensing - #{file}"
|
25
|
-
puts "Environments - #{@environments.keys.join(', ')}"
|
26
|
-
|
27
|
-
if !@environments.has_key?(default)
|
28
|
-
raise InvalidEnvironment, "Environment #{default} is not recognised. Possible environments are #{@environments.keys.join(', ')}".red
|
29
|
-
end
|
30
|
-
|
31
|
-
@environments.each_pair do |environment, values|
|
32
|
-
@writer.write_for(environment, file, values, @globals, true)
|
33
|
-
end
|
34
|
-
|
35
|
-
@writer.write_for('', file, @environments[default], @globals, false)
|
36
|
-
puts ''
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
|
42
|
-
def read_tokens_file(path)
|
43
|
-
if(File.exist?(path))
|
44
|
-
begin
|
45
|
-
eval(File.read(path))
|
46
|
-
rescue SyntaxError => exception
|
47
|
-
raise exception, "Syntax error in the tokens file #{path} - #{exception.message}".red
|
48
|
-
end
|
49
|
-
else
|
50
|
-
puts "No tokens file found at #{path}".yellow
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
class InvalidEnvironment < StandardError
|
57
|
-
end
|
58
|
-
|
59
|
-
def keys_for(environment, values)
|
60
|
-
environment = environment.to_s.downcase
|
61
|
-
|
62
|
-
if @environments.has_key?(environment)
|
63
|
-
@environments[environment].merge!(values)
|
64
|
-
else
|
65
|
-
@environments[environment] = values
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def share_with(envs, values)
|
70
|
-
envs.each { |env| keys_for(env, values) }
|
71
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
|
2
|
-
class TokensWriter
|
3
|
-
|
4
|
-
def write_for(environment, master_file, tokens, globals, check_usage)
|
5
|
-
@master_file = master_file
|
6
|
-
@environment = environment
|
7
|
-
|
8
|
-
output_file = @master_file.gsub('.master', environment.empty? ? '' : ".#{environment}")
|
9
|
-
text = File.read(@master_file)
|
10
|
-
|
11
|
-
check_if_tokens_are_used(text, tokens) if check_usage
|
12
|
-
text = replace_tokens(text, tokens)
|
13
|
-
text = replace_tokens(text, globals)
|
14
|
-
|
15
|
-
write_to_file(output_file, text)
|
16
|
-
|
17
|
-
matches = text.scan(/(\$[\w\d\-_\.]+\$)/)
|
18
|
-
|
19
|
-
if (matches.any?)
|
20
|
-
raise UnReplacedTokenException, "There are untokenised value(s): #{matches.join(', ').strip} still in #{@output_file}!".red
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def replace_tokens(text, tokens)
|
27
|
-
tokens.each_pair do |key, value|
|
28
|
-
text.gsub!(/\$#{key}\$/, value.to_s)
|
29
|
-
end
|
30
|
-
|
31
|
-
text
|
32
|
-
end
|
33
|
-
|
34
|
-
def check_if_tokens_are_used(text, tokens)
|
35
|
-
tokens.each { |key, value| print_unused_token_warning(key) if !text.include?("$#{key}$") }
|
36
|
-
end
|
37
|
-
|
38
|
-
def print_unused_token_warning(key)
|
39
|
-
puts "$#{key}$ token is not used for '#{@environment}'".yellow
|
40
|
-
end
|
41
|
-
|
42
|
-
def write_to_file(file, text)
|
43
|
-
File.open(file, 'w') { |f| f.write(text) }
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
class UnReplacedTokenException < StandardError
|
49
|
-
end
|
50
|
-
|