movewin 1.5 → 1.6
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 +15 -0
- data/ext/movewin/extconf.rb +83 -8
- data/lib/movewin.rb +1 -1
- metadata +24 -43
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmU4MmIyMzIxZGZiYjY4ODQ2NTQ4NDIxYWQ4ZjJlNTIwMjJhNmQyZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NWIxMjcyMDY0MzMxMzkzOTg0ZTI0MzI4ZmMxYmI5NjA0YTg0Mzk1Yg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NmNkNmNhMWRiYmM2YTBhYTNhZTYwMGE2ZTZlYWU1YTJkMmRhNjY1MTljMDhh
|
10
|
+
MjUxODk1ODhkZTljODNhOGUyNzZmNzIxNDJiZmE4ZDI5ODRmYmQ0MDQ3ZDdl
|
11
|
+
YTI5MjE5ZDNmZDM0M2Y3ZTE3YmRiOGQzYWQwMTEyZDQ0NDZkNmY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YWJmNjUyNWM0ODc0MTMwMGRlNWYzNzY4NGNkMmNlNjI1ZDQ0MzY0YmQ1YTMy
|
14
|
+
ZDBjZWE4MWNkNWM1MWIwOWU2ZjAzYjhkNjZmYjg4ODg3NDMwN2FkMjc3OWE1
|
15
|
+
ZWExN2JlNmY5MzhiZDYwZGMwNGYzODVlZjYwMWUxMTc1MGQzNDI=
|
data/ext/movewin/extconf.rb
CHANGED
@@ -1,13 +1,88 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
1
3
|
require 'mkmf'
|
4
|
+
require 'rubygems'
|
5
|
+
|
6
|
+
def main(argv = [])
|
7
|
+
$CFLAGS = '-Wall'
|
8
|
+
$LDFLAGS = '-Wall -framework Carbon'
|
9
|
+
|
10
|
+
# No have_framework() in mkmf that ships with Ruby versions earlier than 1.9
|
11
|
+
if ruby_older_than?('1.9')
|
12
|
+
have_header('Carbon/Carbon.h')
|
13
|
+
else
|
14
|
+
have_framework('Carbon')
|
15
|
+
end
|
16
|
+
|
17
|
+
# On Yosemite or newer, fix bug in Carbon header that breaks under gcc
|
18
|
+
if yosemite_or_newer? && using_gcc?
|
19
|
+
fix_dispatch_object_header!
|
20
|
+
end
|
21
|
+
|
22
|
+
create_makefile('movewin/movewin_ext')
|
23
|
+
end
|
24
|
+
|
25
|
+
# Return true if current Ruby version is older than given version
|
26
|
+
def ruby_older_than?(version)
|
27
|
+
Gem::Version.new(RUBY_VERSION) < Gem::Version.new(version)
|
28
|
+
end
|
2
29
|
|
3
|
-
#
|
4
|
-
|
5
|
-
|
6
|
-
have_framework('Carbon')
|
30
|
+
# Return true if this is OS X 10.10 (Yosemite) or newer
|
31
|
+
def yosemite_or_newer?
|
32
|
+
Gem::Version.new(`sw_vers -productVersion`) >= Gem::Version.new('10.10')
|
7
33
|
end
|
8
|
-
have_header('Carbon/Carbon.h')
|
9
34
|
|
10
|
-
|
11
|
-
|
35
|
+
# Return true if our compiler is GCC (not clang), as for RVM installed Ruby
|
36
|
+
def using_gcc?
|
37
|
+
true # TODO: make this really work
|
38
|
+
end
|
39
|
+
|
40
|
+
# Building with GCC on Yosemite (OS X 10.10) results in an error
|
41
|
+
# (https://github.com/andrewgho/movewin-ruby/issues/1).
|
42
|
+
# Patch header file to work around this issue.
|
43
|
+
def fix_dispatch_object_header!
|
44
|
+
srcfile = find_header_file('dispatch/object.h')
|
45
|
+
tmpfile = "#{File.dirname(__FILE__)}/dispatch/object.h.tmp.#{$$}"
|
46
|
+
begin
|
47
|
+
patched = false
|
48
|
+
File.open(tmpfile, 'w') do |tmpfh|
|
49
|
+
File.open(srcfile, 'r').each do |srcline|
|
50
|
+
patched ||= srcline.sub!(
|
51
|
+
/\Atypedef void \(\^dispatch_block_t\)\(void\);/,
|
52
|
+
'typedef void* dispatch_block_t;'
|
53
|
+
)
|
54
|
+
tmpfh.print(srcline)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
if patched
|
58
|
+
destfile = "#{File.dirname(__FILE__)}/dispatch/object.h"
|
59
|
+
File.rename(tmpfile, destfile)
|
60
|
+
if $CFLAGS.nil? || $CFLAGS.empty?
|
61
|
+
$CFLAGS = "-I#{File.dirname(__FILE__)}"
|
62
|
+
else
|
63
|
+
$CFLAGS += " -I#{File.dirname(__FILE__)}"
|
64
|
+
end
|
65
|
+
set_constant!(:CLEANINGS, "CLEANFILES += dispatch/object.h\n" + CLEANINGS)
|
66
|
+
end
|
67
|
+
ensure
|
68
|
+
File.unlink(tmpfile) if File.exists?(tmpfile)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# Given an #include <foo/bar.h>, return actual filename /path/to/foo/bar.h
|
73
|
+
def find_header_file(header)
|
74
|
+
# TODO: really crawl through cpp include path to find this
|
75
|
+
"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/#{header}"
|
76
|
+
end
|
77
|
+
|
78
|
+
# Redefine constant without warning (http://stackoverflow.com/q/3375360)
|
79
|
+
class Object
|
80
|
+
def set_constant!(const, value)
|
81
|
+
mod = self.is_a?(Module) ? self : self.class
|
82
|
+
mod.send(:remove_const, const) if mod.const_defined?(const)
|
83
|
+
mod.const_set(const, value)
|
84
|
+
end
|
85
|
+
end
|
12
86
|
|
13
|
-
|
87
|
+
# Run main loop and exit
|
88
|
+
exit(main(ARGV))
|
data/lib/movewin.rb
CHANGED
metadata
CHANGED
@@ -1,68 +1,49 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: movewin
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 5
|
9
|
-
version: "1.5"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '1.6'
|
10
5
|
platform: ruby
|
11
|
-
authors:
|
6
|
+
authors:
|
12
7
|
- Andrew Ho
|
13
8
|
autorequire:
|
14
9
|
bindir: bin
|
15
10
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2014-10-31 00:00:00 Z
|
11
|
+
date: 2014-11-01 00:00:00.000000000 Z
|
18
12
|
dependencies: []
|
19
|
-
|
20
13
|
description: List and move OS X windows from Ruby via the OS X accessibility APIs.
|
21
14
|
email: andrew@zeuscat.com
|
22
15
|
executables: []
|
23
|
-
|
24
|
-
extensions:
|
16
|
+
extensions:
|
25
17
|
- ext/movewin/extconf.rb
|
26
18
|
extra_rdoc_files: []
|
27
|
-
|
28
|
-
|
29
|
-
- lib/movewin.rb
|
19
|
+
files:
|
20
|
+
- ext/movewin/extconf.rb
|
30
21
|
- ext/movewin/movewin_ext.c
|
31
22
|
- ext/movewin/winutils.c
|
32
23
|
- ext/movewin/winutils.h
|
33
|
-
-
|
24
|
+
- lib/movewin.rb
|
34
25
|
homepage: https://github.com/andrewgho/movewin-ruby
|
35
|
-
licenses:
|
26
|
+
licenses:
|
36
27
|
- BSD-3-Clause
|
28
|
+
metadata: {}
|
37
29
|
post_install_message:
|
38
30
|
rdoc_options: []
|
39
|
-
|
40
|
-
require_paths:
|
31
|
+
require_paths:
|
41
32
|
- lib
|
42
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
none: false
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
hash: 3
|
57
|
-
segments:
|
58
|
-
- 0
|
59
|
-
version: "0"
|
33
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
60
43
|
requirements: []
|
61
|
-
|
62
44
|
rubyforge_project:
|
63
|
-
rubygems_version:
|
45
|
+
rubygems_version: 2.4.2
|
64
46
|
signing_key:
|
65
|
-
specification_version:
|
47
|
+
specification_version: 4
|
66
48
|
summary: List and move OS X windows from Ruby
|
67
49
|
test_files: []
|
68
|
-
|