wielder_of_anor 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wielder_of_anor.rb +71 -71
- data/lib/wielder_of_anor/version.rb +2 -2
- data/wielder_of_anor.gemspec +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 67aeb5b09bfba58a5a26a768a35d35cb9bae1cd6
|
4
|
+
data.tar.gz: 6808e6fa94ec66058aceacbbae676c4f0a1e46a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e2e49996bf345071b50f14226d38b80b50c996817afc35ad1b23969c142c35a9e60de09ab9f94d0609a12876ee9118b862a0ed3ad85f7c59dc9d7555d7133548
|
7
|
+
data.tar.gz: b65fa2f77f4f67e7a61f3beecbda5a0c1e90dc54c16754ded3739eddf69265981bafcdad1b3757df7f9f396a5a7960907d6843d56bb58bd75e4a9bd755a68ed1
|
data/lib/wielder_of_anor.rb
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
require 'shellwords'
|
2
2
|
require 'yaml'
|
3
3
|
require 'rainbow'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
require_relative 'wielder_of_anor/version'
|
4
7
|
|
5
8
|
module WielderOfAnor
|
6
9
|
class WielderOfAnor
|
10
|
+
include WielderOfAnorVersion
|
11
|
+
|
7
12
|
def initialize
|
8
13
|
set_app_directory
|
9
14
|
|
@@ -24,8 +29,9 @@ module WielderOfAnor
|
|
24
29
|
##############################################################################
|
25
30
|
|
26
31
|
def prepare(commit_message, force_commit)
|
27
|
-
|
28
|
-
|
32
|
+
# If there's just one, it's the current version. Don't run if the current config is present.
|
33
|
+
restore_settings if Dir.glob("#{@app_directory.chomp("/wielder_of_anor-#{VERSION}")}/wielder_of_anor*").length > 1 &&
|
34
|
+
!(File.exists?("#{@app_directory}/lib/config.yaml"))
|
29
35
|
first_run unless File.exists?("#{@app_directory}/lib/config.yaml")
|
30
36
|
|
31
37
|
config = YAML.load_file("#{@app_directory}/lib/config.yaml")
|
@@ -41,8 +47,7 @@ module WielderOfAnor
|
|
41
47
|
git_diff
|
42
48
|
|
43
49
|
@files_changed_file = File.open(@files_changed_file_location, "r")
|
44
|
-
|
45
|
-
get_forbidden_words(config['forbidden_words_file_location'])
|
50
|
+
@forbidden_words = config['forbidden_words']
|
46
51
|
end
|
47
52
|
|
48
53
|
def help
|
@@ -72,20 +77,18 @@ module WielderOfAnor
|
|
72
77
|
set_app_directory
|
73
78
|
config = YAML.load_file("#{@app_directory}/lib/config.yaml")
|
74
79
|
|
75
|
-
unless config
|
80
|
+
unless config && config['forbidden_words']
|
76
81
|
lines_pretty_print Rainbow('You have yet to set your forbidden words! Please run the app with the parameter '\
|
77
82
|
'\'config\' to set up your configurations and forbidden words.').red
|
78
83
|
|
79
84
|
abort
|
80
85
|
end
|
81
86
|
|
82
|
-
get_forbidden_words(config['forbidden_words_file_location'])
|
83
|
-
|
84
87
|
lines_pretty_print Rainbow('Your forbidden words are:').yellow
|
85
88
|
|
86
89
|
single_space
|
87
90
|
|
88
|
-
|
91
|
+
config['forbidden_words'].each do |word|
|
89
92
|
lines_pretty_print Rainbow(word).yellow
|
90
93
|
end
|
91
94
|
|
@@ -94,51 +97,58 @@ module WielderOfAnor
|
|
94
97
|
abort
|
95
98
|
end
|
96
99
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
lines_pretty_print Rainbow('
|
101
|
-
'does not currently check your input for validity.**').red
|
100
|
+
# Attempt to restore settings from previous version.
|
101
|
+
def restore_settings
|
102
|
+
lines_pretty_print 'I see that I\'ve been recently updated.'
|
103
|
+
lines_pretty_print Rainbow('Would you like to restore the settings from the previous installation?').yellow
|
102
104
|
|
103
|
-
|
105
|
+
answered = false
|
104
106
|
|
105
|
-
|
107
|
+
until answered
|
108
|
+
answer = STDIN.gets.strip!
|
106
109
|
|
107
|
-
|
110
|
+
single_space
|
108
111
|
|
109
|
-
|
112
|
+
if answer == 'yes' || answer == 'y' || answer == 'no' || answer == 'n'
|
113
|
+
answered = true
|
114
|
+
else
|
115
|
+
lines_pretty_print Rainbow('Please input either \'yes\' or \'no\'.').yellow
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
return if answer == 'no' || answer == 'n'
|
120
|
+
|
121
|
+
lines_pretty_print 'One moment, please.'
|
110
122
|
|
111
123
|
single_space
|
112
124
|
|
113
|
-
|
125
|
+
all_gems = Dir.glob("#{@app_directory.chomp("/wielder_of_anor-#{VERSION}")}/wielder_of_anor*")
|
126
|
+
|
127
|
+
# glob orders things in the array alphabetically, so the second-to-last one in the array is the
|
128
|
+
# most recent version that is not the current version.
|
129
|
+
previous_config_file = "#{all_gems[-2]}/lib/config.yaml"
|
130
|
+
FileUtils.copy_file(previous_config_file, "#{@app_directory}/lib/config.yaml")
|
131
|
+
|
132
|
+
lines_pretty_print 'Done! Please run me again when you\'re ready.'
|
114
133
|
|
115
|
-
|
134
|
+
abort
|
116
135
|
end
|
117
136
|
|
118
|
-
def
|
119
|
-
|
137
|
+
def first_run
|
138
|
+
lines_pretty_print 'Thanks for downloading Wielder of Anor! Let\'s run through the '\
|
139
|
+
'initial setup!'
|
140
|
+
|
141
|
+
STDIN.gets
|
120
142
|
|
121
|
-
|
122
|
-
'export the results to a file (so that it\'s only checking the files '\
|
123
|
-
'you have actually changed and not your entire code base!). Where '\
|
124
|
-
'would you like that file to be located?'
|
125
|
-
lines_pretty_print Rainbow('(Just hit enter to accept the default, which is'\
|
126
|
-
" #{@app_directory}/lib/files_changed.)").yellow
|
127
|
-
files_changed_file_location = STDIN.gets.strip!
|
128
|
-
files_changed_file_location = "#{@app_directory}/lib/files_changed" if files_changed_file_location == ''
|
143
|
+
files_changed_file_location = "#{@app_directory}/lib/files_changed"
|
129
144
|
|
130
|
-
|
131
|
-
end
|
145
|
+
commit_for_user = set_commit_for_user
|
132
146
|
|
133
|
-
|
134
|
-
lines_pretty_print 'Your \'forbidden words\' are stored in a file. Where would like that'\
|
135
|
-
' file to be located?'
|
136
|
-
lines_pretty_print Rainbow('(Just hit enter to accept the default, which is'\
|
137
|
-
" #{@app_directory}/lib/forbidden_words.)").yellow
|
138
|
-
forbidden_words_file_location = STDIN.gets.strip!
|
139
|
-
forbidden_words_file_location = "#{@app_directory}/lib/forbidden_words" if forbidden_words_file_location == ""
|
147
|
+
single_space
|
140
148
|
|
141
|
-
|
149
|
+
forbidden_words = set_forbidden_words
|
150
|
+
|
151
|
+
set_configs(files_changed_file_location, forbidden_words, commit_for_user)
|
142
152
|
end
|
143
153
|
|
144
154
|
def set_commit_for_user
|
@@ -157,25 +167,30 @@ module WielderOfAnor
|
|
157
167
|
commit_for_user
|
158
168
|
end
|
159
169
|
|
160
|
-
def set_configs(files_changed_file_location,
|
170
|
+
def set_configs(files_changed_file_location, forbidden_words, commit_for_user)
|
161
171
|
config = {}
|
162
172
|
config['files_changed_file_location'] = files_changed_file_location
|
163
|
-
config['forbidden_words_file_location'] = forbidden_words_file_location
|
164
173
|
|
165
174
|
if commit_for_user == 'yes' || commit_for_user == 'y'
|
166
175
|
config['commit_for_user'] = true
|
167
|
-
|
176
|
+
else
|
168
177
|
config['commit_for_user'] = false
|
169
178
|
end
|
170
179
|
|
180
|
+
config['forbidden_words'] = forbidden_words
|
181
|
+
|
171
182
|
file = File.open("#{@app_directory}/lib/config.yaml", 'w')
|
172
183
|
YAML.dump(config, file)
|
173
184
|
file.close
|
185
|
+
|
186
|
+
lines_pretty_print 'And with that, we\'re done! Feel free to run Wielder of Anor again if'\
|
187
|
+
' you\'d like to check your code now!'
|
188
|
+
|
189
|
+
abort
|
174
190
|
end
|
175
191
|
|
176
|
-
def set_forbidden_words
|
177
|
-
|
178
|
-
forbidden_words_count = 0
|
192
|
+
def set_forbidden_words
|
193
|
+
forbidden_words = []
|
179
194
|
|
180
195
|
done = false
|
181
196
|
|
@@ -185,48 +200,32 @@ module WielderOfAnor
|
|
185
200
|
|
186
201
|
until done do
|
187
202
|
lines_pretty_print Rainbow('Enter a forbidden word and hit enter. If you are done entering '\
|
188
|
-
'forbidden words, type \'x211\' and hit enter instead.').yellow unless
|
203
|
+
'forbidden words, type \'x211\' and hit enter instead.').yellow unless forbidden_words.count > 0
|
189
204
|
|
190
205
|
lines_pretty_print Rainbow('Added! Enter another forbidden word and hit enter. If you are done '\
|
191
|
-
'entering forbidden words, type \'x211\' and hit enter instead.').yellow unless
|
206
|
+
'entering forbidden words, type \'x211\' and hit enter instead.').yellow unless forbidden_words.count == 0
|
192
207
|
word = STDIN.gets.strip!
|
208
|
+
|
193
209
|
single_space
|
194
210
|
|
195
211
|
if word == 'x211'
|
196
212
|
done = true
|
197
213
|
else
|
198
|
-
|
199
|
-
forbidden_words_count += 1
|
214
|
+
forbidden_words << word
|
200
215
|
end
|
201
216
|
end
|
202
217
|
|
203
|
-
|
204
|
-
|
205
|
-
lines_pretty_print 'And with that, we\'re done! Feel free to run Wielder of Anor again if'\
|
206
|
-
' you\'d like to check your code now!'
|
207
|
-
|
208
|
-
abort
|
218
|
+
forbidden_words
|
209
219
|
end
|
210
220
|
|
211
221
|
def git_diff
|
212
222
|
bash("git diff HEAD --name-only --staged > #{@files_changed_file_location}")
|
213
223
|
end
|
214
224
|
|
215
|
-
def get_forbidden_words(file_location)
|
216
|
-
forbidden_words_file = File.open(file_location)
|
217
|
-
|
218
|
-
forbidden_words_file.each_line do |line|
|
219
|
-
@forbidden_words << line.strip
|
220
|
-
end
|
221
|
-
|
222
|
-
forbidden_words_file.close
|
223
|
-
end
|
224
|
-
|
225
225
|
def add_forbidden_word(word)
|
226
226
|
set_app_directory
|
227
|
-
|
228
|
-
|
229
|
-
get_forbidden_words(config['forbidden_words_file_location'])
|
227
|
+
config_yaml = YAML.load_file("#{@app_directory}/lib/config.yaml")
|
228
|
+
config_file = File.open("#{@app_directory}/lib/config.yaml", 'w')
|
230
229
|
|
231
230
|
if word.nil?
|
232
231
|
lines_pretty_print Rainbow('Please submit your word as a second parameter.').red
|
@@ -234,14 +233,15 @@ module WielderOfAnor
|
|
234
233
|
abort
|
235
234
|
end
|
236
235
|
|
237
|
-
if
|
236
|
+
if config_yaml['forbidden_words'].include?(word)
|
238
237
|
lines_pretty_print Rainbow("''#{word}'' is already a forbidden word!").red
|
239
238
|
|
240
239
|
abort
|
241
240
|
end
|
242
241
|
|
243
|
-
|
244
|
-
|
242
|
+
config_yaml['forbidden_words'] << word
|
243
|
+
|
244
|
+
YAML.dump(config_yaml, config_file)
|
245
245
|
|
246
246
|
lines_pretty_print 'Added!'
|
247
247
|
|
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "0.
|
1
|
+
module WielderOfAnorVersion
|
2
|
+
VERSION = "0.3.0"
|
3
3
|
end
|
data/wielder_of_anor.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'wielder_of_anor/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'wielder_of_anor'
|
8
|
-
spec.version =
|
8
|
+
spec.version = WielderOfAnorVersion::VERSION
|
9
9
|
spec.authors = ['Chris Sellek']
|
10
10
|
spec.email = ['iamsellek@gmail.com']
|
11
11
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wielder_of_anor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Sellek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|