ffi-tk 2010.08.23 → 2018.02.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +371 -0
- data/AUTHORS +4 -2
- data/CHANGELOG +302 -262
- data/Gemfile +10 -0
- data/Gemfile.lock +45 -0
- data/MANIFEST +6 -6
- data/README.md +1 -1
- data/Rakefile +12 -11
- data/bin/rwish +6 -5
- data/example/choose_color.rb +5 -4
- data/example/choose_directory.rb +5 -4
- data/example/dialog.rb +9 -8
- data/example/hello.rb +2 -1
- data/example/message_box.rb +8 -5
- data/example/option_menu.rb +4 -3
- data/example/popup.rb +4 -3
- data/example/set_palette.rb +5 -4
- data/example/text.rb +30 -30
- data/example/tile/kroc_demo_small.rb +51 -55
- data/example/tile/kroc_rb_demo.rb +74 -83
- data/example/tile/notebook.rb +6 -9
- data/example/tile/theme_hello.rb +6 -8
- data/example/tile/themes.rb +4 -2
- data/example/tile/treeview.rb +16 -14
- data/example/tkgo.rb +120 -88
- data/example/various.rb +8 -7
- data/example/wait.rb +3 -2
- data/ffi-tk.gemspec +21 -20
- data/gemset.nix +134 -0
- data/lib/ffi-tk.rb +10 -11
- data/lib/ffi-tk/command.rb +3 -2
- data/lib/ffi-tk/command/after.rb +8 -7
- data/lib/ffi-tk/command/bell.rb +2 -1
- data/lib/ffi-tk/command/bind.rb +1 -0
- data/lib/ffi-tk/command/bindtags.rb +1 -0
- data/lib/ffi-tk/command/cget.rb +31 -24
- data/lib/ffi-tk/command/choose_color.rb +2 -1
- data/lib/ffi-tk/command/choose_directory.rb +2 -1
- data/lib/ffi-tk/command/clipboard.rb +6 -5
- data/lib/ffi-tk/command/configure.rb +23 -21
- data/lib/ffi-tk/command/destroy.rb +2 -1
- data/lib/ffi-tk/command/dialog.rb +4 -3
- data/lib/ffi-tk/command/event.rb +1 -0
- data/lib/ffi-tk/command/focus.rb +2 -1
- data/lib/ffi-tk/command/font.rb +12 -9
- data/lib/ffi-tk/command/get_open_file.rb +1 -0
- data/lib/ffi-tk/command/get_save_file.rb +1 -0
- data/lib/ffi-tk/command/grab.rb +2 -1
- data/lib/ffi-tk/command/grid.rb +7 -6
- data/lib/ffi-tk/command/image.rb +5 -4
- data/lib/ffi-tk/command/lower.rb +1 -0
- data/lib/ffi-tk/command/message_box.rb +2 -1
- data/lib/ffi-tk/command/option_menu.rb +3 -2
- data/lib/ffi-tk/command/pack.rb +5 -4
- data/lib/ffi-tk/command/place.rb +5 -4
- data/lib/ffi-tk/command/popup.rb +2 -1
- data/lib/ffi-tk/command/raise.rb +1 -0
- data/lib/ffi-tk/command/scrollable.rb +7 -10
- data/lib/ffi-tk/command/selection.rb +4 -3
- data/lib/ffi-tk/command/set_palette.rb +2 -1
- data/lib/ffi-tk/command/tk_cmd.rb +1 -0
- data/lib/ffi-tk/command/vars.rb +2 -1
- data/lib/ffi-tk/command/wait.rb +2 -1
- data/lib/ffi-tk/command/winfo.rb +9 -8
- data/lib/ffi-tk/command/wm.rb +11 -10
- data/lib/ffi-tk/core_extensions.rb +5 -4
- data/lib/ffi-tk/event/data.rb +32 -31
- data/lib/ffi-tk/event/handler.rb +4 -3
- data/lib/ffi-tk/ffi/tcl.rb +42 -31
- data/lib/ffi-tk/ffi/tcl/cmd_proc.rb +2 -1
- data/lib/ffi-tk/ffi/tcl/eval_result.rb +47 -8
- data/lib/ffi-tk/ffi/tcl/interp.rb +7 -4
- data/lib/ffi-tk/ffi/tcl/obj.rb +7 -32
- data/lib/ffi-tk/ffi/tcl/time.rb +2 -1
- data/lib/ffi-tk/ffi/tk.rb +8 -7
- data/lib/ffi-tk/geometry.rb +20 -17
- data/lib/ffi-tk/thread_sender.rb +1 -0
- data/lib/ffi-tk/tk.rb +23 -23
- data/lib/ffi-tk/variable.rb +25 -3
- data/lib/ffi-tk/version.rb +1 -1
- data/lib/ffi-tk/widget.rb +2 -1
- data/lib/ffi-tk/widget/button.rb +4 -1
- data/lib/ffi-tk/widget/canvas.rb +18 -15
- data/lib/ffi-tk/widget/canvas/arc.rb +2 -1
- data/lib/ffi-tk/widget/canvas/bitmap.rb +2 -1
- data/lib/ffi-tk/widget/canvas/image.rb +2 -1
- data/lib/ffi-tk/widget/canvas/item.rb +4 -4
- data/lib/ffi-tk/widget/canvas/line.rb +2 -1
- data/lib/ffi-tk/widget/canvas/oval.rb +2 -1
- data/lib/ffi-tk/widget/canvas/polygon.rb +2 -1
- data/lib/ffi-tk/widget/canvas/rectangle.rb +2 -1
- data/lib/ffi-tk/widget/canvas/text.rb +2 -1
- data/lib/ffi-tk/widget/canvas/window.rb +2 -1
- data/lib/ffi-tk/widget/checkbutton.rb +4 -1
- data/lib/ffi-tk/widget/entry.rb +4 -1
- data/lib/ffi-tk/widget/frame.rb +4 -1
- data/lib/ffi-tk/widget/label.rb +4 -1
- data/lib/ffi-tk/widget/labelframe.rb +4 -1
- data/lib/ffi-tk/widget/listbox.rb +5 -2
- data/lib/ffi-tk/widget/menu.rb +4 -1
- data/lib/ffi-tk/widget/menubutton.rb +4 -1
- data/lib/ffi-tk/widget/message.rb +4 -1
- data/lib/ffi-tk/widget/panedwindow.rb +5 -2
- data/lib/ffi-tk/widget/radiobutton.rb +4 -1
- data/lib/ffi-tk/widget/root.rb +1 -0
- data/lib/ffi-tk/widget/scale.rb +4 -1
- data/lib/ffi-tk/widget/scrollbar.rb +4 -1
- data/lib/ffi-tk/widget/spinbox.rb +4 -1
- data/lib/ffi-tk/widget/text.rb +20 -16
- data/lib/ffi-tk/widget/text/peer.rb +1 -0
- data/lib/ffi-tk/widget/tile.rb +2 -1
- data/lib/ffi-tk/widget/tile/button.rb +4 -1
- data/lib/ffi-tk/widget/tile/checkbutton.rb +4 -1
- data/lib/ffi-tk/widget/tile/combobox.rb +5 -2
- data/lib/ffi-tk/widget/tile/entry.rb +4 -1
- data/lib/ffi-tk/widget/tile/frame.rb +4 -1
- data/lib/ffi-tk/widget/tile/label.rb +4 -2
- data/lib/ffi-tk/widget/tile/labelframe.rb +4 -1
- data/lib/ffi-tk/widget/tile/menubutton.rb +4 -1
- data/lib/ffi-tk/widget/tile/notebook.rb +4 -1
- data/lib/ffi-tk/widget/tile/panedwindow.rb +4 -1
- data/lib/ffi-tk/widget/tile/progressbar.rb +4 -2
- data/lib/ffi-tk/widget/tile/radiobutton.rb +4 -1
- data/lib/ffi-tk/widget/tile/scale.rb +4 -1
- data/lib/ffi-tk/widget/tile/scrollbar.rb +7 -4
- data/lib/ffi-tk/widget/tile/separator.rb +4 -1
- data/lib/ffi-tk/widget/tile/sizegrip.rb +4 -1
- data/lib/ffi-tk/widget/tile/style.rb +16 -17
- data/lib/ffi-tk/widget/tile/treeview.rb +11 -5
- data/lib/ffi-tk/widget/toplevel.rb +4 -1
- data/shell.nix +19 -0
- data/spec/ffi-tk/command/bind.rb +5 -4
- data/spec/ffi-tk/command/bindtags.rb +2 -1
- data/spec/ffi-tk/command/clipboard.rb +4 -3
- data/spec/ffi-tk/command/font.rb +20 -19
- data/spec/ffi-tk/command/image.rb +13 -5
- data/spec/ffi-tk/command/pack.rb +3 -2
- data/spec/ffi-tk/command/place.rb +4 -3
- data/spec/ffi-tk/command/selection.rb +2 -1
- data/spec/ffi-tk/command/vars.rb +3 -2
- data/spec/ffi-tk/command/winfo.rb +10 -10
- data/spec/ffi-tk/command/wm.rb +23 -22
- data/spec/ffi-tk/event.rb +23 -21
- data/spec/ffi-tk/tile/button.rb +8 -8
- data/spec/ffi-tk/tile/checkbutton.rb +1 -1
- data/spec/ffi-tk/tile/combobox.rb +11 -12
- data/spec/ffi-tk/tile/entry.rb +18 -19
- data/spec/ffi-tk/tile/frame.rb +13 -13
- data/spec/ffi-tk/tile/label.rb +2 -2
- data/spec/ffi-tk/tile/labelframe.rb +1 -1
- data/spec/ffi-tk/tile/menubutton.rb +1 -1
- data/spec/ffi-tk/tile/notebook.rb +22 -20
- data/spec/ffi-tk/tile/panedwindow.rb +1 -1
- data/spec/ffi-tk/tile/progressbar.rb +1 -1
- data/spec/ffi-tk/tile/radiobutton.rb +1 -1
- data/spec/ffi-tk/tile/scale.rb +1 -1
- data/spec/ffi-tk/tile/scrollbar.rb +1 -16
- data/spec/ffi-tk/tile/separator.rb +2 -2
- data/spec/ffi-tk/tile/sizegrip.rb +1 -1
- data/spec/ffi-tk/tile/style.rb +63 -65
- data/spec/ffi-tk/tile/treeview.rb +11 -10
- data/spec/ffi-tk/variable.rb +5 -4
- data/spec/ffi-tk/widget/button.rb +3 -2
- data/spec/ffi-tk/widget/canvas.rb +59 -58
- data/spec/ffi-tk/widget/checkbutton.rb +6 -5
- data/spec/ffi-tk/widget/entry.rb +112 -103
- data/spec/ffi-tk/widget/frame.rb +2 -1
- data/spec/ffi-tk/widget/label.rb +2 -1
- data/spec/ffi-tk/widget/labelframe.rb +1 -0
- data/spec/ffi-tk/widget/listbox.rb +5 -4
- data/spec/ffi-tk/widget/menu.rb +3 -2
- data/spec/ffi-tk/widget/menubutton.rb +1 -0
- data/spec/ffi-tk/widget/message.rb +1 -0
- data/spec/ffi-tk/widget/panedwindow.rb +1 -0
- data/spec/ffi-tk/widget/radiobutton.rb +1 -0
- data/spec/ffi-tk/widget/root.rb +2 -1
- data/spec/ffi-tk/widget/scale.rb +1 -0
- data/spec/ffi-tk/widget/scrollbar.rb +1 -0
- data/spec/ffi-tk/widget/spinbox.rb +1 -0
- data/spec/ffi-tk/widget/text.rb +63 -54
- data/spec/ffi-tk/widget/toplevel.rb +1 -0
- data/spec/helper.rb +3 -1
- data/tasks/authors.rake +3 -2
- data/tasks/bacon.rake +13 -11
- data/tasks/changelog.rake +1 -0
- data/tasks/gem.rake +13 -11
- data/tasks/manifest.rake +2 -1
- data/tasks/release.rake +11 -32
- data/tasks/reversion.rake +2 -1
- metadata +52 -75
- data/spec/ffi-tk/command/grid.rb +0 -6
- data/tasks/gem_setup.rake +0 -113
- data/tasks/grancher.rake +0 -12
- data/tasks/rcov.rake +0 -17
- data/tasks/setup.rake +0 -12
- data/tasks/ycov.rake +0 -84
data/spec/helper.rb
CHANGED
data/tasks/authors.rake
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
# Once git has a fix for the glibc in handling .mailmap and another fix for
|
2
3
|
# allowing empty mail address to be mapped in .mailmap we won't have to handle
|
3
4
|
# them manually.
|
@@ -14,8 +15,8 @@ task :authors do
|
|
14
15
|
io.puts "Following persons have contributed to #{GEMSPEC.name}."
|
15
16
|
io.puts '(Sorted by number of submitted patches, then alphabetically)'
|
16
17
|
io.puts ''
|
17
|
-
authors.sort_by{|(n,
|
18
|
-
io.puts(
|
18
|
+
authors.sort_by { |(n, _e), c| [-c, n.downcase] }.each do |(name, email), count|
|
19
|
+
io.puts('%6d %s <%s>' % [count, name, email])
|
19
20
|
end
|
20
21
|
end
|
21
22
|
end
|
data/tasks/bacon.rake
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
desc 'Run all bacon specs with pretty output'
|
2
|
-
task :bacon
|
3
|
+
task :bacon do
|
3
4
|
require 'open3'
|
4
5
|
require 'scanf'
|
5
6
|
require 'matrix'
|
@@ -8,24 +9,25 @@ task :bacon => :setup do
|
|
8
9
|
|
9
10
|
some_failed = false
|
10
11
|
specs_size = specs.size
|
11
|
-
len = specs.map
|
12
|
-
total_tests = total_assertions = total_failures = total_errors = 0
|
12
|
+
len = specs.map(&:size).sort.last
|
13
13
|
totals = Vector[0, 0, 0, 0]
|
14
14
|
|
15
|
-
red
|
15
|
+
red = "\e[31m%s\e[0m"
|
16
|
+
yellow = "\e[33m%s\e[0m"
|
17
|
+
green = "\e[32m%s\e[0m"
|
16
18
|
left_format = "%4d/%d: %-#{len + 11}s"
|
17
|
-
spec_format =
|
19
|
+
spec_format = '%d specifications (%d requirements), %d failures, %d errors'
|
18
20
|
|
19
21
|
specs.each_with_index do |spec, idx|
|
20
22
|
print(left_format % [idx + 1, specs_size, spec])
|
21
23
|
|
22
|
-
Open3.popen3(RUBY, spec) do |
|
24
|
+
Open3.popen3(FileUtils::RUBY, spec) do |_sin, sout, serr|
|
23
25
|
out = sout.read.strip
|
24
26
|
err = serr.read.strip
|
25
27
|
|
26
28
|
# this is conventional, see spec/innate/state/fiber.rb for usage
|
27
29
|
if out =~ /^Bacon::Error: (needed .*)/
|
28
|
-
puts(yellow % (
|
30
|
+
puts(yellow % ('%6s %s' % ['', Regexp.last_match(1)]))
|
29
31
|
else
|
30
32
|
total = nil
|
31
33
|
|
@@ -40,19 +42,19 @@ task :bacon => :setup do
|
|
40
42
|
|
41
43
|
if total
|
42
44
|
totals += total
|
43
|
-
tests,
|
45
|
+
tests, _, failures, errors = total.to_a
|
44
46
|
|
45
47
|
if tests > 0 && failures + errors == 0
|
46
|
-
puts((green %
|
48
|
+
puts((green % '%6d passed') % tests)
|
47
49
|
else
|
48
50
|
some_failed = true
|
49
|
-
puts(red %
|
51
|
+
puts(red % ' failed')
|
50
52
|
puts out unless out.empty?
|
51
53
|
puts err unless err.empty?
|
52
54
|
end
|
53
55
|
else
|
54
56
|
some_failed = true
|
55
|
-
puts(red %
|
57
|
+
puts(red % ' failed')
|
56
58
|
puts out unless out.empty?
|
57
59
|
puts err unless err.empty?
|
58
60
|
end
|
data/tasks/changelog.rake
CHANGED
data/tasks/gem.rake
CHANGED
@@ -1,22 +1,24 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rubygems/package_task'
|
2
4
|
|
3
|
-
task :
|
5
|
+
task gemspec: [:manifest, :changelog] do
|
4
6
|
gemspec_file = "#{GEMSPEC.name}.gemspec"
|
5
|
-
File.open(gemspec_file, 'w+'){|gs| gs.puts(GEMSPEC.to_ruby) }
|
7
|
+
File.open(gemspec_file, 'w+') { |gs| gs.puts(GEMSPEC.to_ruby) }
|
6
8
|
end
|
7
9
|
|
8
|
-
desc
|
9
|
-
task :
|
10
|
-
sh
|
11
|
-
sh
|
10
|
+
desc 'package and install from gemspec'
|
11
|
+
task install: [:gemspec] do
|
12
|
+
sh 'gem', 'build', "#{GEMSPEC.name}.gemspec"
|
13
|
+
sh 'gem', 'install', "#{GEMSPEC.name}-#{GEMSPEC.version}.gem"
|
12
14
|
end
|
13
15
|
|
14
|
-
desc
|
15
|
-
task :
|
16
|
-
sh %
|
16
|
+
desc 'uninstall the gem'
|
17
|
+
task uninstall: [:clean] do
|
18
|
+
sh %(gem uninstall -x #{GEMSPEC.name})
|
17
19
|
end
|
18
20
|
|
19
|
-
|
21
|
+
Gem::PackageTask.new(GEMSPEC) do |p|
|
20
22
|
p.need_tar = true
|
21
23
|
p.need_zip = true
|
22
24
|
end
|
data/tasks/manifest.rake
CHANGED
data/tasks/release.rake
CHANGED
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
namespace :release do
|
2
|
-
task :
|
3
|
-
task :
|
3
|
+
task prepare: [:reversion, :authors, :gemspec]
|
4
|
+
task all: ['release:github', 'release:rubygems']
|
4
5
|
|
5
6
|
desc 'Release on github'
|
6
|
-
task :
|
7
|
-
name
|
7
|
+
task github: :prepare do
|
8
|
+
name = GEMSPEC.name
|
9
|
+
version = GEMSPEC.version
|
8
10
|
|
9
11
|
sh('git', 'add',
|
10
12
|
'MANIFEST', 'CHANGELOG', 'AUTHORS',
|
@@ -24,38 +26,15 @@ git push
|
|
24
26
|
INSTRUCTIONS
|
25
27
|
end
|
26
28
|
|
27
|
-
desc 'Release on
|
28
|
-
task :
|
29
|
-
name
|
30
|
-
|
31
|
-
pkgs = Dir["pkg/#{name}-#{version}.{tgz,zip}"].map{|file|
|
32
|
-
"rubyforge add_file #{name} #{name} '#{version}' '#{file}'"
|
33
|
-
}
|
34
|
-
|
35
|
-
puts <<-INSTRUCTIONS
|
36
|
-
================================================================================
|
37
|
-
|
38
|
-
To publish to rubyforge do following:
|
39
|
-
|
40
|
-
rubyforge login
|
41
|
-
rubyforge add_release #{name} #{name} '#{version}' pkg/#{name}-#{version}.gem
|
42
|
-
|
43
|
-
To publish the archives for distro packagers:
|
44
|
-
|
45
|
-
#{pkgs.join "\n"}
|
46
|
-
|
47
|
-
================================================================================
|
48
|
-
INSTRUCTIONS
|
49
|
-
end
|
50
|
-
|
51
|
-
desc 'Release on gemcutter'
|
52
|
-
task :gemcutter => ['release:prepare', :package] do
|
53
|
-
name, version = GEMSPEC.name, GEMSPEC.version
|
29
|
+
desc 'Release on rubygems'
|
30
|
+
task rubygems: ['release:prepare', :package] do
|
31
|
+
name = GEMSPEC.name
|
32
|
+
version = GEMSPEC.version
|
54
33
|
|
55
34
|
puts <<-INSTRUCTIONS
|
56
35
|
================================================================================
|
57
36
|
|
58
|
-
To publish to
|
37
|
+
To publish to rubygems do following:
|
59
38
|
|
60
39
|
gem push pkg/#{name}-#{version}.gem
|
61
40
|
|
data/tasks/reversion.rake
CHANGED
metadata
CHANGED
@@ -1,64 +1,56 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-tk
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 2010
|
7
|
-
- 8
|
8
|
-
- 23
|
9
|
-
version: 2010.08.23
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2018.02.20
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Michael 'manveru' Fellinger
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2018-02-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
21
14
|
name: ffi
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
segments:
|
29
|
-
- 0
|
30
|
-
- 6
|
31
|
-
- 3
|
32
|
-
version: 0.6.3
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.9'
|
33
20
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: bacon
|
37
21
|
prerelease: false
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.9'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bacon
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
48
34
|
type: :development
|
49
|
-
|
50
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.2'
|
41
|
+
description: Comfortably talk with Tcl/Tk using FFI.
|
51
42
|
email: m.fellinger@gmail.com
|
52
43
|
executables: []
|
53
|
-
|
54
44
|
extensions: []
|
55
|
-
|
56
45
|
extra_rdoc_files: []
|
57
|
-
|
58
|
-
|
59
|
-
- .
|
46
|
+
files:
|
47
|
+
- ".gitignore"
|
48
|
+
- ".rubocop.yml"
|
49
|
+
- ".rubocop_todo.yml"
|
60
50
|
- AUTHORS
|
61
51
|
- CHANGELOG
|
52
|
+
- Gemfile
|
53
|
+
- Gemfile.lock
|
62
54
|
- MANIFEST
|
63
55
|
- README.md
|
64
56
|
- Rakefile
|
@@ -85,6 +77,7 @@ files:
|
|
85
77
|
- example/various.rb
|
86
78
|
- example/wait.rb
|
87
79
|
- ffi-tk.gemspec
|
80
|
+
- gemset.nix
|
88
81
|
- lib/ffi-tk.rb
|
89
82
|
- lib/ffi-tk/command.rb
|
90
83
|
- lib/ffi-tk/command/after.rb
|
@@ -186,11 +179,11 @@ files:
|
|
186
179
|
- lib/ffi-tk/widget/tile/style.rb
|
187
180
|
- lib/ffi-tk/widget/tile/treeview.rb
|
188
181
|
- lib/ffi-tk/widget/toplevel.rb
|
182
|
+
- shell.nix
|
189
183
|
- spec/ffi-tk/command/bind.rb
|
190
184
|
- spec/ffi-tk/command/bindtags.rb
|
191
185
|
- spec/ffi-tk/command/clipboard.rb
|
192
186
|
- spec/ffi-tk/command/font.rb
|
193
|
-
- spec/ffi-tk/command/grid.rb
|
194
187
|
- spec/ffi-tk/command/image.rb
|
195
188
|
- spec/ffi-tk/command/pack.rb
|
196
189
|
- spec/ffi-tk/command/place.rb
|
@@ -242,47 +235,31 @@ files:
|
|
242
235
|
- tasks/bacon.rake
|
243
236
|
- tasks/changelog.rake
|
244
237
|
- tasks/gem.rake
|
245
|
-
- tasks/gem_setup.rake
|
246
|
-
- tasks/grancher.rake
|
247
238
|
- tasks/manifest.rake
|
248
|
-
- tasks/rcov.rake
|
249
239
|
- tasks/release.rake
|
250
240
|
- tasks/reversion.rake
|
251
|
-
- tasks/setup.rake
|
252
|
-
- tasks/ycov.rake
|
253
|
-
has_rdoc: true
|
254
241
|
homepage: http://github.com/manveru/ffi-tk
|
255
|
-
licenses:
|
256
|
-
|
242
|
+
licenses:
|
243
|
+
- MIT
|
244
|
+
metadata: {}
|
257
245
|
post_install_message:
|
258
246
|
rdoc_options: []
|
259
|
-
|
260
|
-
require_paths:
|
247
|
+
require_paths:
|
261
248
|
- lib
|
262
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
263
|
-
|
264
|
-
requirements:
|
249
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
250
|
+
requirements:
|
265
251
|
- - ">="
|
266
|
-
- !ruby/object:Gem::Version
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
271
|
-
none: false
|
272
|
-
requirements:
|
252
|
+
- !ruby/object:Gem::Version
|
253
|
+
version: '0'
|
254
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
255
|
+
requirements:
|
273
256
|
- - ">="
|
274
|
-
- !ruby/object:Gem::Version
|
275
|
-
segments:
|
276
|
-
- 1
|
277
|
-
- 3
|
278
|
-
- 3
|
257
|
+
- !ruby/object:Gem::Version
|
279
258
|
version: 1.3.3
|
280
259
|
requirements: []
|
281
|
-
|
282
260
|
rubyforge_project:
|
283
|
-
rubygems_version:
|
261
|
+
rubygems_version: 2.6.13
|
284
262
|
signing_key:
|
285
|
-
specification_version:
|
263
|
+
specification_version: 4
|
286
264
|
summary: Pure Ruby FFI wrapper for the Tk GUI toolkit.
|
287
265
|
test_files: []
|
288
|
-
|
data/spec/ffi-tk/command/grid.rb
DELETED
data/tasks/gem_setup.rake
DELETED
@@ -1,113 +0,0 @@
|
|
1
|
-
task :gem_setup do
|
2
|
-
class GemSetup
|
3
|
-
def initialize(options = {}, &block)
|
4
|
-
@gems = []
|
5
|
-
@options = options.dup
|
6
|
-
@verbose = @options.delete(:verbose)
|
7
|
-
|
8
|
-
run(&block)
|
9
|
-
end
|
10
|
-
|
11
|
-
def run(&block)
|
12
|
-
return unless block_given?
|
13
|
-
instance_eval(&block)
|
14
|
-
setup
|
15
|
-
end
|
16
|
-
|
17
|
-
def gem(name, version = nil, options = {})
|
18
|
-
if version.respond_to?(:merge!)
|
19
|
-
options = version
|
20
|
-
else
|
21
|
-
options[:version] = version
|
22
|
-
end
|
23
|
-
|
24
|
-
@gems << [name, options]
|
25
|
-
end
|
26
|
-
|
27
|
-
# all gems defined, let's try to load/install them
|
28
|
-
def setup
|
29
|
-
require 'rubygems'
|
30
|
-
require 'rubygems/dependency_installer'
|
31
|
-
|
32
|
-
@gems.each do |name, options|
|
33
|
-
setup_gem(name, options)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def setup_gemspec(gemspec)
|
38
|
-
gemspec.dependencies.each do |dependency|
|
39
|
-
dependency.version_requirements.as_list.each do |version|
|
40
|
-
gem(dependency.name, version)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
setup
|
45
|
-
end
|
46
|
-
|
47
|
-
# First try to activate.
|
48
|
-
# If activation fails, try to install and activate again.
|
49
|
-
# If the second activation also fails, try to require as it may just as
|
50
|
-
# well be in $LOAD_PATH.
|
51
|
-
def setup_gem(name, options)
|
52
|
-
version = [options[:version]].compact
|
53
|
-
lib_name = options[:lib] || name
|
54
|
-
|
55
|
-
log "activating #{name}"
|
56
|
-
|
57
|
-
Gem.activate(name, *version)
|
58
|
-
rescue Gem::LoadError
|
59
|
-
log "activating #{name} failed, try to install"
|
60
|
-
|
61
|
-
install_gem(name, version, options)
|
62
|
-
end
|
63
|
-
|
64
|
-
# tell rubygems to install a gem
|
65
|
-
def install_gem(name, version, options)
|
66
|
-
installer = Gem::DependencyInstaller.new(options)
|
67
|
-
|
68
|
-
temp_argv(options[:extconf]) do
|
69
|
-
log "installing #{name}"
|
70
|
-
installer.install(name, *version)
|
71
|
-
end
|
72
|
-
|
73
|
-
Gem.activate(name, *version)
|
74
|
-
|
75
|
-
log "install and final activation successful"
|
76
|
-
rescue Gem::GemNotFoundException => ex
|
77
|
-
log "installation failed: #{ex}, use normal require"
|
78
|
-
|
79
|
-
require(options[:lib] || name)
|
80
|
-
|
81
|
-
log "require successful, cannot verify version though"
|
82
|
-
end
|
83
|
-
|
84
|
-
# prepare ARGV for rubygems installer
|
85
|
-
def temp_argv(extconf)
|
86
|
-
if extconf ||= @options[:extconf]
|
87
|
-
old_argv = ARGV.clone
|
88
|
-
ARGV.replace(extconf.split(' '))
|
89
|
-
end
|
90
|
-
|
91
|
-
yield
|
92
|
-
|
93
|
-
ensure
|
94
|
-
ARGV.replace(old_argv) if extconf
|
95
|
-
end
|
96
|
-
|
97
|
-
private
|
98
|
-
|
99
|
-
def log(msg)
|
100
|
-
return unless @verbose
|
101
|
-
|
102
|
-
if defined?(Log)
|
103
|
-
Log.info(msg)
|
104
|
-
else
|
105
|
-
puts(msg)
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def rubyforge; 'http://gems.rubyforge.org/' end
|
110
|
-
def github; 'http://gems.github.com/' end
|
111
|
-
def gemcutter; 'http://gemcutter.org' end
|
112
|
-
end
|
113
|
-
end
|