superconductor 0.0.4 → 0.1.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.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.rspec +3 -0
  4. data/.ruby-version +1 -0
  5. data/.scss-lint.yml +21 -0
  6. data/.travis.yml +5 -0
  7. data/.yardopts +1 -0
  8. data/Cargo.lock +679 -0
  9. data/Cargo.toml +25 -0
  10. data/Gemfile +4 -0
  11. data/Guardfile +70 -0
  12. data/LICENSE.txt +21 -0
  13. data/Makefile +4 -0
  14. data/README.md +58 -0
  15. data/Rakefile +9 -36
  16. data/assets/__pm.js +424 -0
  17. data/assets/__pm.scss +261 -0
  18. data/assets/_buttons.scss +50 -0
  19. data/assets/_checkbox.scss +59 -0
  20. data/assets/_colors.scss +15 -0
  21. data/assets/_details.scss +54 -0
  22. data/assets/_pm_commits.scss +171 -0
  23. data/assets/_pm_setup.scss +7 -0
  24. data/assets/_pm_tasks.scss +280 -0
  25. data/assets/_tokens.scss +56 -0
  26. data/bin/console +14 -0
  27. data/bin/make +2 -0
  28. data/bin/rake +17 -0
  29. data/bin/release +5 -0
  30. data/bin/setup +8 -0
  31. data/bin/start +5 -0
  32. data/config.ru +10 -0
  33. data/config/properties.yml +37 -0
  34. data/extconf.rb +2 -0
  35. data/lib/superconductor.rb +35 -1
  36. data/lib/superconductor/documentation.rb +34 -0
  37. data/lib/superconductor/middleware.rb +71 -0
  38. data/lib/superconductor/version.rb +1 -1
  39. data/src/lib.rs +101 -0
  40. data/src/server.rs +176 -0
  41. data/src/state/mod.rs +5 -0
  42. data/src/state/state.rs +233 -0
  43. data/src/state/xml.rs +380 -0
  44. data/src/task.rs +129 -0
  45. data/src/view.rs +396 -0
  46. data/superconductor.gemspec +41 -0
  47. metadata +173 -116
  48. data/MIT-LICENSE +0 -20
  49. data/README.rdoc +0 -3
  50. data/app/assets/javascripts/jquery-linedtextarea.js +0 -126
  51. data/app/assets/javascripts/superconductor.js +0 -2
  52. data/app/assets/javascripts/superconductor/panel.js.coffee +0 -42
  53. data/app/assets/stylesheets/jquery-linedtextarea.css +0 -68
  54. data/app/assets/stylesheets/scaffold.css +0 -56
  55. data/app/assets/stylesheets/superconductor.css +0 -4
  56. data/app/assets/stylesheets/superconductor/panel.css.scss +0 -142
  57. data/app/controllers/file_controller.rb +0 -24
  58. data/app/helpers/superconductor/panel_helper.rb +0 -2
  59. data/app/models/superconductor.rb +0 -5
  60. data/app/models/superconductor/exception.rb +0 -0
  61. data/app/views/superconductor/_panel.html.erb +0 -130
  62. data/app/views/superconductor/_panel.js.erb +0 -0
  63. data/config/routes.rb +0 -6
  64. data/lib/superconductor/engine.rb +0 -24
  65. data/lib/tasks/superconductor_tasks.rake +0 -4
  66. data/test/dummy/README.rdoc +0 -261
  67. data/test/dummy/Rakefile +0 -7
  68. data/test/dummy/app/assets/javascripts/application.js +0 -15
  69. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  70. data/test/dummy/app/controllers/application_controller.rb +0 -3
  71. data/test/dummy/app/helpers/application_helper.rb +0 -2
  72. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  73. data/test/dummy/config.ru +0 -4
  74. data/test/dummy/config/application.rb +0 -56
  75. data/test/dummy/config/boot.rb +0 -10
  76. data/test/dummy/config/database.yml +0 -25
  77. data/test/dummy/config/environment.rb +0 -5
  78. data/test/dummy/config/environments/development.rb +0 -37
  79. data/test/dummy/config/environments/production.rb +0 -67
  80. data/test/dummy/config/environments/test.rb +0 -37
  81. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  82. data/test/dummy/config/initializers/inflections.rb +0 -15
  83. data/test/dummy/config/initializers/mime_types.rb +0 -5
  84. data/test/dummy/config/initializers/secret_token.rb +0 -7
  85. data/test/dummy/config/initializers/session_store.rb +0 -8
  86. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  87. data/test/dummy/config/locales/en.yml +0 -5
  88. data/test/dummy/config/routes.rb +0 -58
  89. data/test/dummy/public/404.html +0 -26
  90. data/test/dummy/public/422.html +0 -26
  91. data/test/dummy/public/500.html +0 -25
  92. data/test/dummy/public/favicon.ico +0 -0
  93. data/test/dummy/script/rails +0 -6
  94. data/test/integration/navigation_test.rb +0 -10
  95. data/test/superconductor_test.rb +0 -7
  96. data/test/test_helper.rb +0 -10
  97. data/test/unit/helpers/superconductor/panel_helper_test.rb +0 -4
data/src/view.rs ADDED
@@ -0,0 +1,396 @@
1
+ use std::process::Command;
2
+ use XML;
3
+
4
+ pub fn panel_xslt() -> String {
5
+ let scss = Command::new("/usr/local/bin/sassc").arg("/Users/jadencarver/dev/superconductor/assets/__pm.scss").output().unwrap();
6
+ let css = String::from_utf8(scss.stdout).unwrap();
7
+
8
+ let markup = html! {
9
+ xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" {
10
+ xsl:output method="html" indent="yes" {}
11
+
12
+ // BEGINS FORM ------------------
13
+ xsl:template match="/" {
14
+ div#__pm__panel {
15
+ form#__pm__commit method="post" name="commit" {
16
+ style type="text/css" (css)
17
+ style type="text/css" "@import url('//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.10.0/styles/agate.min.css');"
18
+ div#__pm__task {
19
+ input type="checkbox" id="__pm__commit__dragged" name="dragged" value="true" {}
20
+ input type="hidden" id="__pm__commit__task" name="task" value="{/state/task/name}" {}
21
+ xsl:if test="/state/log/commit" {
22
+ ul#__pm__commits {
23
+ xsl:apply-templates select="/state/log/commit" {}
24
+ }
25
+ hr {}
26
+ }
27
+ dl.properties {
28
+ xsl:apply-templates select="/state/properties/property" {}
29
+ }
30
+ textarea id="__pm__commit__message" tabindex="1" name="message" placeholder="Add a Comment" {
31
+ xsl:value-of select="/state/message" {}
32
+ }
33
+ div#__pm__new_commit {
34
+ ul#__pm__new_commit__actions {
35
+ li input type="submit" tabindex="5" name="new_task" value="New Task" {}
36
+ li input type="submit" tabindex="4" name="save_update" value="Save Update" {}
37
+ }
38
+ xsl:if test="/state/changes/change" {
39
+ fieldset#__pm__commit__changes.details {
40
+ legend#__pm__commit__changes_legend tabindex="2" role="button" {
41
+ xsl:if test="not(/state/changes/statistics)" {
42
+ "Include Changes"
43
+ }
44
+ span#__pm__commit__changes__statistics.token {
45
+ xsl:if test="/state/changes/statistics/files != 0" {
46
+ span {
47
+ xsl:value-of select="format-number(/state/changes/statistics/files, '#,###.##')" {}
48
+ " file"
49
+ xsl:if test="/state/changes/statistics/files != 1" {
50
+ "s"
51
+ }
52
+ }
53
+ }
54
+ xsl:if test="/state/changes/statistics/insertions != 0" {
55
+ span.token--positive {
56
+ "+"
57
+ xsl:value-of select="format-number(/state/changes/statistics/insertions, '#,###.##')" {}
58
+ }
59
+ }
60
+ xsl:if test="/state/changes/statistics/deletions != 0" {
61
+ span.token--negative {
62
+ "-"
63
+ xsl:value-of select="format-number(/state/changes/statistics/deletions, '#,###.##')" {}
64
+ }
65
+ }
66
+ }
67
+ }
68
+ ul {
69
+ xsl:apply-templates select="/state/changes/change" {}
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ xsl:choose {
76
+ xsl:when test="/state/setup" {
77
+ div.setup {
78
+ h1 "Setup Instructions"
79
+ p "Begin by entering your project name, and selecting the appropriate properties."
80
+ }
81
+ }
82
+ xsl:when test="/state/diffs/*" {
83
+ xsl:apply-templates select="/state/diffs" {}
84
+ }
85
+ xsl:otherwise {
86
+ xsl:apply-templates select="/state/tasks" {}
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ xsl:template match="/state/properties/property" {
93
+ xsl:choose {
94
+ xsl:when test="name = 'Project'" {
95
+ div.property.property--inline {
96
+ dt { label for="__pm__commit__properties--project" "Project" }
97
+ dd.input {
98
+ input type="text" id="__pm__commit__properties--project" name="property" data-name="Project" value="{/state/task/property[name[text()='Project']]/value}" {}
99
+ }
100
+ }
101
+ }
102
+ xsl:when test="name = 'Status'" {
103
+ div.property.property--inline {
104
+ dt { label for="__pm__commit__properties--status" "Status" }
105
+ dd.select tabindex="1" {
106
+ xsl:value-of select="/state/task/property[name[text()='Status']]/value" {}
107
+ select id="__pm__commit__properties--status" name="property" data-name="Status" {
108
+ option value="" {}
109
+ xsl:apply-templates "options/option" {}
110
+ }
111
+ }
112
+ }
113
+ }
114
+ xsl:when test="name = 'Developer'" {
115
+ div.property.property--inline {
116
+ dt { label for="__pm__commit__properties--developer" "Developer" }
117
+ dd.select {
118
+ input type="text" id="__pm__commit__properties--developer" value="{/state/task/property[name[text()='Developer']]/value}" {}
119
+ select name="property" data-name="Developer" {
120
+ xsl:apply-templates "options/option" {}
121
+ }
122
+ }
123
+ }
124
+ }
125
+ xsl:when test="name = 'Manager'" {
126
+ div.property.property--inline {
127
+ dt { label for="__pm__commit__properties--owner" "Manager" }
128
+ dd.select {
129
+ input type="text" id="__pm__commit__properties--manager" value="{/state/task/property[name[text()='Manager']]/value}" {}
130
+ select name="property" data-name="Manager" {
131
+ xsl:apply-templates "options/option" {}
132
+ }
133
+ }
134
+ }
135
+ }
136
+ xsl:when test="name = 'Description'" {
137
+ div.property {
138
+ dt { label for="__pm__commit__properties--description" "Description" }
139
+ dd {
140
+ textarea id="__pm__commit__properties--description" name="property" data-name="Description" {
141
+ xsl:value-of select="/state/task/property[name[text()='Description']]/value" {}
142
+ }
143
+ }
144
+ }
145
+ }
146
+ xsl:when test="name = 'Estimate'" {
147
+ div.property.property--inline {
148
+ dt { label for="__pm__commit__properties--estimate" "Estimate" }
149
+ dd.input {
150
+ input type="range" id="__pm__commit__properties--estimate" name="property" data-name="Estimate" value="{/state/task/property[name[text()='Estimate']]/value}" {}
151
+ }
152
+ }
153
+ }
154
+ xsl:otherwise {
155
+ div.property {
156
+ xsl:variable name="name" select="name/text()" {}
157
+ xsl:variable name="value" select="/state/task/property[name[text() = $name]]/value" {}
158
+ input type="hidden" name="property" data-name="{name}" value="{$value}" {}
159
+ }
160
+ }
161
+ }
162
+ }
163
+ xsl:template match="/state/properties/property/options/option" {
164
+ xsl:variable name="name" select="./parent::options/parent::property/name" {}
165
+ xsl:element name="option" {
166
+ xsl:attribute name="value" {
167
+ xsl:value-of select="." {}
168
+ }
169
+ xsl:if test="/state/task/property[name[text()=$name]]/value = ." {
170
+ xsl:attribute name="selected" "selected"
171
+ }
172
+ xsl:value-of select="." {}
173
+ }
174
+ }
175
+ xsl:template match="/state/diffs" {
176
+ div.diff {
177
+ pre {
178
+ code {
179
+ xsl:copy-of select="*" {}
180
+ }
181
+ }
182
+ }
183
+ }
184
+
185
+ // BEGINS TASKS ------------------
186
+ xsl:key name="task-status" match="/state/task|/state/tasks/task" use="property[name='Status']/value" {}
187
+
188
+ xsl:template match="/state/tasks" {
189
+ xsl:choose {
190
+ xsl:when test="filter" {
191
+ input type="hidden" name="filter" data-name="{filter/name}" data-value="{filter/value}" {}
192
+ xsl:variable name="class" {
193
+ xsl:value-of select="concat('tasks--status-', translate(filter/value, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ', 'abcdefghijklmnopqrstuvwxyz-'))" {}
194
+ }
195
+ ul class="list {$class}" {
196
+ header {
197
+ button type="submit" name="filter" {
198
+ xsl:value-of select="filter/value" {}
199
+ }
200
+ }
201
+ xsl:apply-templates select="(/state/task|./task)[property[name='Status'] and not(property[name='Status']/value='')]" {
202
+ xsl:sort select="property[name='Ordinal']/value" {}
203
+ }
204
+ }
205
+ ul.tasks--backlog.list {
206
+ header {
207
+ button type="submit" name="filter" {
208
+ "Backlog"
209
+ }
210
+ }
211
+ xsl:apply-templates select="(/state/task|./task)[not(property[name='Status']) or property[name='Status']/value='']" {
212
+ xsl:sort select="name" {}
213
+ }
214
+ }
215
+ }
216
+ xsl:otherwise {
217
+ xsl:for-each select="/state/properties/property[name='Status']/options/option" {
218
+ xsl:variable name="status" select="./text()" {}
219
+ xsl:variable name="max" {
220
+ xsl:for-each select="key('task-status', $status)/property[name='Ordinal']/value" {
221
+ xsl:sort select="." data-type="number" order="descending" {}
222
+ xsl:if test="position() = 1" {
223
+ xsl:value-of select="." {}
224
+ }
225
+ }
226
+ }
227
+ xsl:variable name="next" {
228
+ xsl:choose {
229
+ xsl:when test="not($max) or string(number($max)) = 'NaN'" { "1" }
230
+ xsl:otherwise {
231
+ xsl:value-of select="$max + 1" {}
232
+ }
233
+ }
234
+ }
235
+ xsl:variable name="class" {
236
+ xsl:value-of select="concat('tasks--status-', translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ', 'abcdefghijklmnopqrstuvwxyz-'))" {}
237
+ }
238
+ ul class="tiles {$class}" data-property-name="Status" data-property-value="{.}" {
239
+ div class="column {$class}" data-property-name="Ordinal" data-property-value="{$next}" {
240
+ header {
241
+ button type="submit" name="filter" data-name="Status" data-value="{.}" {
242
+ xsl:value-of select="." {}
243
+ }
244
+ }
245
+ xsl:for-each select="key('task-status', $status)" {
246
+ xsl:sort select="property[name='Ordinal']/value" data-type="number" {}
247
+ xsl:call-template name="task" {}
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ xsl:template match="task" name="task" {
256
+ xsl:variable name="ordinal" {
257
+ xsl:choose {
258
+ xsl:when test="property[name='Ordinal']/value != ''" {
259
+ xsl:value-of select="property[name='Ordinal']/value" {}
260
+ }
261
+ xsl:otherwise {
262
+ "1"
263
+ }
264
+ }
265
+ }
266
+ xsl:variable name="previous" {
267
+ xsl:for-each select="key('task-status', property[name='Status']/value)/property[name='Ordinal'][number(value) < $ordinal]/value" {
268
+ xsl:sort select="." data-type="number" order="descending" {}
269
+ xsl:if test="position() = 1" {
270
+ xsl:value-of select="." {}
271
+ }
272
+ }
273
+ }
274
+ xsl:variable name="next" {
275
+ xsl:choose {
276
+ xsl:when test="not($previous) or $previous = ''" {
277
+ xsl:value-of select="$ordinal div 2" {}
278
+ }
279
+ xsl:otherwise {
280
+ xsl:value-of select="$previous+(number(format-number($ordinal - $previous, '###0.0###;#')) div 2)" {}
281
+ }
282
+ }
283
+ }
284
+ xsl:variable name="class" {
285
+ xsl:value-of select="concat('tile--status-', translate(property[name='Status']/value, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ', 'abcdefghijklmnopqrstuvwxyz-'))" {}
286
+ }
287
+ li class="tile {$class}" data-property-name="Ordinal" data-property-value="{$next}" {
288
+ xsl:element name="div" {
289
+ xsl:attribute name="draggable" "true"
290
+ xsl:attribute name="tabindex" "99"
291
+ xsl:attribute name="id" {
292
+ xsl:value-of select="concat('__pm__task_', name)" {}
293
+ }
294
+ xsl:attribute name="class" {
295
+ " task "
296
+ xsl:if test="/state/task/name = name" { " selected " }
297
+ }
298
+ xsl:attribute name="data-name" {
299
+ xsl:value-of select="name" {}
300
+ }
301
+ div class="task__name" {
302
+ xsl:value-of select="name" {}
303
+ }
304
+ div.task__property--description {
305
+ xsl:copy-of select="property[name='Description']/value" {}
306
+ }
307
+ xsl:if test="property[name='Estimate']/value != ''" {
308
+ div.task__property--estimate {
309
+ xsl:copy-of select="property[name='Estimate']/value" {}
310
+ }
311
+ }
312
+ }
313
+ }
314
+ }
315
+
316
+
317
+ // BEGINS LOGS ------------------
318
+ xsl:template match="/state/log/commit" {
319
+ li {
320
+ xsl:if test="./preceding-sibling::commit[1]/user/email=user/email and ./preceding-sibling::commit[1]/timestamp - timestamp > -7200" {
321
+ xsl:attribute name="class" "continuous"
322
+ }
323
+ img src="{user/image}" alt="{user/name} <{user/email}>" {}
324
+ xsl:if test="changes" {
325
+ button.button--medium.attachments {
326
+ svg id="i-paperclip" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="20" height="20" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" {
327
+ path d="M10 9 L10 24 C10 28 13 30 16 30 19 30 22 28 22 24 L22 6 C22 3 20 2 18 2 16 2 14 3 14 6 L14 23 C14 24 15 25 16 25 17 25 18 24 18 23 L18 9" {}
328
+ }
329
+ }
330
+ }
331
+ blockquote {
332
+ a.user__name href="#" {
333
+ xsl:value-of select="user/name" {}
334
+ }
335
+ xsl:value-of select="message" {}
336
+ }
337
+ xsl:if test="task" {
338
+ dl.tasks {
339
+ xsl:apply-templates select="task[property]" {}
340
+ }
341
+ }
342
+ div {
343
+ time datetime="{localtime}" {
344
+ xsl:value-of select="localtime" {}
345
+ }
346
+ }
347
+ }
348
+ }
349
+ xsl:template match="/state/log/commit/task" {
350
+ dt { xsl:value-of select="name" {} }
351
+ dd {
352
+ ul.properties {
353
+ xsl:apply-templates select="property" {}
354
+ }
355
+ }
356
+ }
357
+ xsl:template match="/state/log/commit/task/property" {
358
+ li.token {
359
+ span.name { xsl:value-of select="name" {} }
360
+ xsl:if test="before" {
361
+ span.before.token--neutral { xsl:value-of select="before" {} }
362
+ }
363
+ span.after.token--positive { xsl:value-of select="value" {} }
364
+ }
365
+ }
366
+ xsl:template match="/state/changes/change" {
367
+ li tabindex="3" id="{concat('__pm__changes__checkbox--', @id)}" {
368
+ xsl:element name="input" {
369
+ xsl:attribute name="name" { "include" }
370
+ xsl:attribute name="id" {
371
+ xsl:value-of select="concat('__pm__changes--', @id)" {}
372
+ }
373
+ xsl:attribute name="value" {
374
+ xsl:value-of select="path" {}
375
+ }
376
+ xsl:attribute name="tabindex" "-1"
377
+ xsl:attribute name="type" "checkbox"
378
+ xsl:if test="included='true'" {
379
+ xsl:attribute name="checked" {}
380
+ }
381
+ xsl:if test="removal='true'" {
382
+ xsl:attribute name="class" { "delete" }
383
+ }
384
+ }
385
+ label for="__pm__changes--{@id}" {
386
+ xsl:value-of select="path" {}
387
+ }
388
+ button.button--tiny name="diff" value="{path}" { " +10 -10" }
389
+ }
390
+ }
391
+ }
392
+ };
393
+ format!("{}{}", XML, markup.into_string())
394
+ }
395
+
396
+
@@ -0,0 +1,41 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'superconductor/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "superconductor"
8
+ spec.version = Superconductor::VERSION
9
+ spec.authors = ["Jaden Carver"]
10
+ spec.email = ["jaden.carver@gmail.com"]
11
+
12
+ spec.summary = %q{Development Integrated Project Management}
13
+ spec.description = %q{Project Management tools that integrate into your developer workflow}
14
+ spec.homepage = "https://www.github.com/jadencarver/superconductor"
15
+ spec.license = "MIT"
16
+
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
21
+ else
22
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
23
+ end
24
+
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1.12"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+ spec.add_development_dependency "yard", "~> 0.9.2"
33
+ spec.add_development_dependency "rspec", "~> 3.0"
34
+ spec.add_development_dependency "selenium-webdriver", "~> 3.4.0"
35
+ #spec.add_development_dependency "poltergeist", "~> 1.15.0"
36
+ spec.add_development_dependency "capybara-screenshot", "~> 0.3.3"
37
+ spec.add_development_dependency "ansi", "~> 1.5.0"
38
+ spec.add_development_dependency "mini_magick", "~> 4.7.1"
39
+ spec.add_development_dependency "faker", "~> 1.7.3"
40
+ spec.extensions = Dir['extconf.rb']
41
+ end
metadata CHANGED
@@ -1,162 +1,219 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superconductor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jaden Carver
9
8
  autorequire:
10
- bindir: bin
9
+ bindir: exe
11
10
  cert_chain: []
12
- date: 2012-08-19 00:00:00.000000000 Z
11
+ date: 2017-06-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: rails
14
+ name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 3.1.0
22
- type: :runtime
19
+ version: '1.12'
20
+ type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 3.1.0
26
+ version: '1.12'
30
27
  - !ruby/object:Gem::Dependency
31
- name: jquery-rails
28
+ name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: '0'
38
- type: :runtime
33
+ version: '10.0'
34
+ type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: '0'
46
- description: Build your Ruby on Rails application from your Ruby on Rails application!
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: yard
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.9.2
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.9.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: selenium-webdriver
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 3.4.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 3.4.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: capybara-screenshot
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.3.3
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.3.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: ansi
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.5.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.5.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: mini_magick
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 4.7.1
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 4.7.1
125
+ - !ruby/object:Gem::Dependency
126
+ name: faker
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.7.3
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.7.3
139
+ description: Project Management tools that integrate into your developer workflow
47
140
  email:
48
141
  - jaden.carver@gmail.com
49
142
  executables: []
50
- extensions: []
143
+ extensions:
144
+ - extconf.rb
51
145
  extra_rdoc_files: []
52
146
  files:
53
- - app/assets/javascripts/jquery-linedtextarea.js
54
- - app/assets/javascripts/superconductor/panel.js.coffee
55
- - app/assets/javascripts/superconductor.js
56
- - app/assets/stylesheets/jquery-linedtextarea.css
57
- - app/assets/stylesheets/scaffold.css
58
- - app/assets/stylesheets/superconductor/panel.css.scss
59
- - app/assets/stylesheets/superconductor.css
60
- - app/controllers/file_controller.rb
61
- - app/helpers/superconductor/panel_helper.rb
62
- - app/models/superconductor/exception.rb
63
- - app/models/superconductor.rb
64
- - app/views/superconductor/_panel.html.erb
65
- - app/views/superconductor/_panel.js.erb
66
- - config/routes.rb
67
- - lib/superconductor/engine.rb
68
- - lib/superconductor/version.rb
69
- - lib/superconductor.rb
70
- - lib/tasks/superconductor_tasks.rake
71
- - MIT-LICENSE
147
+ - ".gitignore"
148
+ - ".rspec"
149
+ - ".ruby-version"
150
+ - ".scss-lint.yml"
151
+ - ".travis.yml"
152
+ - ".yardopts"
153
+ - Cargo.lock
154
+ - Cargo.toml
155
+ - Gemfile
156
+ - Gemfile.lock
157
+ - Guardfile
158
+ - LICENSE.txt
159
+ - Makefile
160
+ - README.md
72
161
  - Rakefile
73
- - README.rdoc
74
- - test/dummy/app/assets/javascripts/application.js
75
- - test/dummy/app/assets/stylesheets/application.css
76
- - test/dummy/app/controllers/application_controller.rb
77
- - test/dummy/app/helpers/application_helper.rb
78
- - test/dummy/app/views/layouts/application.html.erb
79
- - test/dummy/config/application.rb
80
- - test/dummy/config/boot.rb
81
- - test/dummy/config/database.yml
82
- - test/dummy/config/environment.rb
83
- - test/dummy/config/environments/development.rb
84
- - test/dummy/config/environments/production.rb
85
- - test/dummy/config/environments/test.rb
86
- - test/dummy/config/initializers/backtrace_silencers.rb
87
- - test/dummy/config/initializers/inflections.rb
88
- - test/dummy/config/initializers/mime_types.rb
89
- - test/dummy/config/initializers/secret_token.rb
90
- - test/dummy/config/initializers/session_store.rb
91
- - test/dummy/config/initializers/wrap_parameters.rb
92
- - test/dummy/config/locales/en.yml
93
- - test/dummy/config/routes.rb
94
- - test/dummy/config.ru
95
- - test/dummy/public/404.html
96
- - test/dummy/public/422.html
97
- - test/dummy/public/500.html
98
- - test/dummy/public/favicon.ico
99
- - test/dummy/Rakefile
100
- - test/dummy/README.rdoc
101
- - test/dummy/script/rails
102
- - test/integration/navigation_test.rb
103
- - test/superconductor_test.rb
104
- - test/test_helper.rb
105
- - test/unit/helpers/superconductor/panel_helper_test.rb
106
- homepage: http://www.rapidsight.com
107
- licenses: []
162
+ - assets/__pm.js
163
+ - assets/__pm.scss
164
+ - assets/_buttons.scss
165
+ - assets/_checkbox.scss
166
+ - assets/_colors.scss
167
+ - assets/_details.scss
168
+ - assets/_pm_commits.scss
169
+ - assets/_pm_setup.scss
170
+ - assets/_pm_tasks.scss
171
+ - assets/_tokens.scss
172
+ - bin/console
173
+ - bin/make
174
+ - bin/rake
175
+ - bin/release
176
+ - bin/setup
177
+ - bin/start
178
+ - config.ru
179
+ - config/properties.yml
180
+ - doc/introduction.html
181
+ - extconf.rb
182
+ - lib/superconductor.rb
183
+ - lib/superconductor/documentation.rb
184
+ - lib/superconductor/middleware.rb
185
+ - lib/superconductor/version.rb
186
+ - src/lib.rs
187
+ - src/server.rs
188
+ - src/state/mod.rs
189
+ - src/state/state.rs
190
+ - src/state/xml.rs
191
+ - src/task.rs
192
+ - src/view.rs
193
+ - superconductor.gemspec
194
+ homepage: https://www.github.com/jadencarver/superconductor
195
+ licenses:
196
+ - MIT
197
+ metadata:
198
+ allowed_push_host: https://rubygems.org
108
199
  post_install_message:
109
200
  rdoc_options: []
110
201
  require_paths:
111
202
  - lib
112
203
  required_ruby_version: !ruby/object:Gem::Requirement
113
- none: false
114
204
  requirements:
115
- - - ! '>='
205
+ - - ">="
116
206
  - !ruby/object:Gem::Version
117
207
  version: '0'
118
208
  required_rubygems_version: !ruby/object:Gem::Requirement
119
- none: false
120
209
  requirements:
121
- - - ! '>='
210
+ - - ">="
122
211
  - !ruby/object:Gem::Version
123
212
  version: '0'
124
213
  requirements: []
125
214
  rubyforge_project:
126
- rubygems_version: 1.8.23
215
+ rubygems_version: 2.5.1
127
216
  signing_key:
128
- specification_version: 3
129
- summary: Context aware development and debugging panel
130
- test_files:
131
- - test/dummy/app/assets/javascripts/application.js
132
- - test/dummy/app/assets/stylesheets/application.css
133
- - test/dummy/app/controllers/application_controller.rb
134
- - test/dummy/app/helpers/application_helper.rb
135
- - test/dummy/app/views/layouts/application.html.erb
136
- - test/dummy/config/application.rb
137
- - test/dummy/config/boot.rb
138
- - test/dummy/config/database.yml
139
- - test/dummy/config/environment.rb
140
- - test/dummy/config/environments/development.rb
141
- - test/dummy/config/environments/production.rb
142
- - test/dummy/config/environments/test.rb
143
- - test/dummy/config/initializers/backtrace_silencers.rb
144
- - test/dummy/config/initializers/inflections.rb
145
- - test/dummy/config/initializers/mime_types.rb
146
- - test/dummy/config/initializers/secret_token.rb
147
- - test/dummy/config/initializers/session_store.rb
148
- - test/dummy/config/initializers/wrap_parameters.rb
149
- - test/dummy/config/locales/en.yml
150
- - test/dummy/config/routes.rb
151
- - test/dummy/config.ru
152
- - test/dummy/public/404.html
153
- - test/dummy/public/422.html
154
- - test/dummy/public/500.html
155
- - test/dummy/public/favicon.ico
156
- - test/dummy/Rakefile
157
- - test/dummy/README.rdoc
158
- - test/dummy/script/rails
159
- - test/integration/navigation_test.rb
160
- - test/superconductor_test.rb
161
- - test/test_helper.rb
162
- - test/unit/helpers/superconductor/panel_helper_test.rb
217
+ specification_version: 4
218
+ summary: Development Integrated Project Management
219
+ test_files: []