alfred-workflow 1.8.0 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9c4c82b412f4a3023a7db409423ef9bb1121b061
4
- data.tar.gz: c7b3e46014fafabe3c08d8570ca7763fc3ad799d
5
2
  SHA512:
6
- metadata.gz: 9ef40d750a2cc421483c52dd3f42f7bba173074ac49144908f7cdd10ce6f96f8b7ff9ec4082be03b133b2b337f6865e40a5b2c1507c68e891bcca670b146e3c6
7
- data.tar.gz: b900b35159802ce2b0e730417ea75411b74a7837b807027194d4802928e15bc03777ece15bbbe84e4f1cb43f7d0070ba527aff378a4d248b3728d0e5768acf66
3
+ metadata.gz: 1197845c55b1b3fd2cf9ab22537bf476e38dea695d357754c126dd6742b9343f6e2f232d8e1b4415ff9f07344806d09c53c8f9de20fb8c17bfe152252ab87e69
4
+ data.tar.gz: 9254e444fe35cc41431aa6289f6b5317e82ddd5589348651ee6ca7ec29d07eb070dae256f70776c5fd579f39b0d0c9090426a5474f4dbcd5432635dd79ef6260
5
+ SHA1:
6
+ metadata.gz: bef39332c4f31d2b99fd1c4993f5d8554d65fe3e
7
+ data.tar.gz: 707f332c85f491779bd68797949ea1b875251202
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/Gemfile.lock CHANGED
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- alfred-workflow (1.7.0.20130502202146)
4
+ alfred-workflow (1.8.0.20130503002346)
5
5
  plist (>= 3.1.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
+ awesome_print (1.1.0)
10
11
  coderay (1.0.9)
11
12
  diff-lcs (1.2.4)
12
13
  facets (2.9.3)
@@ -27,8 +28,6 @@ GEM
27
28
  rspec (~> 2.11)
28
29
  hoe (3.6.0)
29
30
  rake (>= 0.8, < 11.0)
30
- hoe-bundler (1.2.0)
31
- hoe (>= 2.2.0)
32
31
  hoe-gemspec (1.0.0)
33
32
  hoe (>= 2.2.0)
34
33
  hoe-git (1.5.0)
@@ -71,13 +70,13 @@ PLATFORMS
71
70
 
72
71
  DEPENDENCIES
73
72
  alfred-workflow!
73
+ awesome_print (>= 1.1.0)
74
74
  facets (>= 2.9.0)
75
75
  growl
76
76
  guard (~> 1.7.0)
77
77
  guard-bundler
78
78
  guard-rspec
79
79
  hoe
80
- hoe-bundler
81
80
  hoe-gemspec
82
81
  hoe-git
83
82
  hoe-version
data/Rakefile CHANGED
@@ -2,8 +2,9 @@
2
2
 
3
3
  require 'rubygems'
4
4
  require 'hoe'
5
+ require 'rake/clean'
6
+
5
7
 
6
- Hoe.plugin :bundler
7
8
  Hoe.plugin :git
8
9
  Hoe.plugin :gemspec
9
10
  Hoe.plugin :version
@@ -22,9 +23,10 @@ Hoe.spec 'alfred-workflow' do
22
23
 
23
24
 
24
25
  extra_dev_deps << ['rspec', '>= 2.13']
26
+ extra_dev_deps << ['awesome_print', '>= 1.1.0']
25
27
  extra_dev_deps << ['facets', '>= 2.9.0']
26
28
  extra_dev_deps << ['rake', '>= 10.0.0']
27
- extra_dev_deps << ['hoe'] << ['hoe-gemspec'] << ['hoe-git'] << ['hoe-version'] << ['hoe-bundler'] << ['hoe-yard']
29
+ extra_dev_deps << ['hoe'] << ['hoe-gemspec'] << ['hoe-git'] << ['hoe-version'] << ['hoe-yard']
28
30
  extra_dev_deps << ['guard', '~> 1.7.0'] << ['guard-rspec'] << ['guard-bundler']
29
31
  extra_dev_deps << ['terminal-notifier-guard'] << ['growl']
30
32
 
@@ -49,7 +51,9 @@ task :multirubies do
49
51
  sh %q{bundle exec guard --group=multirubies}
50
52
  end
51
53
 
52
-
54
+ CLOBBER.include('log')
55
+ CLEAN.include('tmp')
56
+ CLEAN.include('test/workflow/tmp')
53
57
 
54
58
 
55
59
  # vim: syntax=ruby
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "alfred-workflow"
5
- s.version = "1.7.0.20130502202146"
5
+ s.version = "1.8.0.20130503002346"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Zhao Cai"]
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
11
11
  s.description = "alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.com) workflow."
12
12
  s.email = ["caizhaoff@gmail.com"]
13
13
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.md", "History.txt"]
14
- s.files = [".gemtest", ".rspec", ".ruby-version", ".travis.yml", "Gemfile", "Gemfile.lock", "Guardfile", "History.txt", "Manifest.txt", "README.md", "Rakefile", "lib/alfred.rb", "lib/alfred/feedback.rb", "lib/alfred/feedback/file_item.rb", "lib/alfred/feedback/item.rb", "lib/alfred/setting.rb", "lib/alfred/ui.rb", "lib/alfred/version.rb", "spec/alfred_spec.rb", "spec/feedback_spec.rb", "spec/item_spec.rb", "spec/spec_helper.rb", "test/workflow/info.plist"]
14
+ s.files = [".rspec", ".ruby-version", "Gemfile", "Gemfile.lock", "Guardfile", "History.txt", "Manifest.txt", "README.md", "Rakefile", "alfred-workflow.gemspec", "lib/alfred.rb", "lib/alfred/feedback.rb", "lib/alfred/feedback/file_item.rb", "lib/alfred/feedback/item.rb", "lib/alfred/setting.rb", "lib/alfred/ui.rb", "lib/alfred/version.rb", "spec/alfred/feedback/item_spec.rb", "spec/alfred/feedback_spec.rb", "spec/alfred/setting_spec.rb", "spec/alfred/ui_spec.rb", "spec/alfred_spec.rb", "spec/spec_helper.rb", "test/workflow/info.plist", ".gemtest"]
15
15
  s.homepage = "http://zhaocai.github.com/alfred2-ruby-template/"
16
16
  s.licenses = ["GPL-3"]
17
17
  s.rdoc_options = ["--title", "TestAlfred::TestWorkflow Documentation", "--quiet"]
@@ -28,13 +28,13 @@ Gem::Specification.new do |s|
28
28
  s.add_runtime_dependency(%q<plist>, [">= 3.1.0"])
29
29
  s.add_development_dependency(%q<hoe-yard>, [">= 0.1.2"])
30
30
  s.add_development_dependency(%q<rspec>, [">= 2.13"])
31
+ s.add_development_dependency(%q<awesome_print>, [">= 1.1.0"])
31
32
  s.add_development_dependency(%q<facets>, [">= 2.9.0"])
32
33
  s.add_development_dependency(%q<rake>, [">= 10.0.0"])
33
34
  s.add_development_dependency(%q<hoe>, [">= 0"])
34
35
  s.add_development_dependency(%q<hoe-gemspec>, [">= 0"])
35
36
  s.add_development_dependency(%q<hoe-git>, [">= 0"])
36
37
  s.add_development_dependency(%q<hoe-version>, [">= 0"])
37
- s.add_development_dependency(%q<hoe-bundler>, [">= 0"])
38
38
  s.add_development_dependency(%q<guard>, ["~> 1.7.0"])
39
39
  s.add_development_dependency(%q<guard-rspec>, [">= 0"])
40
40
  s.add_development_dependency(%q<guard-bundler>, [">= 0"])
@@ -44,13 +44,13 @@ Gem::Specification.new do |s|
44
44
  s.add_dependency(%q<plist>, [">= 3.1.0"])
45
45
  s.add_dependency(%q<hoe-yard>, [">= 0.1.2"])
46
46
  s.add_dependency(%q<rspec>, [">= 2.13"])
47
+ s.add_dependency(%q<awesome_print>, [">= 1.1.0"])
47
48
  s.add_dependency(%q<facets>, [">= 2.9.0"])
48
49
  s.add_dependency(%q<rake>, [">= 10.0.0"])
49
50
  s.add_dependency(%q<hoe>, [">= 0"])
50
51
  s.add_dependency(%q<hoe-gemspec>, [">= 0"])
51
52
  s.add_dependency(%q<hoe-git>, [">= 0"])
52
53
  s.add_dependency(%q<hoe-version>, [">= 0"])
53
- s.add_dependency(%q<hoe-bundler>, [">= 0"])
54
54
  s.add_dependency(%q<guard>, ["~> 1.7.0"])
55
55
  s.add_dependency(%q<guard-rspec>, [">= 0"])
56
56
  s.add_dependency(%q<guard-bundler>, [">= 0"])
@@ -61,13 +61,13 @@ Gem::Specification.new do |s|
61
61
  s.add_dependency(%q<plist>, [">= 3.1.0"])
62
62
  s.add_dependency(%q<hoe-yard>, [">= 0.1.2"])
63
63
  s.add_dependency(%q<rspec>, [">= 2.13"])
64
+ s.add_dependency(%q<awesome_print>, [">= 1.1.0"])
64
65
  s.add_dependency(%q<facets>, [">= 2.9.0"])
65
66
  s.add_dependency(%q<rake>, [">= 10.0.0"])
66
67
  s.add_dependency(%q<hoe>, [">= 0"])
67
68
  s.add_dependency(%q<hoe-gemspec>, [">= 0"])
68
69
  s.add_dependency(%q<hoe-git>, [">= 0"])
69
70
  s.add_dependency(%q<hoe-version>, [">= 0"])
70
- s.add_dependency(%q<hoe-bundler>, [">= 0"])
71
71
  s.add_dependency(%q<guard>, ["~> 1.7.0"])
72
72
  s.add_dependency(%q<guard-rspec>, [">= 0"])
73
73
  s.add_dependency(%q<guard-bundler>, [">= 0"])
data/lib/alfred.rb CHANGED
@@ -55,6 +55,9 @@ module Alfred
55
55
  end
56
56
  end
57
57
 
58
+ def workflow_folder
59
+ Dir.pwd
60
+ end
58
61
 
59
62
  # launch alfred with query
60
63
  def search(query = "")
@@ -67,12 +70,20 @@ module Alfred
67
70
  end
68
71
 
69
72
  class Core
70
- attr_accessor :with_rescue_feedback
71
-
72
- def initialize(with_rescue_feedback = false, &blk)
73
+ attr_reader :with_rescue_feedback
74
+ attr_accessor :with_help_feedback
75
+
76
+ def initialize(
77
+ with_help_feedback = false,
78
+ with_rescue_feedback = false,
79
+ &blk
80
+ )
81
+ @workflow_dir = Dir.pwd
73
82
  @with_rescue_feedback = with_rescue_feedback
83
+ @with_help_feedback = with_rescue_feedback
74
84
 
75
85
  instance_eval(&blk) if block_given?
86
+
76
87
  end
77
88
 
78
89
  def ui
@@ -84,6 +95,10 @@ module Alfred
84
95
  @setting ||= Setting.new(self, &blk)
85
96
  end
86
97
 
98
+ def workflow_setting(opts = {})
99
+ @workflow_setting ||= init_workflow_setting(opts)
100
+ end
101
+
87
102
  def with_cached_feedback(&blk)
88
103
  @feedback = CachedFeedback.new(self, &blk)
89
104
  end
@@ -122,6 +137,20 @@ module Alfred
122
137
  end
123
138
 
124
139
 
140
+ def help_feedback(opts = {})
141
+ ws = workflow_setting.load
142
+ if ws.has_key? :help
143
+ ws[:help].map do |item|
144
+ case item[:kind]
145
+ when 'url'
146
+ item[:folder] = storage_path
147
+ Feedback::UrlItem.new(item)
148
+ end
149
+ end
150
+ end
151
+ end
152
+
153
+
125
154
  def rescue_feedback(opts = {})
126
155
  default_opts = {
127
156
  :title => "Failed Query!",
@@ -141,6 +170,20 @@ module Alfred
141
170
  feedback.to_alfred('', items)
142
171
  end
143
172
 
173
+ private
174
+
175
+ def init_workflow_setting(opts)
176
+ default_opts = {
177
+ :file => "setting.yaml",
178
+ :format => 'yaml',
179
+ }
180
+ opts = default_opts.update(opts)
181
+
182
+ @workflow_setting = Setting.new(self) do
183
+ use_setting_file opts
184
+ end
185
+ @workflow_setting
186
+ end
144
187
 
145
188
  end
146
189
 
@@ -5,7 +5,7 @@ module Alfred
5
5
  class Feedback
6
6
  class FileItem < Item
7
7
 
8
- def initialize(path)
8
+ def initialize(path, opts = {})
9
9
  if ['.ennote', '.webbookmark'].include? File.extname(path)
10
10
  @title = %x{mdls -name kMDItemDisplayName -raw '#{path}'}
11
11
  else
@@ -27,3 +27,4 @@ module Alfred
27
27
  end
28
28
  end
29
29
  end
30
+
@@ -18,7 +18,7 @@ module Alfred
18
18
  if opts[:uid]
19
19
  @uid = opts[:uid]
20
20
  else
21
- @uid = ''
21
+ @uid = nil
22
22
  end
23
23
 
24
24
  if opts[:arg]
@@ -94,15 +94,23 @@ module Alfred
94
94
 
95
95
  def to_xml
96
96
  xml_element = REXML::Element.new('item')
97
- xml_element.add_attributes({
98
- 'uid' => @uid,
99
- 'arg' => @arg,
100
- 'valid' => @valid,
101
- 'autocomplete' => @autocomplete
102
- })
97
+ if @uid
98
+ xml_element.add_attributes({
99
+ 'uid' => @uid,
100
+ 'valid' => @valid,
101
+ 'autocomplete' => @autocomplete
102
+ })
103
+ else
104
+ xml_element.add_attributes({
105
+ 'valid' => @valid,
106
+ 'autocomplete' => @autocomplete
107
+ })
108
+
109
+ end
103
110
  xml_element.add_attributes('type' => 'file') if @type == "file"
104
111
 
105
112
  REXML::Element.new("title", xml_element).text = @title
113
+ REXML::Element.new("arg", xml_element).text = @arg
106
114
  REXML::Element.new("subtitle", xml_element).text = @subtitle
107
115
 
108
116
  icon = REXML::Element.new("icon", xml_element)
@@ -1,3 +1,3 @@
1
1
  module Alfred
2
- VERSION = '1.8.0'
2
+ VERSION = '1.9.0'
3
3
  end
@@ -24,8 +24,32 @@ describe "Feedback" do
24
24
  xml_data = <<-END.strip_heredoc
25
25
  <?xml version="1.0"?>
26
26
  <items>
27
- <item valid="yes" arg="arg" autocomplete="autocomplete" uid="uid">
27
+ <item valid="yes" autocomplete="autocomplete" uid="uid">
28
28
  <title>Title</title>
29
+ <arg>Arg</arg>
30
+ <subtitle>Subtitle</subtitle>
31
+ <icon>icon.png</icon>
32
+ </item>
33
+ </items>
34
+ END
35
+
36
+ compare_xml(xml_data, @feedback.to_xml).should == true
37
+ end
38
+
39
+ it "should not have uid if not presented" do
40
+
41
+ @feedback.items = []
42
+ @feedback.add_item(:arg => "arg" ,
43
+ :autocomplete => "autocomplete" ,
44
+ :title => "Title" ,
45
+ :subtitle => "Subtitle")
46
+
47
+ xml_data = <<-END.strip_heredoc
48
+ <?xml version="1.0"?>
49
+ <items>
50
+ <item valid="yes" autocomplete="autocomplete">
51
+ <title>Title</title>
52
+ <arg>Arg</arg>
29
53
  <subtitle>Subtitle</subtitle>
30
54
  <icon>icon.png</icon>
31
55
  </item>
@@ -71,8 +95,9 @@ describe "Feedback" do
71
95
  @xml_data = <<-END.strip_heredoc
72
96
  <?xml version="1.0"?>
73
97
  <items>
74
- <item valid="yes" arg="arg" autocomplete="autocomplete" uid="uid">
98
+ <item valid="yes" autocomplete="autocomplete" uid="uid">
75
99
  <title>Title</title>
100
+ <arg>Arg</arg>
76
101
  <subtitle>Subtitle</subtitle>
77
102
  <icon>icon.png</icon>
78
103
  </item>
data/spec/alfred_spec.rb CHANGED
@@ -11,6 +11,17 @@ describe "Alfred" do
11
11
  @alfred.bundle_id.should == "me.zhaowu.alfred-workflow-gem"
12
12
  end
13
13
 
14
+ context "Help" do
15
+ before :all do
16
+ @alfred.with_help_feedback = true
17
+ end
18
+
19
+ it "should have correct default setting file" do
20
+ @alfred.workflow_setting.setting_file.should eq 'setting.yaml'
21
+ end
22
+
23
+
24
+ end
14
25
 
15
26
  after :all do
16
27
  reset_workflow
data/spec/spec_helper.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
2
2
 
3
3
  require "rspec"
4
- require 'facets/string'
5
4
  require 'fileutils'
5
+ require 'awesome_print'
6
6
 
7
7
 
8
8
  require "alfred"
@@ -26,7 +26,7 @@ class String
26
26
  end
27
27
 
28
28
  $rspec_dir = Dir.pwd
29
- $workflow_dir = 'test/workflow/'
29
+ $workflow_dir = File.expand_path('test/workflow/')
30
30
  def setup_workflow
31
31
  FileUtils.mkdir_p($workflow_dir)
32
32
  Dir.chdir($workflow_dir)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alfred-workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zhao Cai
@@ -31,7 +31,7 @@ cert_chain:
31
31
  S6w/KYMnbhUxfyEU1MX10sJv87WIrtgF
32
32
  -----END CERTIFICATE-----
33
33
 
34
- date: 2013-05-03 00:00:00 Z
34
+ date: 2013-09-15 00:00:00 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: plist
@@ -64,66 +64,68 @@ dependencies:
64
64
  type: :development
65
65
  version_requirements: *id003
66
66
  - !ruby/object:Gem::Dependency
67
- name: facets
67
+ name: awesome_print
68
68
  prerelease: false
69
69
  requirement: &id004 !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - ">="
72
72
  - !ruby/object:Gem::Version
73
- version: 2.9.0
73
+ version: 1.1.0
74
74
  type: :development
75
75
  version_requirements: *id004
76
76
  - !ruby/object:Gem::Dependency
77
- name: rake
77
+ name: facets
78
78
  prerelease: false
79
79
  requirement: &id005 !ruby/object:Gem::Requirement
80
80
  requirements:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
- version: 10.0.0
83
+ version: 2.9.0
84
84
  type: :development
85
85
  version_requirements: *id005
86
86
  - !ruby/object:Gem::Dependency
87
- name: hoe
87
+ name: rake
88
88
  prerelease: false
89
89
  requirement: &id006 !ruby/object:Gem::Requirement
90
90
  requirements:
91
- - &id007
92
- - ">="
91
+ - - ">="
93
92
  - !ruby/object:Gem::Version
94
- version: "0"
93
+ version: 10.0.0
95
94
  type: :development
96
95
  version_requirements: *id006
97
96
  - !ruby/object:Gem::Dependency
98
- name: hoe-gemspec
97
+ name: hoe
99
98
  prerelease: false
100
- requirement: &id008 !ruby/object:Gem::Requirement
99
+ requirement: &id007 !ruby/object:Gem::Requirement
101
100
  requirements:
102
- - *id007
101
+ - &id008
102
+ - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: "0"
103
105
  type: :development
104
- version_requirements: *id008
106
+ version_requirements: *id007
105
107
  - !ruby/object:Gem::Dependency
106
- name: hoe-git
108
+ name: hoe-gemspec
107
109
  prerelease: false
108
110
  requirement: &id009 !ruby/object:Gem::Requirement
109
111
  requirements:
110
- - *id007
112
+ - *id008
111
113
  type: :development
112
114
  version_requirements: *id009
113
115
  - !ruby/object:Gem::Dependency
114
- name: hoe-version
116
+ name: hoe-git
115
117
  prerelease: false
116
118
  requirement: &id010 !ruby/object:Gem::Requirement
117
119
  requirements:
118
- - *id007
120
+ - *id008
119
121
  type: :development
120
122
  version_requirements: *id010
121
123
  - !ruby/object:Gem::Dependency
122
- name: hoe-bundler
124
+ name: hoe-version
123
125
  prerelease: false
124
126
  requirement: &id011 !ruby/object:Gem::Requirement
125
127
  requirements:
126
- - *id007
128
+ - *id008
127
129
  type: :development
128
130
  version_requirements: *id011
129
131
  - !ruby/object:Gem::Dependency
@@ -141,7 +143,7 @@ dependencies:
141
143
  prerelease: false
142
144
  requirement: &id013 !ruby/object:Gem::Requirement
143
145
  requirements:
144
- - *id007
146
+ - *id008
145
147
  type: :development
146
148
  version_requirements: *id013
147
149
  - !ruby/object:Gem::Dependency
@@ -149,7 +151,7 @@ dependencies:
149
151
  prerelease: false
150
152
  requirement: &id014 !ruby/object:Gem::Requirement
151
153
  requirements:
152
- - *id007
154
+ - *id008
153
155
  type: :development
154
156
  version_requirements: *id014
155
157
  - !ruby/object:Gem::Dependency
@@ -157,7 +159,7 @@ dependencies:
157
159
  prerelease: false
158
160
  requirement: &id015 !ruby/object:Gem::Requirement
159
161
  requirements:
160
- - *id007
162
+ - *id008
161
163
  type: :development
162
164
  version_requirements: *id015
163
165
  - !ruby/object:Gem::Dependency
@@ -165,7 +167,7 @@ dependencies:
165
167
  prerelease: false
166
168
  requirement: &id016 !ruby/object:Gem::Requirement
167
169
  requirements:
168
- - *id007
170
+ - *id008
169
171
  type: :development
170
172
  version_requirements: *id016
171
173
  description: alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.com) workflow.
@@ -219,10 +221,10 @@ require_paths:
219
221
  - lib
220
222
  required_ruby_version: !ruby/object:Gem::Requirement
221
223
  requirements:
222
- - *id007
224
+ - *id008
223
225
  required_rubygems_version: !ruby/object:Gem::Requirement
224
226
  requirements:
225
- - *id007
227
+ - *id008
226
228
  requirements: []
227
229
 
228
230
  rubyforge_project: alfred-workflow
metadata.gz.sig CHANGED
Binary file