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 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.config', 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
- read_tokens(file.gsub('.master.', '.tokens.'))
46
- puts "Tokensing - #{file}", "Environments - #{@environments.keys.join(', ')}"
47
- end
48
-
49
- def read_tokens(path)
50
- if(File.exist?(path))
51
- begin
52
- eval(File.read(path))
53
- rescue SyntaxError => exception
54
- raise exception, "Syntax error in the tokens file #{path} - #{exception.message}".red
55
- end
56
- else
57
- puts "No tokens file found at #{path}".yellow
58
- end
59
- end
60
-
61
- def save_current_environments
62
- @temp_environments = @environments.dup
63
- end
64
-
65
- def remove_global_only_environments
66
- @environments.each_key do |key|
67
- @environments.delete(key) if !@temp_environments.has_key?(key)
68
- end
69
- end
70
- end
71
-
72
- class InvalidEnvironment < StandardError
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
@@ -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.3
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-05-14 00:00:00.000000000 Z
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: !ruby/object:Gem::Requirement
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: -4403099713646684226
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.21
151
+ rubygems_version: 1.8.17
197
152
  signing_key:
198
153
  specification_version: 3
199
154
  summary: Build tasks for .Net projects