tokenr 0.0.3 → 0.0.4
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/LICENSE.txt +0 -0
- data/lib/tokenr/support/logging.rb +0 -0
- data/lib/tokenr/support/terminal.rb +0 -0
- data/lib/tokenr/tokens.rb +76 -73
- data/lib/tokenr/tokens_helpers.rb +0 -0
- data/lib/tokenr/tokens_writer.rb +47 -47
- data/lib/tokenr.rb +0 -0
- metadata +27 -72
data/LICENSE.txt
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/lib/tokenr/tokens.rb
CHANGED
@@ -1,73 +1,76 @@
|
|
1
|
-
require 'terminal'
|
2
|
-
require 'tokens_helpers'
|
3
|
-
|
4
|
-
class Tokens
|
5
|
-
|
6
|
-
def initialize(tokens_pattern='*.master.{config,tt}', globals_file='./globals.
|
7
|
-
@globals_file = globals_file
|
8
|
-
@tokens_pattern = tokens_pattern
|
9
|
-
@writer = writer
|
10
|
-
@globals = {}
|
11
|
-
end
|
12
|
-
|
13
|
-
def replace(path, default_environment='local')
|
14
|
-
puts 'Tokenising'.cyan
|
15
|
-
puts '############'.cyan
|
16
|
-
|
17
|
-
find_files_in(path).each do |file|
|
18
|
-
@environments = {}
|
19
|
-
|
20
|
-
read_tokens_for_file(file)
|
21
|
-
save_current_environments
|
22
|
-
|
23
|
-
read_tokens(@globals_file)
|
24
|
-
remove_global_only_environments
|
25
|
-
|
26
|
-
if !@environments.has_key?(default_environment)
|
27
|
-
raise InvalidEnvironment, "Environment #{default_environment} is not recognised. Possible environments are #{@environments.keys.join(', ')}".red
|
28
|
-
end
|
29
|
-
|
30
|
-
@environments.each_pair { |environment, values| @writer.write_for(environment, file, values, @globals, true) }
|
31
|
-
@writer.write_for('', file, @environments[default_environment], @globals, false)
|
32
|
-
puts
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def find_files_in(path)
|
39
|
-
files = Dir.glob("#{path}/**/#{@tokens_pattern}", File::FNM_CASEFOLD)
|
40
|
-
puts "#{files.length} config(s) found for tokenising", ''
|
41
|
-
files
|
42
|
-
end
|
43
|
-
|
44
|
-
def read_tokens_for_file(file)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
end
|
1
|
+
require 'terminal'
|
2
|
+
require 'tokens_helpers'
|
3
|
+
|
4
|
+
class Tokens
|
5
|
+
|
6
|
+
def initialize(tokens_pattern='*.master.{config,tt}', globals_file='./globals.rb', writer=TokensWriter.new)
|
7
|
+
@globals_file = globals_file
|
8
|
+
@tokens_pattern = tokens_pattern
|
9
|
+
@writer = writer
|
10
|
+
@globals = {}
|
11
|
+
end
|
12
|
+
|
13
|
+
def replace(path, default_environment='local')
|
14
|
+
puts 'Tokenising'.cyan
|
15
|
+
puts '############'.cyan
|
16
|
+
|
17
|
+
find_files_in(path).each do |file|
|
18
|
+
@environments = {}
|
19
|
+
|
20
|
+
read_tokens_for_file(file)
|
21
|
+
save_current_environments
|
22
|
+
|
23
|
+
read_tokens(@globals_file)
|
24
|
+
remove_global_only_environments
|
25
|
+
|
26
|
+
if !@environments.has_key?(default_environment)
|
27
|
+
raise InvalidEnvironment, "Environment #{default_environment} is not recognised. Possible environments are #{@environments.keys.join(', ')}".red
|
28
|
+
end
|
29
|
+
|
30
|
+
@environments.each_pair { |environment, values| @writer.write_for(environment, file, values, @globals, true) }
|
31
|
+
@writer.write_for('', file, @environments[default_environment], @globals, false)
|
32
|
+
puts
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def find_files_in(path)
|
39
|
+
files = Dir.glob("#{path}/**/#{@tokens_pattern}", File::FNM_CASEFOLD)
|
40
|
+
puts "#{files.length} config(s) found for tokenising", ''
|
41
|
+
files
|
42
|
+
end
|
43
|
+
|
44
|
+
def read_tokens_for_file(file)
|
45
|
+
file.gsub!('.master.', '.tokens.')
|
46
|
+
file.gsub!(File.extname(file), '.rb')
|
47
|
+
|
48
|
+
read_tokens(file.gsub('.master.', '.tokens.'))
|
49
|
+
puts "Tokensing - #{file}", "Environments - #{@environments.keys.join(', ')}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def read_tokens(path)
|
53
|
+
if(File.exist?(path))
|
54
|
+
begin
|
55
|
+
eval(File.read(path))
|
56
|
+
rescue SyntaxError => exception
|
57
|
+
raise exception, "Syntax error in the tokens file #{path} - #{exception.message}".red
|
58
|
+
end
|
59
|
+
else
|
60
|
+
puts "No tokens file found at #{path}".yellow
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def save_current_environments
|
65
|
+
@temp_environments = @environments.dup
|
66
|
+
end
|
67
|
+
|
68
|
+
def remove_global_only_environments
|
69
|
+
@environments.each_key do |key|
|
70
|
+
@environments.delete(key) if !@temp_environments.has_key?(key)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
class InvalidEnvironment < StandardError
|
76
|
+
end
|
File without changes
|
data/lib/tokenr/tokens_writer.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
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 { |key, value| text.gsub!(/\$#{key}\$/, value.to_s) }
|
28
|
-
text
|
29
|
-
end
|
30
|
-
|
31
|
-
def check_if_tokens_are_used(text, tokens)
|
32
|
-
tokens.each { |key, value| print_unused_token_warning(key) if !text.include?("$#{key}$") }
|
33
|
-
end
|
34
|
-
|
35
|
-
def print_unused_token_warning(key)
|
36
|
-
puts "$#{key}$ token is not used for '#{@environment}'".yellow
|
37
|
-
end
|
38
|
-
|
39
|
-
def write_to_file(file, text)
|
40
|
-
File.open(file, 'w') { |f| f.write(text) }
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
class UnReplacedTokenException < StandardError
|
46
|
-
end
|
47
|
-
|
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 { |key, value| text.gsub!(/\$#{key}\$/, value.to_s) }
|
28
|
+
text
|
29
|
+
end
|
30
|
+
|
31
|
+
def check_if_tokens_are_used(text, tokens)
|
32
|
+
tokens.each { |key, value| print_unused_token_warning(key) if !text.include?("$#{key}$") }
|
33
|
+
end
|
34
|
+
|
35
|
+
def print_unused_token_warning(key)
|
36
|
+
puts "$#{key}$ token is not used for '#{@environment}'".yellow
|
37
|
+
end
|
38
|
+
|
39
|
+
def write_to_file(file, text)
|
40
|
+
File.open(file, 'w') { |f| f.write(text) }
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
class UnReplacedTokenException < StandardError
|
46
|
+
end
|
47
|
+
|
data/lib/tokenr.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tokenr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
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-
|
12
|
+
date: 2012-07-11 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirement: &23665940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,15 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.9.2.2
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.9.2.2
|
24
|
+
version_requirements: *23665940
|
30
25
|
- !ruby/object:Gem::Dependency
|
31
26
|
name: term-ansicolor
|
32
|
-
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirement: &23665360 !ruby/object:Gem::Requirement
|
33
28
|
none: false
|
34
29
|
requirements:
|
35
30
|
- - ! '>='
|
@@ -37,15 +32,10 @@ dependencies:
|
|
37
32
|
version: 1.0.7
|
38
33
|
type: :runtime
|
39
34
|
prerelease: false
|
40
|
-
version_requirements:
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ! '>='
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 1.0.7
|
35
|
+
version_requirements: *23665360
|
46
36
|
- !ruby/object:Gem::Dependency
|
47
37
|
name: logger
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirement: &23664860 !ruby/object:Gem::Requirement
|
49
39
|
none: false
|
50
40
|
requirements:
|
51
41
|
- - ! '>='
|
@@ -53,95 +43,65 @@ dependencies:
|
|
53
43
|
version: 1.2.8
|
54
44
|
type: :runtime
|
55
45
|
prerelease: false
|
56
|
-
version_requirements:
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.2.8
|
46
|
+
version_requirements: *23664860
|
62
47
|
- !ruby/object:Gem::Dependency
|
63
48
|
name: rspec
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirement: &23662140 !ruby/object:Gem::Requirement
|
65
50
|
none: false
|
66
51
|
requirements:
|
67
|
-
- -
|
52
|
+
- - =
|
68
53
|
- !ruby/object:Gem::Version
|
69
54
|
version: 2.9.0
|
70
55
|
type: :development
|
71
56
|
prerelease: false
|
72
|
-
version_requirements:
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - '='
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
version: 2.9.0
|
57
|
+
version_requirements: *23662140
|
78
58
|
- !ruby/object:Gem::Dependency
|
79
59
|
name: mocha
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirement: &23661640 !ruby/object:Gem::Requirement
|
81
61
|
none: false
|
82
62
|
requirements:
|
83
|
-
- -
|
63
|
+
- - =
|
84
64
|
- !ruby/object:Gem::Version
|
85
65
|
version: 0.10.5
|
86
66
|
type: :development
|
87
67
|
prerelease: false
|
88
|
-
version_requirements:
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - '='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.10.5
|
68
|
+
version_requirements: *23661640
|
94
69
|
- !ruby/object:Gem::Dependency
|
95
70
|
name: rdoc
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirement: &23661100 !ruby/object:Gem::Requirement
|
97
72
|
none: false
|
98
73
|
requirements:
|
99
|
-
- -
|
74
|
+
- - =
|
100
75
|
- !ruby/object:Gem::Version
|
101
76
|
version: '3.12'
|
102
77
|
type: :development
|
103
78
|
prerelease: false
|
104
|
-
version_requirements:
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - '='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '3.12'
|
79
|
+
version_requirements: *23661100
|
110
80
|
- !ruby/object:Gem::Dependency
|
111
81
|
name: bundler
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
+
requirement: &23660400 !ruby/object:Gem::Requirement
|
113
83
|
none: false
|
114
84
|
requirements:
|
115
|
-
- -
|
85
|
+
- - =
|
116
86
|
- !ruby/object:Gem::Version
|
117
87
|
version: 1.1.3
|
118
88
|
type: :development
|
119
89
|
prerelease: false
|
120
|
-
version_requirements:
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - '='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 1.1.3
|
90
|
+
version_requirements: *23660400
|
126
91
|
- !ruby/object:Gem::Dependency
|
127
92
|
name: jeweler
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirement: &23659880 !ruby/object:Gem::Requirement
|
129
94
|
none: false
|
130
95
|
requirements:
|
131
|
-
- -
|
96
|
+
- - =
|
132
97
|
- !ruby/object:Gem::Version
|
133
98
|
version: 1.8.3
|
134
99
|
type: :development
|
135
100
|
prerelease: false
|
136
|
-
version_requirements:
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - '='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: 1.8.3
|
101
|
+
version_requirements: *23659880
|
142
102
|
- !ruby/object:Gem::Dependency
|
143
103
|
name: simplecov
|
144
|
-
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirement: &23659340 !ruby/object:Gem::Requirement
|
145
105
|
none: false
|
146
106
|
requirements:
|
147
107
|
- - ! '>='
|
@@ -149,12 +109,7 @@ dependencies:
|
|
149
109
|
version: '0'
|
150
110
|
type: :development
|
151
111
|
prerelease: false
|
152
|
-
version_requirements:
|
153
|
-
none: false
|
154
|
-
requirements:
|
155
|
-
- - ! '>='
|
156
|
-
- !ruby/object:Gem::Version
|
157
|
-
version: '0'
|
112
|
+
version_requirements: *23659340
|
158
113
|
description: Find and tokenise files!
|
159
114
|
email: robertbeal@gmail.com
|
160
115
|
executables: []
|
@@ -184,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
139
|
version: '0'
|
185
140
|
segments:
|
186
141
|
- 0
|
187
|
-
hash:
|
142
|
+
hash: 2241134511515759119
|
188
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
144
|
none: false
|
190
145
|
requirements:
|
@@ -193,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
148
|
version: '0'
|
194
149
|
requirements: []
|
195
150
|
rubyforge_project:
|
196
|
-
rubygems_version: 1.8.
|
151
|
+
rubygems_version: 1.8.17
|
197
152
|
signing_key:
|
198
153
|
specification_version: 3
|
199
154
|
summary: Build tasks for .Net projects
|