tokenr 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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