locabulary 0.6.2 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.started-issues +1 -0
- data/.travis.yml +3 -0
- data/LICENSE +201 -14
- data/data/administrative_units.json +7 -0
- data/data/affiliation.json +26 -20
- data/data/award_category.json +27 -21
- data/data/citation_style.json +17 -13
- data/data/collaborator.json +402 -301
- data/data/college.json +32 -25
- data/data/copyright.json +127 -37
- data/data/degree.json +74 -52
- data/data/organization.json +130 -97
- data/data/program_name.json +146 -94
- data/data/resource_consulted.json +211 -155
- data/data/spec.json +8 -8
- data/data/underclass_level.json +27 -21
- data/data/work_patent_strategy.json +34 -27
- data/data/work_publication_strategy.json +22 -17
- data/lib/locabulary.rb +15 -1
- data/lib/locabulary/item.rb +1 -1
- data/lib/locabulary/services.rb +4 -2
- data/lib/locabulary/services/active_items_for_service.rb +1 -1
- data/lib/locabulary/services/all_items_for_service.rb +56 -0
- data/lib/locabulary/version.rb +1 -1
- data/locabulary.gemspec +10 -9
- data/script/close-issue +22 -11
- data/script/sort_json.rb +25 -0
- data/script/start-issue +79 -27
- metadata +54 -38
data/script/start-issue
CHANGED
@@ -39,27 +39,6 @@ REPOSITORY_PATH = ENV.fetch('REPOSITORY_PATH') { File.expand_path(File.join(File
|
|
39
39
|
REMOTE = ENV.fetch('REMOTE', 'origin')
|
40
40
|
FROM_BRANCH = ENV.fetch('FROM_BRANCH', 'master')
|
41
41
|
|
42
|
-
issue_title_fetcher = lambda do
|
43
|
-
begin
|
44
|
-
remote_url = `cd #{REPOSITORY_PATH} && git config --get remote.#{REMOTE}.url`.strip
|
45
|
-
match = remote_url.match(/(\w+)\/(\w+)(?:\.git)?\Z/)
|
46
|
-
if match
|
47
|
-
require 'open-uri'
|
48
|
-
require 'json'
|
49
|
-
owner, repository = match.captures
|
50
|
-
document = open("https://api.github.com/repos/#{owner}/#{repository}/issues/#{ISSUE_NUMBER}.json").read
|
51
|
-
json = JSON.parse(document)
|
52
|
-
json.fetch('title').gsub(/\W+/, '-')
|
53
|
-
else
|
54
|
-
'issue-on-github'
|
55
|
-
end
|
56
|
-
rescue
|
57
|
-
'issue-on-github'
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
# TODO: Retrieve the dasherized issue from Github's API
|
62
|
-
ISSUE_TITLE = ENV.fetch('ISSUE_TITLE', issue_title_fetcher)
|
63
42
|
STARTED_ISSUES_FILE = ENV.fetch('STARTED_ISSUES_FILE', '.started-issues')
|
64
43
|
|
65
44
|
#*******************************************************************************
|
@@ -77,7 +56,6 @@ if ARGV.grep(/-h/i).size == 1
|
|
77
56
|
$stdout.puts "* Create a new branch for the given issue number"
|
78
57
|
$stdout.puts "* Touch and append the issue number to a tracking file"
|
79
58
|
$stdout.puts "* Write a rudimentary commit message"
|
80
|
-
$stdout.puts "* Push that commit up to #{REMOTE}"
|
81
59
|
$stdout.puts ""
|
82
60
|
$stdout.puts "Note: There are steps to insure you have a clean working directory."
|
83
61
|
$stdout.puts "Note: If you have spaces in your configuration all bets are off!"
|
@@ -103,17 +81,81 @@ end
|
|
103
81
|
|
104
82
|
# Guard that I have an issue number
|
105
83
|
|
84
|
+
issue_source = nil
|
106
85
|
ISSUE_NUMBER = ARGV.shift
|
107
86
|
|
108
|
-
|
109
|
-
|
87
|
+
if ISSUE_NUMBER =~ /^\w+-\d+$/
|
88
|
+
issue_source = :jira
|
89
|
+
elsif ISSUE_NUMBER =~ /^\d+$/
|
90
|
+
issue_source = :github
|
91
|
+
else
|
92
|
+
$stderr.puts "Expected first parameter to be a JIRA or GitHub issue number.\n\n"
|
110
93
|
$stderr.puts "See help for details on specifying an issue number.\n\n"
|
111
94
|
$stderr.puts "$ ./#{File.basename(__FILE__)} -h"
|
112
95
|
exit!(1)
|
113
96
|
end
|
114
97
|
|
98
|
+
unless system("which jira")
|
99
|
+
$stderr.puts "Expected to find `jira' in your path."
|
100
|
+
$stderr.puts "Run the following:"
|
101
|
+
$stderr.puts "\tbrew tap ndlib/dlt\n\tbrew install go-jira\n\n"
|
102
|
+
exit!(9)
|
103
|
+
end
|
104
|
+
|
105
|
+
unless File.exist?(File.join(ENV['HOME'], '.jira.d/config.yml'))
|
106
|
+
$stderr.puts "Expected ~/.jira.d/config.yml to exist"
|
107
|
+
$stderr.puts "Run the following:"
|
108
|
+
$stderr.puts "\tmkdir ~/.jira.d\n\techo 'endpoint: https://jira.library.nd.edu' > ~/.jira.d/config.yml"
|
109
|
+
exit!(10)
|
110
|
+
end
|
111
|
+
|
115
112
|
# Capture the issue_title
|
116
|
-
|
113
|
+
ISSUE_TITLE = ENV.fetch('ISSUE_TITLE', nil)
|
114
|
+
if ISSUE_TITLE.nil?
|
115
|
+
case issue_source
|
116
|
+
when :github
|
117
|
+
issue_title = begin
|
118
|
+
remote_url = `cd #{REPOSITORY_PATH} && git config --get remote.#{REMOTE}.url`.strip
|
119
|
+
match = remote_url.match(/(\w+)\/(\w+)(?:\.git)?\Z/)
|
120
|
+
if match
|
121
|
+
require 'open-uri'
|
122
|
+
require 'json'
|
123
|
+
owner, repository = match.captures
|
124
|
+
document = open("https://api.github.com/repos/#{owner}/#{repository}/issues/#{ISSUE_NUMBER}.json").read
|
125
|
+
json = JSON.parse(document)
|
126
|
+
json.fetch('title').gsub(/\W+/, '-')
|
127
|
+
else
|
128
|
+
'issue-on-github'
|
129
|
+
end
|
130
|
+
rescue
|
131
|
+
'issue-on-github'
|
132
|
+
end
|
133
|
+
when :jira
|
134
|
+
issue_title = begin
|
135
|
+
require 'yaml'
|
136
|
+
# TODO(dbrower): sometimes this will block waiting for the user to
|
137
|
+
# enter a password. Is better way to handle the situation?
|
138
|
+
document = `jira view #{ISSUE_NUMBER}`
|
139
|
+
# sometimes there is garbage before the "issue:" line.
|
140
|
+
document.sub!(/\A[^i]*/, '')
|
141
|
+
issue = YAML.load(document)
|
142
|
+
title = issue["summary"]
|
143
|
+
if title == "<no value>"
|
144
|
+
$stdout.puts "Problem finding issue #{ISSUE_NUMBER}"
|
145
|
+
exit!(5)
|
146
|
+
end
|
147
|
+
title
|
148
|
+
rescue
|
149
|
+
$stdout.puts "Problem finding issue #{ISSUE_NUMBER}"
|
150
|
+
exit!(6)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
else
|
154
|
+
issue_title = ISSUE_TITLE
|
155
|
+
end
|
156
|
+
|
157
|
+
# Ensure that we don't have ridiculously long branch names
|
158
|
+
issue_title = issue_title[0..30]
|
117
159
|
|
118
160
|
# Guard that directories exist
|
119
161
|
[:REPOSITORY_PATH].each do |key|
|
@@ -154,8 +196,10 @@ begin
|
|
154
196
|
File.open(path_to_commit_message, 'w+') do |file|
|
155
197
|
file.puts "Claiming issue #{ISSUE_NUMBER}"
|
156
198
|
file.puts ""
|
157
|
-
|
158
|
-
|
199
|
+
if issue_source == :github
|
200
|
+
file.puts "relates to ##{ISSUE_NUMBER}"
|
201
|
+
file.puts ""
|
202
|
+
end
|
159
203
|
|
160
204
|
message = "$ ./script/#{File.basename(__FILE__)} #{ISSUE_NUMBER}"
|
161
205
|
CONFIG_KEYS.each_with_object(message) do |key, mem|
|
@@ -172,3 +216,11 @@ begin
|
|
172
216
|
ensure
|
173
217
|
File.unlink(path_to_commit_message) rescue true
|
174
218
|
end
|
219
|
+
|
220
|
+
# If the commit was successful, assign the issue to us and move into "In Progress"
|
221
|
+
if issue_source == :jira
|
222
|
+
system("jira take #{ISSUE_NUMBER}")
|
223
|
+
exit!(5) unless $?.success?
|
224
|
+
system("jira --noedit transition \"In Progress\" #{ISSUE_NUMBER}")
|
225
|
+
exit!(5) unless $?.success?
|
226
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: locabulary
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Friesen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -154,30 +154,30 @@ dependencies:
|
|
154
154
|
name: rspec
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- -
|
157
|
+
- - '='
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 3.5.0
|
160
160
|
type: :development
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- -
|
164
|
+
- - '='
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: 3.5.0
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: rspec-its
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- -
|
171
|
+
- - '='
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
173
|
+
version: 1.2.0
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
|
-
- -
|
178
|
+
- - '='
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
180
|
+
version: 1.2.0
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: rake
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -196,100 +196,114 @@ dependencies:
|
|
196
196
|
name: google_drive
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- -
|
199
|
+
- - '='
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 2.1.2
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- -
|
206
|
+
- - '='
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 2.1.2
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: highline
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
212
212
|
requirements:
|
213
|
-
- -
|
213
|
+
- - '='
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
215
|
+
version: 1.7.8
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
|
-
- -
|
220
|
+
- - '='
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
222
|
+
version: 1.7.8
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: rubocop
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
226
226
|
requirements:
|
227
|
-
- - "
|
227
|
+
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
229
|
+
version: 0.46.0
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- - "
|
234
|
+
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
236
|
+
version: 0.46.0
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: simplecov
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
|
-
- -
|
241
|
+
- - '='
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
243
|
+
version: 0.12.0
|
244
244
|
type: :development
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
|
-
- -
|
248
|
+
- - '='
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
250
|
+
version: 0.12.0
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: codeclimate-test-reporter
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
254
254
|
requirements:
|
255
|
-
- -
|
255
|
+
- - '='
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version:
|
257
|
+
version: 1.0.3
|
258
258
|
type: :development
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
|
-
- -
|
262
|
+
- - '='
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version:
|
264
|
+
version: 1.0.3
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
266
|
name: fasterer
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
|
-
- -
|
269
|
+
- - '='
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version:
|
271
|
+
version: 0.3.2
|
272
272
|
type: :development
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
|
-
- -
|
276
|
+
- - '='
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
278
|
+
version: 0.3.2
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: shoulda-matchers
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
|
-
- -
|
283
|
+
- - '='
|
284
284
|
- !ruby/object:Gem::Version
|
285
|
-
version:
|
285
|
+
version: 3.1.1
|
286
286
|
type: :development
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
|
-
- -
|
290
|
+
- - '='
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version:
|
292
|
+
version: 3.1.1
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: nokogiri
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - "~>"
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: 1.6.8.1
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - "~>"
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: 1.6.8.1
|
293
307
|
description: An extraction of limited localized vocabulary for Sipity and CurateND.
|
294
308
|
email:
|
295
309
|
- jeremy.n.friesen@gmail.com
|
@@ -340,6 +354,7 @@ files:
|
|
340
354
|
- lib/locabulary/services.rb
|
341
355
|
- lib/locabulary/services/active_hierarchical_roots_service.rb
|
342
356
|
- lib/locabulary/services/active_items_for_service.rb
|
357
|
+
- lib/locabulary/services/all_items_for_service.rb
|
343
358
|
- lib/locabulary/services/build_ordered_hierarchical_tree_service.rb
|
344
359
|
- lib/locabulary/services/item_for_service.rb
|
345
360
|
- lib/locabulary/utility.rb
|
@@ -347,6 +362,7 @@ files:
|
|
347
362
|
- locabulary.gemspec
|
348
363
|
- script/build-multi-commit-message
|
349
364
|
- script/close-issue
|
365
|
+
- script/sort_json.rb
|
350
366
|
- script/start-issue
|
351
367
|
- script/update_data_files.sh
|
352
368
|
homepage: https://github.com/ndlib/locabulary
|