openmeta.rb 1.3.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.ruby-version +1 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +82 -0
- data/Manifest.txt +7 -0
- data/README.md +6 -2
- data/Rakefile +2 -1
- data/bin/tag +5 -1
- data/lib/openmeta.rb +11 -144
- data/lib/openmeta/cli.rb +2 -3
- data/lib/openmeta/macruby.rb +135 -0
- data/lib/openmeta/rubycocoa.rb +136 -0
- data/lib/openmeta/ui.rb +70 -16
- data/lib/openmeta/version.rb +1 -1
- data/openmeta.rb.gemspec +75 -0
- data/spec/openmeta_spec.rb +1 -1
- metadata +78 -39
- metadata.gz.sig +2 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA512:
|
3
|
-
|
4
|
-
|
3
|
+
metadata.gz: d3cbb967f94078ab1c98eb9573913ae74ad47f27f30b17889a9a5a93f5fa3d4eb61071f5c388a6f4b1865140b3780d5ff3ee23c2053047198cd2162d660ecc21
|
4
|
+
data.tar.gz: 0cb6ad96a3963b615cc6cb5b2df092ddfe567288a323f36e97c73ce9728cbc2049a4c3aad0b2a3e97952b8259e1779a88069ff6596d216680cf8a1192c512ac8
|
5
5
|
SHA1:
|
6
|
-
|
7
|
-
|
6
|
+
metadata.gz: 8485e0d7a2165ec2dceec75eff4826048974ff92
|
7
|
+
data.tar.gz: d0b52db16d76e20620676a06d4e397eb31d8c12b
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
system
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
openmeta.rb (1.3.3.20130503185054)
|
5
|
+
filetype (~> 0.3.0)
|
6
|
+
thor (~> 0.18.0)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
coderay (1.0.9)
|
12
|
+
diff-lcs (1.2.4)
|
13
|
+
ffi (1.8.1)
|
14
|
+
filetype (0.3.0)
|
15
|
+
formatador (0.2.4)
|
16
|
+
growl (1.0.3)
|
17
|
+
guard (1.8.0)
|
18
|
+
formatador (>= 0.2.4)
|
19
|
+
listen (>= 1.0.0)
|
20
|
+
lumberjack (>= 1.0.2)
|
21
|
+
pry (>= 0.9.10)
|
22
|
+
thor (>= 0.14.6)
|
23
|
+
guard-rspec (2.6.0)
|
24
|
+
guard (>= 1.8)
|
25
|
+
rspec (~> 2.13)
|
26
|
+
hoe (3.6.0)
|
27
|
+
rake (>= 0.8, < 11.0)
|
28
|
+
hoe-bundler (1.2.0)
|
29
|
+
hoe (>= 2.2.0)
|
30
|
+
hoe-gemspec (1.0.0)
|
31
|
+
hoe (>= 2.2.0)
|
32
|
+
hoe-git (1.5.0)
|
33
|
+
hoe (>= 2.2.0)
|
34
|
+
hoe-version (1.2.0)
|
35
|
+
json (1.7.7)
|
36
|
+
listen (1.0.3)
|
37
|
+
rb-fsevent (>= 0.9.3)
|
38
|
+
rb-inotify (>= 0.9)
|
39
|
+
rb-kqueue (>= 0.2)
|
40
|
+
lumberjack (1.0.3)
|
41
|
+
method_source (0.8.1)
|
42
|
+
pry (0.9.12.1)
|
43
|
+
coderay (~> 1.0.5)
|
44
|
+
method_source (~> 0.8)
|
45
|
+
slop (~> 3.4)
|
46
|
+
rake (10.0.4)
|
47
|
+
rb-fsevent (0.9.3)
|
48
|
+
rb-inotify (0.9.0)
|
49
|
+
ffi (>= 0.5.0)
|
50
|
+
rb-kqueue (0.2.0)
|
51
|
+
ffi (>= 0.5.0)
|
52
|
+
rdoc (4.0.1)
|
53
|
+
json (~> 1.4)
|
54
|
+
rspec (2.13.0)
|
55
|
+
rspec-core (~> 2.13.0)
|
56
|
+
rspec-expectations (~> 2.13.0)
|
57
|
+
rspec-mocks (~> 2.13.0)
|
58
|
+
rspec-core (2.13.1)
|
59
|
+
rspec-expectations (2.13.0)
|
60
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
61
|
+
rspec-mocks (2.13.1)
|
62
|
+
slop (3.4.4)
|
63
|
+
terminal-notifier-guard (1.5.3)
|
64
|
+
thor (0.18.1)
|
65
|
+
|
66
|
+
PLATFORMS
|
67
|
+
ruby
|
68
|
+
|
69
|
+
DEPENDENCIES
|
70
|
+
growl
|
71
|
+
guard
|
72
|
+
guard-rspec
|
73
|
+
hoe
|
74
|
+
hoe-bundler
|
75
|
+
hoe-gemspec
|
76
|
+
hoe-git
|
77
|
+
hoe-version
|
78
|
+
openmeta.rb!
|
79
|
+
rake (>= 10.0.0)
|
80
|
+
rdoc (~> 4.0)
|
81
|
+
rspec (>= 2.13)
|
82
|
+
terminal-notifier-guard
|
data/Manifest.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
.gemtest
|
2
|
+
.ruby-version
|
3
|
+
Gemfile
|
4
|
+
Gemfile.lock
|
1
5
|
Guardfile
|
2
6
|
History.txt
|
3
7
|
Manifest.txt
|
@@ -17,7 +21,10 @@ lib/openmeta/framework/OpenMeta.framework/Versions/A/Resources/Info.plist
|
|
17
21
|
lib/openmeta/framework/OpenMeta.framework/Versions/A/Resources/en.lproj/InfoPlist.strings
|
18
22
|
lib/openmeta/framework/OpenMeta.framework/Versions/Current
|
19
23
|
lib/openmeta/friendly_errors.rb
|
24
|
+
lib/openmeta/macruby.rb
|
25
|
+
lib/openmeta/rubycocoa.rb
|
20
26
|
lib/openmeta/ui.rb
|
21
27
|
lib/openmeta/version.rb
|
28
|
+
openmeta.rb.gemspec
|
22
29
|
spec/openmeta_spec.rb
|
23
30
|
spec/spec_helper.rb
|
data/README.md
CHANGED
@@ -8,11 +8,12 @@
|
|
8
8
|
|
9
9
|
## DESCRIPTION:
|
10
10
|
|
11
|
-
openMeta in Ruby (
|
11
|
+
openMeta in Ruby (support mac system native ruby 1.8, and MacRuby). This gem ports [openmeta]( http://code.google.com/p/openmeta/ ) api to ruby using framework.
|
12
12
|
|
13
13
|
|
14
14
|
## INSTALLATION:
|
15
15
|
|
16
|
+
* `[sudo] gem install openmeta.rb`
|
16
17
|
* `[sudo] macgem install openmeta.rb`
|
17
18
|
|
18
19
|
|
@@ -58,7 +59,9 @@ openMeta in Ruby (MacRuby, more exactly!). This gem ports [openmeta]( http://cod
|
|
58
59
|
|
59
60
|
### 1. Macruby Slow Startup
|
60
61
|
|
61
|
-
|
62
|
+
A. Version 2.0+ support native mac ruby 1.8. Use system ruby instead.
|
63
|
+
|
64
|
+
B. This is a [known commnon issue of macruby]( https://github.com/MacRuby/MacRuby/wiki/Common-Issues ).
|
62
65
|
One thing recommended is to add `VM_OPT_LEVEL=0` in front of the command line like
|
63
66
|
|
64
67
|
```bash
|
@@ -67,6 +70,7 @@ alias tag='VM_OPT_LEVEL=0 /usr/local/bin/tag'
|
|
67
70
|
|
68
71
|
In my environment, the startup time for the `tag` command is about 1 second.
|
69
72
|
|
73
|
+
|
70
74
|
## DEVELOPERS:
|
71
75
|
|
72
76
|
After checking out the source, run:
|
data/Rakefile
CHANGED
data/bin/tag
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
#!/usr/bin/
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# Trap interrupts to quit cleanly. See
|
4
|
+
# https://twitter.com/mitchellh/status/283014103189053442
|
5
|
+
Signal.trap("INT") { exit 1 }
|
2
6
|
|
3
7
|
($LOAD_PATH << File.expand_path("../../lib", __FILE__)).uniq!
|
4
8
|
require 'rubygems' unless defined? Gem # rubygems is only needed in 1.8
|
data/lib/openmeta.rb
CHANGED
@@ -1,151 +1,18 @@
|
|
1
|
-
#!/usr/bin/env
|
1
|
+
#!/usr/bin/env ruby
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
|
-
|
5
|
-
begin
|
6
|
-
MACRUBY_VERSION
|
7
|
-
return true
|
8
|
-
rescue
|
9
|
-
return false
|
10
|
-
end
|
11
|
-
end
|
4
|
+
($LOAD_PATH << File.expand_path("../openmeta/framework", __FILE__)).uniq!
|
12
5
|
|
13
|
-
if
|
14
|
-
($LOAD_PATH << File.expand_path("../openmeta/framework", __FILE__)).uniq!
|
6
|
+
if defined? MACRUBY_VERSION
|
15
7
|
framework "OpenMeta"
|
8
|
+
require 'openmeta/macruby'
|
9
|
+
elsif RUBY_VERSION < "1.9"
|
10
|
+
|
11
|
+
require 'osx/cocoa'
|
12
|
+
OSX::require_framework 'OpenMeta'
|
13
|
+
require 'rubygems'
|
14
|
+
require 'openmeta/rubycocoa'
|
16
15
|
else
|
17
|
-
raise NotImplementedError, "
|
18
|
-
end
|
19
|
-
|
20
|
-
require 'openmeta/version'
|
21
|
-
require 'openmeta/ui'
|
22
|
-
module Openmeta
|
23
|
-
class OpenmetaError < RuntimeError
|
24
|
-
def self.status_code(code)
|
25
|
-
define_method(:status_code) { code }
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class ObjCError < OpenmetaError; status_code(1) ; end
|
30
|
-
class RangeError < OpenmetaError; status_code(2) ; end
|
31
|
-
class NoMethodError < OpenmetaError; status_code(13) ; end
|
32
|
-
class PathError < OpenmetaError; status_code(14) ; end
|
33
|
-
class DslError < OpenmetaError; status_code(15) ; end
|
34
|
-
|
35
|
-
|
36
|
-
class << self
|
37
|
-
attr_writer :ui, :error
|
38
|
-
|
39
|
-
def ui
|
40
|
-
@ui ||= UI.new
|
41
|
-
end
|
42
|
-
|
43
|
-
def error
|
44
|
-
@error ||= error = Pointer.new(:id)
|
45
|
-
end
|
46
|
-
|
47
|
-
# **note** returned array are frozen
|
48
|
-
def get_tags(path)
|
49
|
-
tags = OpenMeta.getUserTags(File.expand_path(path), error:error)
|
50
|
-
if error.value
|
51
|
-
raise Openmeta::ObjCError, error.value.inspect
|
52
|
-
end
|
53
|
-
tags
|
54
|
-
end
|
55
|
-
|
56
|
-
def set_tags(new_tags, path)
|
57
|
-
path = File.expand_path(path)
|
58
|
-
|
59
|
-
existing_tags = OpenMeta.getUserTags(path, error:error)
|
60
|
-
if error.value
|
61
|
-
raise Openmeta::ObjCError, error.value.inspect
|
62
|
-
end
|
63
|
-
|
64
|
-
if e = OpenMeta.setUserTags(new_tags, path:path)
|
65
|
-
raise Openmeta::ObjCError, e.inspect
|
66
|
-
end
|
67
|
-
|
68
|
-
OpenMetaPrefs.updatePrefsRecentTags(existing_tags, newTags:new_tags)
|
69
|
-
end
|
70
|
-
|
71
|
-
def add_tags(new_tags, to_files)
|
72
|
-
to_files = fu_list(to_files)
|
73
|
-
|
74
|
-
to_files.each { |file|
|
75
|
-
existing_tags = get_tags(file)
|
76
|
-
|
77
|
-
if e = OpenMeta.addUserTags(new_tags, path:file)
|
78
|
-
raise Openmeta::ObjCError, e.inspect
|
79
|
-
end
|
80
|
-
|
81
|
-
OpenMetaPrefs.updatePrefsRecentTags(existing_tags, newTags:new_tags)
|
82
|
-
}
|
83
|
-
end
|
84
|
-
|
85
|
-
def remove_tags(tags, from_files)
|
86
|
-
from_files = fu_list(from_files)
|
87
|
-
|
88
|
-
return if tags.empty?
|
89
|
-
|
90
|
-
from_files.each { |file|
|
91
|
-
existing_tags = get_tags(file) # frozen array
|
92
|
-
next if existing_tags.nil? or existing_tags.empty?
|
93
|
-
|
94
|
-
set_tags(existing_tags - tags, file)
|
95
|
-
}
|
96
|
-
end
|
97
|
-
|
98
|
-
def get_rating(path)
|
99
|
-
rating = OpenMeta.getRating(File.expand_path(path), error:error)
|
100
|
-
if error.value
|
101
|
-
raise Openmeta::ObjCError, error.value.inspect
|
102
|
-
end
|
103
|
-
rating
|
104
|
-
end
|
105
|
-
|
106
|
-
def set_rating(rating, path)
|
107
|
-
e = OpenMeta.setRating(rating, path:File.expand_path(path))
|
108
|
-
if e
|
109
|
-
raise Openmeta::ObjCError, e.inspect
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
def clone(from_file, to_files)
|
114
|
-
|
115
|
-
unless File.exist?(from_file)
|
116
|
-
raise Openmeta::PathError, "#{from_file} does not exist!"
|
117
|
-
end
|
118
|
-
|
119
|
-
tags = get_tags(from_file)
|
120
|
-
rating = get_rating(from_file)
|
121
|
-
|
122
|
-
to_files = fu_list(to_files)
|
123
|
-
to_files.each { |file|
|
124
|
-
set_tags(tags, file) unless (tags == nil or tags.empty?)
|
125
|
-
set_rating(rating, file) unless rating == 0.0
|
126
|
-
}
|
127
|
-
end
|
128
|
-
|
129
|
-
def clear(files)
|
130
|
-
files = fu_list(files)
|
131
|
-
files.each { |file|
|
132
|
-
set_tags([], file)
|
133
|
-
set_rating(0.0, file)
|
134
|
-
}
|
135
|
-
end
|
136
|
-
|
137
|
-
|
138
|
-
def recent_tags
|
139
|
-
OpenMetaPrefs.recentTags
|
140
|
-
end
|
141
|
-
|
142
|
-
private
|
143
|
-
|
144
|
-
def fu_list(arg) #:nodoc:
|
145
|
-
[arg].flatten.map {|path| File.path(path) }
|
146
|
-
end
|
147
|
-
|
148
|
-
end
|
149
|
-
|
16
|
+
raise NotImplementedError, "(openmeta.rb) only work with macruby or system ruby"
|
150
17
|
end
|
151
18
|
|
data/lib/openmeta/cli.rb
CHANGED
@@ -7,9 +7,8 @@ module Openmeta
|
|
7
7
|
|
8
8
|
def initialize(*)
|
9
9
|
super
|
10
|
-
|
11
|
-
Openmeta.ui =
|
12
|
-
Openmeta.ui.debug! if options["verbose"]
|
10
|
+
Openmeta.ui = UI::Shell.new(options)
|
11
|
+
Openmeta.ui.level = "debug" if options["verbose"]
|
13
12
|
end
|
14
13
|
|
15
14
|
desc "recent", "print recent tags"
|
@@ -0,0 +1,135 @@
|
|
1
|
+
#!/usr/bin/env macruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
require 'openmeta/version'
|
5
|
+
require 'openmeta/ui'
|
6
|
+
module Openmeta
|
7
|
+
class OpenmetaError < RuntimeError
|
8
|
+
def self.status_code(code)
|
9
|
+
define_method(:status_code) { code }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class ObjCError < OpenmetaError; status_code(1) ; end
|
14
|
+
class RangeError < OpenmetaError; status_code(2) ; end
|
15
|
+
class NoMethodError < OpenmetaError; status_code(13) ; end
|
16
|
+
class PathError < OpenmetaError; status_code(14) ; end
|
17
|
+
class DslError < OpenmetaError; status_code(15) ; end
|
18
|
+
|
19
|
+
|
20
|
+
class << self
|
21
|
+
attr_writer :ui, :error
|
22
|
+
|
23
|
+
def ui
|
24
|
+
@ui ||= UI.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def error
|
28
|
+
@error ||= Pointer.new(:id)
|
29
|
+
end
|
30
|
+
|
31
|
+
# **note** returned array are frozen
|
32
|
+
def get_tags(path)
|
33
|
+
tags = OpenMeta.getUserTags(File.expand_path(path), error:error)
|
34
|
+
if error.value
|
35
|
+
raise Openmeta::ObjCError, error.value.inspect
|
36
|
+
end
|
37
|
+
tags
|
38
|
+
end
|
39
|
+
|
40
|
+
def set_tags(new_tags, path)
|
41
|
+
path = File.expand_path(path)
|
42
|
+
|
43
|
+
existing_tags = OpenMeta.getUserTags(path, error:error)
|
44
|
+
if error.value
|
45
|
+
raise Openmeta::ObjCError, error.value.inspect
|
46
|
+
end
|
47
|
+
|
48
|
+
if e = OpenMeta.setUserTags(new_tags, path:path)
|
49
|
+
raise Openmeta::ObjCError, e.inspect
|
50
|
+
end
|
51
|
+
|
52
|
+
OpenMetaPrefs.updatePrefsRecentTags(existing_tags, newTags:new_tags)
|
53
|
+
end
|
54
|
+
|
55
|
+
def add_tags(new_tags, to_files)
|
56
|
+
to_files = fu_list(to_files)
|
57
|
+
|
58
|
+
to_files.each { |file|
|
59
|
+
existing_tags = get_tags(file)
|
60
|
+
|
61
|
+
if e = OpenMeta.addUserTags(new_tags, path:file)
|
62
|
+
raise Openmeta::ObjCError, e.inspect
|
63
|
+
end
|
64
|
+
|
65
|
+
OpenMetaPrefs.updatePrefsRecentTags(existing_tags, newTags:new_tags)
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
def remove_tags(tags, from_files)
|
70
|
+
from_files = fu_list(from_files)
|
71
|
+
|
72
|
+
return if tags.empty?
|
73
|
+
|
74
|
+
from_files.each { |file|
|
75
|
+
existing_tags = get_tags(file) # frozen array
|
76
|
+
next if existing_tags.nil? or existing_tags.empty?
|
77
|
+
|
78
|
+
set_tags(existing_tags - tags, file)
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_rating(path)
|
83
|
+
rating = OpenMeta.getRating(File.expand_path(path), error:error)
|
84
|
+
if error.value
|
85
|
+
raise Openmeta::ObjCError, error.value.inspect
|
86
|
+
end
|
87
|
+
rating
|
88
|
+
end
|
89
|
+
|
90
|
+
def set_rating(rating, path)
|
91
|
+
e = OpenMeta.setRating(rating, path:File.expand_path(path))
|
92
|
+
if e
|
93
|
+
raise Openmeta::ObjCError, e.inspect
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def clone(from_file, to_files)
|
98
|
+
|
99
|
+
unless File.exist?(from_file)
|
100
|
+
raise Openmeta::PathError, "#{from_file} does not exist!"
|
101
|
+
end
|
102
|
+
|
103
|
+
tags = get_tags(from_file)
|
104
|
+
rating = get_rating(from_file)
|
105
|
+
|
106
|
+
to_files = fu_list(to_files)
|
107
|
+
to_files.each { |file|
|
108
|
+
set_tags(tags, file) unless (tags == nil or tags.empty?)
|
109
|
+
set_rating(rating, file) unless rating == 0.0
|
110
|
+
}
|
111
|
+
end
|
112
|
+
|
113
|
+
def clear(files)
|
114
|
+
files = fu_list(files)
|
115
|
+
files.each { |file|
|
116
|
+
set_tags([], file)
|
117
|
+
set_rating(0.0, file)
|
118
|
+
}
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
def recent_tags
|
123
|
+
OpenMetaPrefs.recentTags
|
124
|
+
end
|
125
|
+
|
126
|
+
private
|
127
|
+
|
128
|
+
def fu_list(arg) #:nodoc:
|
129
|
+
[arg].flatten.map {|path| File.expand_path(path) }
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
@@ -0,0 +1,136 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
require 'openmeta/version'
|
5
|
+
require 'openmeta/ui'
|
6
|
+
module Openmeta
|
7
|
+
class OpenmetaError < RuntimeError
|
8
|
+
def self.status_code(code)
|
9
|
+
define_method(:status_code) { code }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class ObjCError < OpenmetaError; status_code(1) ; end
|
14
|
+
class RangeError < OpenmetaError; status_code(2) ; end
|
15
|
+
class NoMethodError < OpenmetaError; status_code(13) ; end
|
16
|
+
class PathError < OpenmetaError; status_code(14) ; end
|
17
|
+
class DslError < OpenmetaError; status_code(15) ; end
|
18
|
+
|
19
|
+
|
20
|
+
class << self
|
21
|
+
attr_writer :ui, :error
|
22
|
+
|
23
|
+
def ui
|
24
|
+
@ui ||= UI.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def error
|
28
|
+
@error ||= OSX::NSError.new
|
29
|
+
end
|
30
|
+
|
31
|
+
# **note** returned array are frozen
|
32
|
+
def get_tags(path)
|
33
|
+
path = File.expand_path(path)
|
34
|
+
unless File.exist?(path)
|
35
|
+
raise Openmeta::ObjCError, "#{path} does not exist!"
|
36
|
+
end
|
37
|
+
OSX::OpenMeta.getUserTags_error_(path, error)
|
38
|
+
end
|
39
|
+
|
40
|
+
def set_tags(new_tags, path)
|
41
|
+
path = File.expand_path(path)
|
42
|
+
|
43
|
+
unless File.exist?(path)
|
44
|
+
raise Openmeta::ObjCError, "#{path} does not exist!"
|
45
|
+
end
|
46
|
+
existing_tags = OSX::OpenMeta.getUserTags_error_(path, error)
|
47
|
+
|
48
|
+
if e = OSX::OpenMeta.setUserTags_path_(new_tags, path)
|
49
|
+
raise Openmeta::ObjCError, e.inspect
|
50
|
+
end
|
51
|
+
|
52
|
+
OSX::OpenMetaPrefs.updatePrefsRecentTags_newTags_(existing_tags, new_tags)
|
53
|
+
end
|
54
|
+
|
55
|
+
def add_tags(new_tags, to_files)
|
56
|
+
to_files = fu_list(to_files)
|
57
|
+
|
58
|
+
to_files.each { |file|
|
59
|
+
existing_tags = get_tags(file)
|
60
|
+
|
61
|
+
if e = OSX::OpenMeta.addUserTags_path_(new_tags, file)
|
62
|
+
raise Openmeta::ObjCError, e.inspect
|
63
|
+
end
|
64
|
+
|
65
|
+
OSX::OpenMetaPrefs.updatePrefsRecentTags_newTags_(existing_tags, new_tags)
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
def remove_tags(tags, from_files)
|
70
|
+
from_files = fu_list(from_files)
|
71
|
+
|
72
|
+
return if tags.empty?
|
73
|
+
|
74
|
+
from_files.each { |file|
|
75
|
+
existing_tags = get_tags(file) # frozen array
|
76
|
+
next if existing_tags.nil? or existing_tags.empty?
|
77
|
+
|
78
|
+
set_tags(existing_tags - tags, file)
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_rating(path)
|
83
|
+
path = File.expand_path(path)
|
84
|
+
unless File.exist?(path)
|
85
|
+
raise Openmeta::ObjCError, "#{path} does not exist!"
|
86
|
+
end
|
87
|
+
|
88
|
+
OSX::OpenMeta.getRating_error_(path, error)
|
89
|
+
end
|
90
|
+
|
91
|
+
def set_rating(rating, path)
|
92
|
+
e = OSX::OpenMeta.setRating_path_(rating, File.expand_path(path))
|
93
|
+
if e
|
94
|
+
raise Openmeta::ObjCError, e.inspect
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def clone(from_file, to_files)
|
99
|
+
|
100
|
+
unless File.exist?(from_file)
|
101
|
+
raise Openmeta::PathError, "#{from_file} does not exist!"
|
102
|
+
end
|
103
|
+
|
104
|
+
tags = get_tags(from_file)
|
105
|
+
rating = get_rating(from_file)
|
106
|
+
|
107
|
+
to_files = fu_list(to_files)
|
108
|
+
to_files.each { |file|
|
109
|
+
set_tags(tags, file) unless (tags == nil or tags.empty?)
|
110
|
+
set_rating(rating, file) unless rating == 0.0
|
111
|
+
}
|
112
|
+
end
|
113
|
+
|
114
|
+
def clear(files)
|
115
|
+
files = fu_list(files)
|
116
|
+
files.each { |file|
|
117
|
+
set_tags([], file)
|
118
|
+
set_rating(0.0, file)
|
119
|
+
}
|
120
|
+
end
|
121
|
+
|
122
|
+
|
123
|
+
def recent_tags
|
124
|
+
OSX::OpenMetaPrefs.recentTags
|
125
|
+
end
|
126
|
+
|
127
|
+
private
|
128
|
+
|
129
|
+
def fu_list(arg) #:nodoc:
|
130
|
+
[arg].flatten.map {|path| File.expand_path(path) }
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
136
|
+
|
data/lib/openmeta/ui.rb
CHANGED
@@ -6,6 +6,9 @@ module Openmeta
|
|
6
6
|
def debug(message, newline = nil)
|
7
7
|
end
|
8
8
|
|
9
|
+
def trace(message, newline = nil)
|
10
|
+
end
|
11
|
+
|
9
12
|
def error(message, newline = nil)
|
10
13
|
end
|
11
14
|
|
@@ -19,55 +22,106 @@ module Openmeta
|
|
19
22
|
false
|
20
23
|
end
|
21
24
|
|
25
|
+
def ask(message)
|
26
|
+
end
|
27
|
+
|
22
28
|
class Shell < UI
|
29
|
+
LEVELS = %w(silent error warn confirm info debug)
|
30
|
+
|
23
31
|
attr_writer :shell
|
24
32
|
|
25
|
-
def initialize(
|
26
|
-
|
27
|
-
|
28
|
-
|
33
|
+
def initialize(options = {})
|
34
|
+
if options["no-color"] || !STDOUT.tty?
|
35
|
+
Thor::Base.shell = Thor::Shell::Basic
|
36
|
+
end
|
37
|
+
@shell = Thor::Base.shell.new
|
38
|
+
@level = ENV['DEBUG'] ? "debug" : "info"
|
29
39
|
end
|
30
40
|
|
31
41
|
def info(msg, newline = nil)
|
32
|
-
tell_me(msg, nil, newline) if
|
42
|
+
tell_me(msg, nil, newline) if level("info")
|
33
43
|
end
|
34
44
|
|
35
45
|
def confirm(msg, newline = nil)
|
36
|
-
tell_me(msg, :green, newline) if
|
46
|
+
tell_me(msg, :green, newline) if level("confirm")
|
37
47
|
end
|
38
48
|
|
39
49
|
def warn(msg, newline = nil)
|
40
|
-
tell_me(msg, :yellow, newline)
|
50
|
+
tell_me(msg, :yellow, newline) if level("warn")
|
41
51
|
end
|
42
52
|
|
43
53
|
def error(msg, newline = nil)
|
44
|
-
tell_me(msg, :red, newline)
|
54
|
+
tell_me(msg, :red, newline) if level("error")
|
45
55
|
end
|
46
56
|
|
47
|
-
def
|
48
|
-
|
57
|
+
def debug(msg, newline = nil)
|
58
|
+
tell_me(msg, nil, newline) if level("debug")
|
49
59
|
end
|
50
60
|
|
51
61
|
def debug?
|
52
62
|
# needs to be false instead of nil to be newline param to other methods
|
53
|
-
|
63
|
+
level("debug")
|
54
64
|
end
|
55
65
|
|
56
|
-
def
|
57
|
-
@
|
66
|
+
def quiet?
|
67
|
+
LEVELS.index(@level) <= LEVELS.index("warn")
|
58
68
|
end
|
59
69
|
|
60
|
-
def
|
61
|
-
|
70
|
+
def ask(msg)
|
71
|
+
@shell.ask(msg)
|
72
|
+
end
|
73
|
+
|
74
|
+
def level=(level)
|
75
|
+
raise ArgumentError unless LEVELS.include?(level.to_s)
|
76
|
+
@level = level
|
77
|
+
end
|
78
|
+
|
79
|
+
def level(name = nil)
|
80
|
+
name ? LEVELS.index(name) <= LEVELS.index(@level) : @level
|
81
|
+
end
|
82
|
+
|
83
|
+
def trace(e, newline = nil)
|
84
|
+
msg = ["#{e.class}: #{e.message}", *e.backtrace].join("\n")
|
85
|
+
if debug?
|
86
|
+
tell_me(msg, nil, newline)
|
87
|
+
elsif @trace
|
88
|
+
STDERR.puts "#{msg}#{newline}"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def silence
|
93
|
+
old_level, @level = @level, "silent"
|
94
|
+
yield
|
95
|
+
ensure
|
96
|
+
@level = old_level
|
62
97
|
end
|
63
98
|
|
64
99
|
private
|
100
|
+
|
65
101
|
# valimism
|
66
102
|
def tell_me(msg, color = nil, newline = nil)
|
67
|
-
|
103
|
+
msg = word_wrap(msg) if newline.is_a?(Hash) && newline[:wrap]
|
104
|
+
if newline.nil?
|
105
|
+
@shell.say(msg, color)
|
106
|
+
else
|
107
|
+
@shell.say(msg, color, newline)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def strip_leading_spaces(text)
|
112
|
+
spaces = text[/\A\s+/, 0]
|
113
|
+
spaces ? text.gsub(/#{spaces}/, '') : text
|
114
|
+
end
|
115
|
+
|
116
|
+
def word_wrap(text, line_width = @shell.terminal_width)
|
117
|
+
strip_leading_spaces(text).split("\n").collect do |line|
|
118
|
+
line.length > line_width ? line.gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip : line
|
119
|
+
end * "\n"
|
68
120
|
end
|
69
121
|
end
|
70
122
|
|
71
123
|
end
|
72
124
|
end
|
73
125
|
|
126
|
+
|
127
|
+
|
data/lib/openmeta/version.rb
CHANGED
data/openmeta.rb.gemspec
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "openmeta.rb"
|
5
|
+
s.version = "1.3.3.20130503185054"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Zhao Cai"]
|
9
|
+
s.cert_chain = ["/Users/zhaocai/.gem/gem-public_cert.pem"]
|
10
|
+
s.date = "2013-05-03"
|
11
|
+
s.description = "openMeta in Ruby (MacRuby, more exactly!). This gem ports [openmeta]( http://code.google.com/p/openmeta/ ) api to macruby using framework."
|
12
|
+
s.email = ["caizhaoff@gmail.com"]
|
13
|
+
s.executables = ["tag"]
|
14
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.md"]
|
15
|
+
s.files = ["Guardfile", "History.txt", "Manifest.txt", "README.md", "Rakefile", "bin/tag", "lib/openmeta.rb", "lib/openmeta/cli.rb", "lib/openmeta/framework/OpenMeta.framework/Headers", "lib/openmeta/framework/OpenMeta.framework/OpenMeta", "lib/openmeta/framework/OpenMeta.framework/Resources", "lib/openmeta/framework/OpenMeta.framework/Versions/A/Headers/OpenMeta.h", "lib/openmeta/framework/OpenMeta.framework/Versions/A/Headers/OpenMetaBackup.h", "lib/openmeta/framework/OpenMeta.framework/Versions/A/Headers/OpenMetaPrefs.h", "lib/openmeta/framework/OpenMeta.framework/Versions/A/OpenMeta", "lib/openmeta/framework/OpenMeta.framework/Versions/A/Resources/Info.plist", "lib/openmeta/framework/OpenMeta.framework/Versions/A/Resources/en.lproj/InfoPlist.strings", "lib/openmeta/framework/OpenMeta.framework/Versions/Current", "lib/openmeta/friendly_errors.rb", "lib/openmeta/ui.rb", "lib/openmeta/version.rb", "spec/openmeta_spec.rb", "spec/spec_helper.rb", ".gemtest"]
|
16
|
+
s.homepage = "http://zhaocai.github.com/openmeta.rb"
|
17
|
+
s.licenses = ["GPL-3"]
|
18
|
+
s.rdoc_options = ["--main", "README.md"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = "openmeta.rb"
|
21
|
+
s.rubygems_version = "2.0.3"
|
22
|
+
s.signing_key = "/Users/zhaocai/.gem/gem-private_key.pem"
|
23
|
+
s.summary = "openMeta in Ruby (MacRuby, more exactly!)"
|
24
|
+
|
25
|
+
if s.respond_to? :specification_version then
|
26
|
+
s.specification_version = 4
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
29
|
+
s.add_runtime_dependency(%q<thor>, ["~> 0.18.0"])
|
30
|
+
s.add_runtime_dependency(%q<filetype>, ["~> 0.3.0"])
|
31
|
+
s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
|
32
|
+
s.add_development_dependency(%q<rspec>, [">= 2.13"])
|
33
|
+
s.add_development_dependency(%q<rake>, [">= 10.0.0"])
|
34
|
+
s.add_development_dependency(%q<hoe>, [">= 0"])
|
35
|
+
s.add_development_dependency(%q<hoe-gemspec>, [">= 0"])
|
36
|
+
s.add_development_dependency(%q<hoe-git>, [">= 0"])
|
37
|
+
s.add_development_dependency(%q<hoe-version>, [">= 0"])
|
38
|
+
s.add_development_dependency(%q<hoe-bundler>, [">= 0"])
|
39
|
+
s.add_development_dependency(%q<guard>, [">= 0"])
|
40
|
+
s.add_development_dependency(%q<guard-rspec>, [">= 0"])
|
41
|
+
s.add_development_dependency(%q<terminal-notifier-guard>, [">= 0"])
|
42
|
+
s.add_development_dependency(%q<growl>, [">= 0"])
|
43
|
+
else
|
44
|
+
s.add_dependency(%q<thor>, ["~> 0.18.0"])
|
45
|
+
s.add_dependency(%q<filetype>, ["~> 0.3.0"])
|
46
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
47
|
+
s.add_dependency(%q<rspec>, [">= 2.13"])
|
48
|
+
s.add_dependency(%q<rake>, [">= 10.0.0"])
|
49
|
+
s.add_dependency(%q<hoe>, [">= 0"])
|
50
|
+
s.add_dependency(%q<hoe-gemspec>, [">= 0"])
|
51
|
+
s.add_dependency(%q<hoe-git>, [">= 0"])
|
52
|
+
s.add_dependency(%q<hoe-version>, [">= 0"])
|
53
|
+
s.add_dependency(%q<hoe-bundler>, [">= 0"])
|
54
|
+
s.add_dependency(%q<guard>, [">= 0"])
|
55
|
+
s.add_dependency(%q<guard-rspec>, [">= 0"])
|
56
|
+
s.add_dependency(%q<terminal-notifier-guard>, [">= 0"])
|
57
|
+
s.add_dependency(%q<growl>, [">= 0"])
|
58
|
+
end
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<thor>, ["~> 0.18.0"])
|
61
|
+
s.add_dependency(%q<filetype>, ["~> 0.3.0"])
|
62
|
+
s.add_dependency(%q<rdoc>, ["~> 4.0"])
|
63
|
+
s.add_dependency(%q<rspec>, [">= 2.13"])
|
64
|
+
s.add_dependency(%q<rake>, [">= 10.0.0"])
|
65
|
+
s.add_dependency(%q<hoe>, [">= 0"])
|
66
|
+
s.add_dependency(%q<hoe-gemspec>, [">= 0"])
|
67
|
+
s.add_dependency(%q<hoe-git>, [">= 0"])
|
68
|
+
s.add_dependency(%q<hoe-version>, [">= 0"])
|
69
|
+
s.add_dependency(%q<hoe-bundler>, [">= 0"])
|
70
|
+
s.add_dependency(%q<guard>, [">= 0"])
|
71
|
+
s.add_dependency(%q<guard-rspec>, [">= 0"])
|
72
|
+
s.add_dependency(%q<terminal-notifier-guard>, [">= 0"])
|
73
|
+
s.add_dependency(%q<growl>, [">= 0"])
|
74
|
+
end
|
75
|
+
end
|
data/spec/openmeta_spec.rb
CHANGED
@@ -11,7 +11,7 @@ describe "Openmeta" do
|
|
11
11
|
FileUtils .touch @testfiles
|
12
12
|
end
|
13
13
|
|
14
|
-
it "should return raise
|
14
|
+
it "should return raise Openmeta::ObjcError if file does not exist" do
|
15
15
|
expect { Openmeta.get_tags("/path/to/nowhere") }.to raise_error(Openmeta::ObjCError)
|
16
16
|
end
|
17
17
|
|
metadata
CHANGED
@@ -1,15 +1,37 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openmeta.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zhao Cai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDdDCCAlygAwIBAgIBATANBgkqhkiG9w0BAQUFADBAMRIwEAYDVQQDDAljYWl6
|
14
|
+
aGFvZmYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
15
|
+
bTAeFw0xMzA0MTYxMzAxMzlaFw0xNDA0MTYxMzAxMzlaMEAxEjAQBgNVBAMMCWNh
|
16
|
+
aXpoYW9mZjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYD
|
17
|
+
Y29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu2zqh0u+TbhY5kNf
|
18
|
+
Z4OI5AZnXyIE6xVjO7mpp5t5qS+6m8iPIwWYhVTzFm/TDHX1jJ1Dauy7/iXA5m+i
|
19
|
+
xAKAOmCiL2j1VudVz+qBKPwiPAG3O0gtLWsxX5J5BwMimakOmDTGmXAEJCCYNjs8
|
20
|
+
9hdJzcGLydTpQU3RuAn2RE+Y7Rzwm3RAW/hMs5PDdx/3XtksHlQ54is4zob0aCOs
|
21
|
+
hJ9TYLpaKvtZCixX0YyiIuAl07BI4sYyXNNWzk+tHf5RlJ3d/oXR/XxLI6xH2v+h
|
22
|
+
RMsQVqF9UKGANhc8yhrcL7YnG6G8v8fkdJFKa2ZuBSIqYKCLl4ATcXD6tTF+THTf
|
23
|
+
oVxAGQIDAQABo3kwdzAJBgNVHRMEAjAAMB0GA1UdDgQWBBSCk5kEqlkwgrdYCHRk
|
24
|
+
wy0ZQt1eeTAeBgNVHREEFzAVgRNjYWl6aGFvZmZAZ21haWwuY29tMAsGA1UdDwQE
|
25
|
+
AwIEsDAeBgNVHRIEFzAVgRNjYWl6aGFvZmZAZ21haWwuY29tMA0GCSqGSIb3DQEB
|
26
|
+
BQUAA4IBAQCle3HlwCgKX19WNYY2EcJYilQCZJPtl/Gj1EbefaX3paMym6yO4FB9
|
27
|
+
i2yP1WTVB4N8OrS0z24b6mo5jKgplyTU6w9D+yI5WKbN4C7XCbBLeNGVlD9yK8CA
|
28
|
+
zc+igDfc63grzUR5Xj7PPxef4owUdz+XDG+mmmv6wNyXSzQUtFyZ8ucVL1vk5ihP
|
29
|
+
vZU7EDLfcHe3xiTYkarBtblwtSj6PHtYn/1v8ztYHhGKvW3wTTiplNwnW4Sx2Wfa
|
30
|
+
eIuFwYbmfyt5/ObUtmp3BlaIStTiX9TBWeuTx6Zq6q6wDzcudbDRd+jLa2XG2AGB
|
31
|
+
S6w/KYMnbhUxfyEU1MX10sJv87WIrtgF
|
32
|
+
-----END CERTIFICATE-----
|
11
33
|
|
12
|
-
date: 2013-04
|
34
|
+
date: 2013-05-04 00:00:00 Z
|
13
35
|
dependencies:
|
14
36
|
- !ruby/object:Gem::Dependency
|
15
37
|
name: thor
|
@@ -18,115 +40,125 @@ dependencies:
|
|
18
40
|
requirements:
|
19
41
|
- - ~>
|
20
42
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
43
|
+
version: 0.18.0
|
22
44
|
type: :runtime
|
23
45
|
version_requirements: *id001
|
24
46
|
- !ruby/object:Gem::Dependency
|
25
|
-
name:
|
47
|
+
name: filetype
|
26
48
|
prerelease: false
|
27
49
|
requirement: &id002 !ruby/object:Gem::Requirement
|
28
50
|
requirements:
|
29
51
|
- - ~>
|
30
52
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
32
|
-
type: :
|
53
|
+
version: 0.3.0
|
54
|
+
type: :runtime
|
33
55
|
version_requirements: *id002
|
34
56
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
57
|
+
name: rdoc
|
36
58
|
prerelease: false
|
37
59
|
requirement: &id003 !ruby/object:Gem::Requirement
|
38
60
|
requirements:
|
39
|
-
- -
|
61
|
+
- - ~>
|
40
62
|
- !ruby/object:Gem::Version
|
41
|
-
version: "
|
63
|
+
version: "4.0"
|
42
64
|
type: :development
|
43
65
|
version_requirements: *id003
|
44
66
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
67
|
+
name: rspec
|
46
68
|
prerelease: false
|
47
69
|
requirement: &id004 !ruby/object:Gem::Requirement
|
48
70
|
requirements:
|
49
71
|
- - ">="
|
50
72
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
73
|
+
version: "2.13"
|
52
74
|
type: :development
|
53
75
|
version_requirements: *id004
|
54
76
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
77
|
+
name: rake
|
56
78
|
prerelease: false
|
57
79
|
requirement: &id005 !ruby/object:Gem::Requirement
|
58
80
|
requirements:
|
59
|
-
-
|
60
|
-
- ">="
|
81
|
+
- - ">="
|
61
82
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
83
|
+
version: 10.0.0
|
63
84
|
type: :development
|
64
85
|
version_requirements: *id005
|
65
86
|
- !ruby/object:Gem::Dependency
|
66
|
-
name: hoe
|
87
|
+
name: hoe
|
67
88
|
prerelease: false
|
68
|
-
requirement: &
|
89
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
69
90
|
requirements:
|
70
|
-
-
|
91
|
+
- &id007
|
92
|
+
- ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: "0"
|
71
95
|
type: :development
|
72
|
-
version_requirements: *
|
96
|
+
version_requirements: *id006
|
73
97
|
- !ruby/object:Gem::Dependency
|
74
|
-
name: hoe-
|
98
|
+
name: hoe-gemspec
|
75
99
|
prerelease: false
|
76
100
|
requirement: &id008 !ruby/object:Gem::Requirement
|
77
101
|
requirements:
|
78
|
-
- *
|
102
|
+
- *id007
|
79
103
|
type: :development
|
80
104
|
version_requirements: *id008
|
81
105
|
- !ruby/object:Gem::Dependency
|
82
|
-
name: hoe-
|
106
|
+
name: hoe-git
|
83
107
|
prerelease: false
|
84
108
|
requirement: &id009 !ruby/object:Gem::Requirement
|
85
109
|
requirements:
|
86
|
-
- *
|
110
|
+
- *id007
|
87
111
|
type: :development
|
88
112
|
version_requirements: *id009
|
89
113
|
- !ruby/object:Gem::Dependency
|
90
|
-
name: hoe-
|
114
|
+
name: hoe-version
|
91
115
|
prerelease: false
|
92
116
|
requirement: &id010 !ruby/object:Gem::Requirement
|
93
117
|
requirements:
|
94
|
-
- *
|
118
|
+
- *id007
|
95
119
|
type: :development
|
96
120
|
version_requirements: *id010
|
97
121
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
122
|
+
name: hoe-bundler
|
99
123
|
prerelease: false
|
100
124
|
requirement: &id011 !ruby/object:Gem::Requirement
|
101
125
|
requirements:
|
102
|
-
- *
|
126
|
+
- *id007
|
103
127
|
type: :development
|
104
128
|
version_requirements: *id011
|
105
129
|
- !ruby/object:Gem::Dependency
|
106
|
-
name: guard
|
130
|
+
name: guard
|
107
131
|
prerelease: false
|
108
132
|
requirement: &id012 !ruby/object:Gem::Requirement
|
109
133
|
requirements:
|
110
|
-
- *
|
134
|
+
- *id007
|
111
135
|
type: :development
|
112
136
|
version_requirements: *id012
|
113
137
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
138
|
+
name: guard-rspec
|
115
139
|
prerelease: false
|
116
140
|
requirement: &id013 !ruby/object:Gem::Requirement
|
117
141
|
requirements:
|
118
|
-
- *
|
142
|
+
- *id007
|
119
143
|
type: :development
|
120
144
|
version_requirements: *id013
|
121
145
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
146
|
+
name: terminal-notifier-guard
|
123
147
|
prerelease: false
|
124
148
|
requirement: &id014 !ruby/object:Gem::Requirement
|
125
149
|
requirements:
|
126
|
-
- *
|
150
|
+
- *id007
|
127
151
|
type: :development
|
128
152
|
version_requirements: *id014
|
129
|
-
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: growl
|
155
|
+
prerelease: false
|
156
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- *id007
|
159
|
+
type: :development
|
160
|
+
version_requirements: *id015
|
161
|
+
description: openMeta in Ruby (support mac system native ruby 1.8, and MacRuby). This gem ports [openmeta]( http://code.google.com/p/openmeta/ ) api to ruby using framework.
|
130
162
|
email:
|
131
163
|
- caizhaoff@gmail.com
|
132
164
|
executables:
|
@@ -136,7 +168,12 @@ extensions: []
|
|
136
168
|
extra_rdoc_files:
|
137
169
|
- History.txt
|
138
170
|
- Manifest.txt
|
171
|
+
- README.md
|
139
172
|
files:
|
173
|
+
- .gemtest
|
174
|
+
- .ruby-version
|
175
|
+
- Gemfile
|
176
|
+
- Gemfile.lock
|
140
177
|
- Guardfile
|
141
178
|
- History.txt
|
142
179
|
- Manifest.txt
|
@@ -153,11 +190,13 @@ files:
|
|
153
190
|
- lib/openmeta/framework/OpenMeta.framework/Versions/A/Resources/Info.plist
|
154
191
|
- lib/openmeta/framework/OpenMeta.framework/Versions/A/Resources/en.lproj/InfoPlist.strings
|
155
192
|
- lib/openmeta/friendly_errors.rb
|
193
|
+
- lib/openmeta/macruby.rb
|
194
|
+
- lib/openmeta/rubycocoa.rb
|
156
195
|
- lib/openmeta/ui.rb
|
157
196
|
- lib/openmeta/version.rb
|
197
|
+
- openmeta.rb.gemspec
|
158
198
|
- spec/openmeta_spec.rb
|
159
199
|
- spec/spec_helper.rb
|
160
|
-
- .gemtest
|
161
200
|
homepage: http://zhaocai.github.com/openmeta.rb
|
162
201
|
licenses:
|
163
202
|
- GPL-3
|
@@ -171,16 +210,16 @@ require_paths:
|
|
171
210
|
- lib
|
172
211
|
required_ruby_version: !ruby/object:Gem::Requirement
|
173
212
|
requirements:
|
174
|
-
- *
|
213
|
+
- *id007
|
175
214
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
215
|
requirements:
|
177
|
-
- *
|
216
|
+
- *id007
|
178
217
|
requirements: []
|
179
218
|
|
180
219
|
rubyforge_project: openmeta.rb
|
181
220
|
rubygems_version: 2.0.3
|
182
221
|
signing_key:
|
183
222
|
specification_version: 4
|
184
|
-
summary: openMeta in Ruby (
|
223
|
+
summary: openMeta in Ruby (support mac system native ruby 1.8, and MacRuby)
|
185
224
|
test_files: []
|
186
225
|
|
metadata.gz.sig
ADDED