wielder_of_anor 0.2.2 → 0.3.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.
- 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
|