gvcsfx 0.3 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc8f144e9c0c6026b678a273f83c5decd5addaeab7107c51cf135960ebdd59e8
4
- data.tar.gz: '09bb7c786358bb9c9f7bdfcc3561a445bc2b2dcd786b9b0a86e74889edf7cfad'
3
+ metadata.gz: 77cccf92131945b87f76d89882e8d0b6f7f524ffa0557c52a6dd951a5f979ef1
4
+ data.tar.gz: 3a56ba89e0900510730565073487530f2449b0269d9f827d43adac6828af373e
5
5
  SHA512:
6
- metadata.gz: 372e845c794cdbae4cca7d448192c59b3e1f7c22206d01e8c55213377303889355ba916e09232ba3ba602649d3c7f87784b7e2744b06f623dae2ad25cde7d3eb
7
- data.tar.gz: b72b982aae34765f09539d834384ad3ad5773e7717cafba5c120697b8b443429105b41de83c719035b1d84bb8668a577db9bda36502c52c79196cc374d5e0352
6
+ metadata.gz: 17c343d415596123b81ea1aec71d7a30e7325f06a41e6051afd8a493b55f17331396777ff265b5f680a2e3b7dee8c4711fcfe3bb7580da12cde0eb94c8cd8cee
7
+ data.tar.gz: 6a84745e06bfa5ca810dbdde3ab384984a62cba8d06dcfab202624fb541a08f0315a4f2a347d6c4f19a5bfb8ec49c93a672738b424a0db25f2b03cd216435073
data/.gitignore CHANGED
@@ -4,3 +4,5 @@ Gemfile.lock
4
4
  fx/.jrubyfx_cache/
5
5
  gvcsfx.jar
6
6
  gvcsfx-0.3.jar
7
+ pkg/
8
+ tags
data/Gemfile CHANGED
@@ -16,9 +16,14 @@
16
16
 
17
17
  source "https://rubygems.org"
18
18
 
19
- gem 'tlogger', '~> 0.21'
20
- gem 'jrubyfx'
21
- gem 'toolrack', '~> 0.4'
19
+ gemspec
22
20
 
23
- gem 'gvcs', '~> 0.1'
24
- gem 'git_cli', '~> 0.1'
21
+ #gem 'git_cli', path: '../git/git_cli'
22
+
23
+ #gem 'jrubyfx-openjfx.patch', path: '/mnt/Vault/08.Dev/01.Workspaces/jrubyfx_patches/jrubyfx'
24
+ #gem 'tlogger', '~> 0.21'
25
+ #gem 'jrubyfx'
26
+ #gem 'toolrack', '~> 0.4'
27
+ #
28
+ #gem 'gvcs', '~> 0.1'
29
+ #gem 'git_cli', '~> 0.1'
data/README.md CHANGED
@@ -57,6 +57,26 @@ To be implemented
57
57
  * Sort by date/committer on logs
58
58
 
59
59
 
60
+ Installation
61
+ ============
62
+
63
+ You can check out the source code here and run
64
+
65
+ ```sh
66
+ > bundle
67
+ > bundle exec ruby bin/gvcsfx.rb
68
+ ```
69
+
70
+ Or use gem to install the tool:
71
+
72
+ ```ruby
73
+ > gem install gvcsfx
74
+ > (if you use RVM, switch to jruby first)
75
+ > rvm use jruby
76
+ > gvcsfx
77
+ ```
78
+
79
+
60
80
  Development
61
81
  ===========
62
82
 
@@ -0,0 +1,12 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ require 'devops_helper'
5
+
6
+ Rake::TestTask.new(:test) do |t|
7
+ t.libs << "test"
8
+ t.libs << "lib"
9
+ t.test_files = FileList["test/**/*_test.rb"]
10
+ end
11
+
12
+ task :default => :test
@@ -127,8 +127,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
127
127
  <GridPane layoutX="240.0" layoutY="115.0" maxWidth="1.7976931348623157E308" AnchorPane.bottomAnchor="8.0" AnchorPane.leftAnchor="8.0" AnchorPane.rightAnchor="8.0" AnchorPane.topAnchor="8.0">
128
128
  <columnConstraints>
129
129
  <ColumnConstraints hgrow="NEVER" maxWidth="215.0" />
130
- <ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="684.0" />
131
- <ColumnConstraints hgrow="SOMETIMES" maxWidth="501.0" minWidth="10.0" prefWidth="209.0" />
130
+ <ColumnConstraints hgrow="SOMETIMES" maxWidth="1.7976931348623157E308" minWidth="10.0" prefWidth="642.0" />
131
+ <ColumnConstraints hgrow="NEVER" maxWidth="288.0" minWidth="288.0" prefWidth="288.0" />
132
132
  </columnConstraints>
133
133
  <rowConstraints>
134
134
  <RowConstraints maxHeight="-Infinity" minHeight="-Infinity" prefHeight="28.0" vgrow="NEVER" />
@@ -153,10 +153,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
153
153
  <Insets bottom="5.0" top="5.0" />
154
154
  </GridPane.margin>
155
155
  </TableView>
156
- <ComboBox fx:id="cmbCommitMsg" editable="true" maxWidth="1.7976931348623157E308" onKeyTyped="#is_cmbCommit_enter" promptText="Commit message" GridPane.columnSpan="3" GridPane.hgrow="ALWAYS" GridPane.rowIndex="3" />
157
- <Button fx:id="butCommit" defaultButton="true" maxWidth="80.0" minWidth="80.0" mnemonicParsing="false" onAction="#vcs_commit" prefWidth="80.0" text="Commit" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.rowIndex="4" />
158
- <HBox alignment="CENTER_RIGHT" prefHeight="100.0" prefWidth="200.0" GridPane.columnIndex="2">
156
+ <ComboBox fx:id="cmbCommitMsg" editable="true" maxWidth="1.7976931348623157E308" onKeyPressed="#is_cmbCommit_enter" promptText="Commit message" GridPane.columnSpan="3" GridPane.hgrow="ALWAYS" GridPane.rowIndex="3" />
157
+ <Button fx:id="butCommit" maxWidth="80.0" minWidth="80.0" mnemonicParsing="false" onAction="#vcs_commit" prefWidth="80.0" text="Commit" GridPane.columnIndex="2" GridPane.halignment="RIGHT" GridPane.rowIndex="4" />
158
+ <HBox alignment="CENTER_RIGHT" prefHeight="28.0" prefWidth="332.0" GridPane.columnIndex="2">
159
159
  <children>
160
+ <TextField fx:id="txtStateFileNmFilter" alignment="CENTER" onKeyPressed="#name_filter_keypressed" promptText="File name filter" HBox.hgrow="ALWAYS">
161
+ <HBox.margin>
162
+ <Insets left="3.0" right="3.0" />
163
+ </HBox.margin>
164
+ </TextField>
160
165
  <Button fx:id="butRefreshChanges" alignment="CENTER" maxWidth="80.0" minWidth="80.0" mnemonicParsing="false" onAction="#refresh_vcs_status" prefWidth="80.0" text="Refresh">
161
166
  <HBox.margin>
162
167
  <Insets />
@@ -457,7 +462,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
457
462
  <RowConstraints minHeight="10.0" prefHeight="38.0" vgrow="SOMETIMES" />
458
463
  </rowConstraints>
459
464
  <children>
460
- <TitledPane collapsible="false" maxHeight="1.7976931348623157E308" minHeight="-Infinity" text="Configurations" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
465
+ <TitledPane collapsible="false" maxHeight="1.7976931348623157E308" text="Configurations" GridPane.columnSpan="2" GridPane.hgrow="ALWAYS" GridPane.vgrow="ALWAYS">
461
466
  <content>
462
467
  <TabPane tabMinWidth="80.0">
463
468
  <tabs>
@@ -0,0 +1,38 @@
1
+ require_relative 'lib/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "gvcsfx"
5
+ spec.version = GvcsFx::VERSION
6
+ spec.authors = ["Chris"]
7
+ spec.email = ["chrisliaw@antrapol.com"]
8
+
9
+ spec.summary = %q{Generic Version Control System - JavaFX}
10
+ spec.description = %q{Simple and effective VCS workflow management}
11
+ spec.homepage = "https://github.com/chrisliaw/gvcsfx"
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
13
+
14
+ #spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
15
+
16
+ #spec.metadata["homepage_uri"] = spec.homepage
17
+ #spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
18
+ #spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
19
+
20
+ # Specify which files should be added to the gem when it is released.
21
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
23
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
+ end
25
+ spec.bindir = "bin"
26
+ #spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
+ spec.executables = "gvcsfx"
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_dependency 'tlogger' #, '>= 0.21'
31
+ spec.add_dependency 'jrubyfx-openjfx.patch', '1.2.0.1'
32
+ spec.add_dependency 'toolrack' #, '>= 0.5.0'
33
+ spec.add_dependency 'gvcs' #, '>= 0.1.0'
34
+ spec.add_dependency 'git_cli' #, '>= 0.8.0'
35
+
36
+ spec.add_development_dependency 'devops_helper' #, '>= 0.3.1'
37
+
38
+ end
@@ -74,7 +74,7 @@ module GvcsFx
74
74
  if inside_jar?
75
75
  @errImg = javafx.scene.image.Image.new(java.lang.Object.new.java_class.resource("/gvcsfx/res/cross.png").to_s)
76
76
  else
77
- @errImg = javafx.scene.image.Image.new("res/cross.png")
77
+ @errImg = javafx.scene.image.Image.new(File.join("file://",File.dirname(__FILE__),"..","res/cross.png"))
78
78
  end
79
79
  end
80
80
  @errImg
@@ -83,7 +83,7 @@ module GvcsFx
83
83
  if inside_jar?
84
84
  @warnImg = javafx.scene.image.Image.new(java.lang.Object.new.java_class.resource("/gvcsfx/res/warn.png").to_s)
85
85
  else
86
- @warnImg = javafx.scene.image.Image.new("res/warn.png")
86
+ @warnImg = javafx.scene.image.Image.new(File.join("file://",File.dirname(__FILE__),"..","res/warn.png"))
87
87
  end
88
88
  end
89
89
  @warnImg
@@ -92,7 +92,7 @@ module GvcsFx
92
92
  if inside_jar?
93
93
  @sucImg = javafx.scene.image.Image.new(java.lang.Object.new.java_class.resource("/gvcsfx/res/tick.png").to_s)
94
94
  else
95
- @sucImg = javafx.scene.image.Image.new("res/tick.png")
95
+ @sucImg = javafx.scene.image.Image.new(File.join("file://",File.dirname(__FILE__),"..","res/tick.png"))
96
96
  end
97
97
  end
98
98
  @sucImg
@@ -101,7 +101,7 @@ module GvcsFx
101
101
  if inside_jar?
102
102
  @infoImg = javafx.scene.image.Image.new(java.lang.Object.new.java_class.resource("/gvcsfx/res/world.png").to_s)
103
103
  else
104
- @infoImg = javafx.scene.image.Image.new("res/world.png")
104
+ @infoImg = javafx.scene.image.Image.new(File.join("file://",File.dirname(__FILE__),"..","res/world.png"))
105
105
  end
106
106
  end
107
107
  @infoImg
@@ -33,28 +33,33 @@ module GvcsFx
33
33
  end
34
34
  class ModifiedFile < VcsElement
35
35
  def initialize(path, ftype)
36
- super("M",path, ftype)
36
+ super("Changed",path, ftype)
37
37
  end
38
38
  end
39
39
  class ConflictedFile < VcsElement
40
40
  def initialize(path, ftype)
41
- super("C",path, ftype)
41
+ super("Conflicted",path, ftype)
42
42
  end
43
43
  end
44
44
  class NewFile < VcsElement
45
45
  def initialize(path, ftype)
46
- super("N",path, ftype)
46
+ super("New",path, ftype)
47
47
  end
48
48
  end
49
49
  class DeletedFile < VcsElement
50
50
  def initialize(path, ftype)
51
- super("D",path, ftype)
51
+ super("Deleted",path, ftype)
52
+ end
53
+ end
54
+ class StagedFile < VcsElement
55
+ def initialize(path, ftype)
56
+ super("Staged",path, ftype)
52
57
  end
53
58
  end
54
59
  #############
55
60
 
56
61
  def init_tab_state
57
- @tblChanges.placeholder = javafx.scene.control.Label.new("Changeset is empty. Please select a workspace or the selected workspace has no changes ")
62
+ @tblChanges.placeholder = javafx.scene.control.Label.new("Changeset is empty. Please select a workspace, the selected workspace has no changes or changes have been filtered out.")
58
63
 
59
64
  @tblChanges.columns.clear
60
65
  @tblChanges.column_resize_policy = javafx.scene.control.TableView::CONSTRAINED_RESIZE_POLICY
@@ -140,11 +145,32 @@ module GvcsFx
140
145
  cst, cflt_dirs, cflt_files = @selWs.conflicted_files
141
146
  nst, news_dirs, news_files = @selWs.new_files
142
147
  dst, dels_dirs, dels_files = @selWs.deleted_files
148
+ sst, staged_dirs, staged_files = @selWs.staged_files
149
+
150
+ filter = @txtStateFileNmFilter.text
151
+
152
+ if not_empty?(filter)
153
+ mods_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
154
+ mods_files.delete_if { |e| (e =~ /#{filter}/) == nil }
155
+
156
+ cflt_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
157
+ cflt_files.delete_if { |e| (e =~ /#{filter}/) == nil }
158
+
159
+ news_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
160
+ news_files.delete_if { |e| (e =~ /#{filter}/) == nil }
161
+
162
+ dels_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
163
+ dels_files.delete_if { |e| (e =~ /#{filter}/) == nil }
164
+
165
+ staged_dirs.delete_if { |e| (e =~ /#{filter}/) == nil }
166
+ staged_files.delete_if { |e| (e =~ /#{filter}/) == nil }
167
+ end
143
168
 
144
169
  data = []
145
170
  mods_dirs.each do |f|
146
171
  data << ModifiedFile.new(f,:dir)
147
172
  end
173
+
148
174
  mods_files.each do |f|
149
175
  data << ModifiedFile.new(f,:file)
150
176
  end
@@ -162,6 +188,7 @@ module GvcsFx
162
188
  news_files.each do |f|
163
189
  data << NewFile.new(f,:file)
164
190
  end
191
+
165
192
  dels_dirs.each do |f|
166
193
  data << DeletedFile.new(f,:dir)
167
194
  end
@@ -169,6 +196,13 @@ module GvcsFx
169
196
  data << DeletedFile.new(f,:file)
170
197
  end
171
198
 
199
+ staged_dirs.each do |f|
200
+ data << StagedFile.new(f,:dir)
201
+ end
202
+ staged_files.each do |f|
203
+ data << StagedFile.new(f,:file)
204
+ end
205
+
172
206
  bst, currBranch = @selWs.current_branch
173
207
  if bst
174
208
  @lblCurrBranch.text = currBranch
@@ -196,17 +230,25 @@ module GvcsFx
196
230
  end
197
231
  end
198
232
 
233
+ def name_filter_keypressed(evt)
234
+ if (not evt.nil?) and evt.code == javafx.scene.input.KeyCode::ENTER
235
+ refresh_tab_state
236
+ end
237
+ end
238
+
199
239
  # hooked to the button "not ready to commit just yet..."
200
240
  def stash_changes(evt)
201
241
  mst, mods_dirs, mods_files = @selWs.modified_files
202
242
  cst, cflt_dirs, cflt_files = @selWs.conflicted_files
203
243
  nst, news_dirs, news_files = @selWs.new_files
204
244
  dst, dels_dirs, dels_files = @selWs.deleted_files
245
+ sst, staged_dirs, staged_files = @selWs.staged_files
205
246
 
206
247
  if mods_dirs.length > 0 or mods_files.length > 0 \
207
248
  or cflt_dirs.length > 0 or cflt_files.length > 0 \
208
249
  or news_dirs.length > 0 or news_files.length > 0 \
209
- or dels_dirs.length > 0 or dels_files.length > 0
250
+ or dels_dirs.length > 0 or dels_files.length > 0 \
251
+ or staged_dirs.length > 0 or staged_files.length > 0
210
252
 
211
253
  msg = []
212
254
  msg << "System detected there are existing uncommitted changes in the current workspace:\n"
@@ -218,6 +260,8 @@ module GvcsFx
218
260
  msg << "\tDeleted file(s) : \t\t#{dels_files.length}\n"
219
261
  msg << "\tNew folder(s) : \t\t#{news_dirs.length}\n"
220
262
  msg << "\tNew file(s) : \t\t\t#{news_files.length}\n"
263
+ msg << "\tStaged folder(s) : \t\t#{staged_dirs.length}\n"
264
+ msg << "\tStaged file(s) : \t\t\t#{staged_files.length}\n"
221
265
 
222
266
  st, name = fx_alert_input("Temporary Save Changes To Branch",msg.join, "Please give a descriptive name of this temporary changes.\nIt is recommended but not mandatory")
223
267
  if st
@@ -47,7 +47,7 @@ module GvcsFx
47
47
  def value
48
48
  self
49
49
  end
50
- end
50
+ end # class TreeWorkspace
51
51
 
52
52
  class WorkspaceCellFactory < javafx.scene.control.TreeTableCell
53
53
  include Antrapol::ToolRack::ExceptionUtils
@@ -69,10 +69,26 @@ module GvcsFx
69
69
  end
70
70
  end
71
71
 
72
- setGraphic(Text.new(cont))
73
-
74
- end
75
- end
72
+ #
73
+ # This code was changed from setGraphic(Text.new(cont)) to setText
74
+ # because if using setGraphic it shall corrupt the tree node display
75
+ # on OpenJFX. It is however not an issue for Oracle JFX.
76
+ # Reported and discussion is here:
77
+ # https://stackoverflow.com/q/65084285/3625825
78
+ # Answer is here:
79
+ # https://stackoverflow.com/a/65138569/3625825
80
+ #
81
+ # Checked on the JavaFX bug database found the issue already reported
82
+ # - https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8238991
83
+ # * the issue is marked as Resolved but the comment seems indicate this issue
84
+ # is linked to another Open issue at
85
+ # https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8231644
86
+ # at the time of this writing
87
+ #
88
+ setText(cont)
89
+
90
+ end # updateItem
91
+ end # class WorkspaceCellFactory
76
92
 
77
93
 
78
94
  LEAF_PROJ_DESC = "Leaf Workspaces (Workspace without bind to a project)"
@@ -94,7 +110,6 @@ module GvcsFx
94
110
  col = []
95
111
  tcUrl = TreeTableColumn.new("Path")
96
112
  tcUrl.cell_value_factory = Proc.new do |e|
97
- #p e.value.value
98
113
  if e.value.value.is_a?(TreeWorkspace)
99
114
  e.value.value
100
115
  else
@@ -182,7 +197,7 @@ module GvcsFx
182
197
  refresh_workspace_list
183
198
 
184
199
  end
185
- end
200
+ end # Platform.run_later
186
201
  end)
187
202
 
188
203
  refresh_workspace_list
@@ -345,46 +360,50 @@ module GvcsFx
345
360
  dc.title = "Select VCS Workspace"
346
361
  wsDir = dc.showDialog(main_stage)
347
362
 
348
- @txtWorkspacePath.text = wsDir.absolute_path
363
+ @txtWorkspacePath.text = wsDir.absolute_path if not_empty?(wsDir)
349
364
  end
350
365
 
351
366
  private
352
367
  def dnd_dropped(evt)
353
368
  f = evt.dragboard.files
354
- vcs = Gvcs::Vcs.new
355
- ws = []
356
- nws = []
357
- f.each do |ff|
358
- log_debug "Checking drop in path '#{ff.absolute_path}'"
359
- st, path = Gvcs::Workspace.new(vcs, ff.absolute_path).workspace_root
360
- if st
361
- # workspace!
362
- ws << path.strip
363
- else
364
- # not a workspace
365
- nws << ff.absolute_path
369
+ if not_empty?(f)
370
+
371
+ vcs = Gvcs::Vcs.new
372
+ ws = []
373
+ nws = []
374
+ f.each do |ff|
375
+ log_debug "Checking drop in path '#{ff.absolute_path}'"
376
+ st, path = Gvcs::Workspace.new(vcs, ff.absolute_path).workspace_root
377
+ if st
378
+ # workspace!
379
+ ws << path.strip
380
+ else
381
+ # not a workspace
382
+ nws << ff.absolute_path
383
+ end
366
384
  end
367
- end
368
385
 
369
- ws.each do |w|
370
- log_debug "Adding workspace '#{w}'"
371
- add_workspace(w)
372
- set_success_gmsg("Workspace '#{w}' added to list")
373
- end
374
-
375
- failed = { }
376
- nws.each do |w|
377
- log_debug "Adding non workspace '#{w}'"
378
- st, res = vcs.init(w)
379
- if st
386
+ ws.each do |w|
387
+ log_debug "Adding workspace '#{w}'"
380
388
  add_workspace(w)
381
- set_success_gmsg("Non-workspace '#{w}' added to list")
382
- else
383
- failed[w] = res
389
+ set_success_gmsg("Workspace '#{w}' added to list")
390
+ end
391
+
392
+ failed = { }
393
+ nws.each do |w|
394
+ log_debug "Adding non workspace '#{w}'"
395
+ st, res = vcs.init(w)
396
+ if st
397
+ add_workspace(w)
398
+ set_success_gmsg("Non-workspace '#{w}' added to list")
399
+ else
400
+ failed[w] = res
401
+ end
384
402
  end
385
- end
386
403
 
387
- raise_event(Listener::Event[:workspace_added])
404
+ raise_event(Listener::Event[:workspace_added])
405
+
406
+ end
388
407
 
389
408
  end # dnd_dropped
390
409
 
@@ -17,5 +17,5 @@
17
17
 
18
18
 
19
19
  module GvcsFx
20
- VERSION = "0.3"
20
+ VERSION = "0.6.0"
21
21
  end
metadata CHANGED
@@ -1,21 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gvcsfx
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-02 00:00:00.000000000 Z
11
+ date: 2020-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '0.21'
18
+ version: '0'
19
19
  name: tlogger
20
20
  prerelease: false
21
21
  type: :runtime
@@ -23,63 +23,77 @@ dependencies:
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.21'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 1.2.0
33
- name: jrubyfx
32
+ version: 1.2.0.1
33
+ name: jrubyfx-openjfx.patch
34
34
  prerelease: false
35
35
  type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 1.2.0
40
+ version: 1.2.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - "~>"
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '0.4'
46
+ version: '0'
47
47
  name: toolrack
48
48
  prerelease: false
49
49
  type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0.4'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - "~>"
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '0.1'
60
+ version: '0'
61
61
  name: gvcs
62
62
  prerelease: false
63
63
  type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0.1'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '0.1'
74
+ version: '0'
75
75
  name: git_cli
76
76
  prerelease: false
77
77
  type: :runtime
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ name: devops_helper
90
+ prerelease: false
91
+ type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: '0.1'
96
+ version: '0'
83
97
  description: Simple and effective VCS workflow management
84
98
  email:
85
99
  - chrisliaw@antrapol.com
@@ -91,6 +105,7 @@ files:
91
105
  - ".gitignore"
92
106
  - Gemfile
93
107
  - README.md
108
+ - Rakefile
94
109
  - bin/gvcsfx
95
110
  - bin/gvcsfx.rb
96
111
  - config/warble.rb
@@ -101,6 +116,7 @@ files:
101
116
  - fx/show_text.fxml
102
117
  - fx/stash_select.fxml
103
118
  - gvcs_fx.rb
119
+ - gvcsfx.gemspec
104
120
  - handlers/add_workspace_controller.rb
105
121
  - handlers/event_handler.rb
106
122
  - handlers/float_win_controller.rb