superconductor 0.0.4 → 0.1.0

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