alfred-workflow 1.8.0 → 1.9.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
- 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