alfred-workflow 1.2.4 → 1.2.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 CHANGED
@@ -1,15 +1,7 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NjBhMTczN2Y3ZjI0YmFlMmM3YmM3MzdlYTY1N2IyMjk1NWRjYWM1YQ==
5
- data.tar.gz: !binary |-
6
- MjM4M2RiMWZjNmVjY2NjODA3YWEyYjM3M2Y5MGI4M2VjNTdiMzE0Mg==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZjA2Y2YzYmQzMzA5YWQzMDM1NGViZGI5ZWNjMzI1NjU4Yzc5ZWZmN2I1ZDQx
10
- N2ExZjA1N2IzYjU4ZmFkMTk0MTI5NGJiYWMzYzkzNDBjZDgwOTQ3NDEyZTlm
11
- YWQ2Y2I5N2EzYzhlNTFjMTk1MWY3NzgzNGJiNzJlNWJhNWFlMmI=
12
- data.tar.gz: !binary |-
13
- OGI1NGI0NzcyNzAwZmM3YTBiMjlmZTQ5YjZiNDEwMDI5NTUxMGJjMjQ0Mjcz
14
- Mjk0ODEyZDUxNjQzMjRkNzc1YzdjMjg5YzNjYWFmZGFkMDgzMmM0ODE2NTVi
15
- NTBiNzc0MDFhYjk0N2U0MDczYzQ4YzAyZTZmNjRlNjljMzQ0OTM=
1
+ ---
2
+ SHA1:
3
+ data.tar.gz: a4d4690e0cf9842ae71dbe8cd4422d1380ccdf82
4
+ metadata.gz: 0ee5f0ffe87125ee715424157f68847e85471c38
5
+ SHA512:
6
+ data.tar.gz: b8abbdde6a2a657132ab5c066a709e5834904887a2da135b492583adc87eccf31521ef584c2ba9844ae7303a53008f8386e0dff5a9fc407399867d098781bccf
7
+ metadata.gz: b6bb1e5118547a0c18c2d7e5d029777ce9057f7beed9865d1bdede3ca9d1224513304106e4ba9307355a809b5835374932d47b7c8e1e703f604c589614c9f503
data/Gemfile CHANGED
@@ -9,5 +9,6 @@ gem "logging", "~>1.8.0"
9
9
 
10
10
  gem "rdoc", "~>3.10", :group => [:development, :test]
11
11
  gem "hoe", "~>3.5", :group => [:development, :test]
12
+ gem "rspec", "~>2.13", :group => [:development, :test]
12
13
 
13
14
  # vim: syntax=ruby
data/Gemfile.lock CHANGED
@@ -1,6 +1,7 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
+ diff-lcs (1.2.1)
4
5
  hoe (3.5.2)
5
6
  rake (>= 0.8, < 11.0)
6
7
  json (1.7.7)
@@ -13,6 +14,14 @@ GEM
13
14
  rake (10.0.3)
14
15
  rdoc (3.12.2)
15
16
  json (~> 1.4)
17
+ rspec (2.13.0)
18
+ rspec-core (~> 2.13.0)
19
+ rspec-expectations (~> 2.13.0)
20
+ rspec-mocks (~> 2.13.0)
21
+ rspec-core (2.13.1)
22
+ rspec-expectations (2.13.0)
23
+ diff-lcs (>= 1.1.3, < 2.0)
24
+ rspec-mocks (2.13.0)
16
25
 
17
26
  PLATFORMS
18
27
  ruby
@@ -22,3 +31,4 @@ DEPENDENCIES
22
31
  logging (~> 1.8.0)
23
32
  plist (~> 3.1.0)
24
33
  rdoc (~> 3.10)
34
+ rspec (~> 2.13)
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 1.2.6 / 2013-03-27
2
+
3
+ ! automate rescue feedback
4
+ * save @bundle_id for reaccess
5
+
1
6
  === 1.2.3 / 2013-03-25
2
7
 
3
8
  * add function to output rescue feedback xml items
data/README.md CHANGED
@@ -14,7 +14,8 @@ alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.
14
14
  ## FEATURES:
15
15
 
16
16
  * Use standard [bundler][gembundler] to easily package, manage, and update ruby gems in the workflow.
17
- * Friendly exception and debug output to the Mac OS X Console
17
+ * Friendly exception and debug output to the Mac OS X Console.
18
+ * Automate rescue feedback items to alfred when something goes wrong.
18
19
  * Functions for smart case query filter of feedback results.
19
20
  * Functions for finding the bundle ID, cache and storage paths, and query arguments.
20
21
  * Functions for reading and writing plist files.
@@ -47,6 +48,7 @@ Code are wrapped in `Alfred.with_friendly_error` block. Exceptions and debug mes
47
48
 
48
49
  * Refer to [alfred2-ruby-template]( https://github.com/zhaocai/alfred2-ruby-template ) for example and detailed instruction.
49
50
 
51
+
50
52
  ## Example Projects
51
53
 
52
54
  * [alfred2_top_workflow]( https://github.com/zhaocai/alfred2-top-workflow )
data/Rakefile CHANGED
@@ -12,7 +12,11 @@ Hoe.plugin :version
12
12
 
13
13
  Hoe.spec 'alfred-workflow' do
14
14
 
15
- developer('Zhao Cai', 'caizhaoff@gmail.com')
15
+ developer 'Zhao Cai', 'caizhaoff@gmail.com'
16
+
17
+ license 'GPL-3'
18
+
19
+
16
20
 
17
21
  testlib = :minitest
18
22
  extra_deps << ['plist', '~> 3.1.0']
data/lib/alfred.rb CHANGED
@@ -27,28 +27,38 @@ module Alfred
27
27
  rescue AlfredError => e
28
28
  alfred.ui.error e.message
29
29
  alfred.ui.debug e.backtrace.join("\n")
30
+ puts alfred.rescue_feedback(
31
+ :title => "#{e.class}: #{e.message}") if alfred.with_rescue_feedback
30
32
  exit e.status_code
31
33
  rescue Interrupt => e
32
34
  alfred.ui.error "\nQuitting..."
33
35
  alfred.ui.debug e.backtrace.join("\n")
36
+ puts alfred.rescue_feedback(
37
+ :title => "Interrupt: #{e.message}") if alfred.with_rescue_feedback
34
38
  exit 1
35
39
  rescue SystemExit => e
40
+ puts alfred.rescue_feedback(
41
+ :title => "SystemExit: #{e.status}") if alfred.with_rescue_feedback
36
42
  exit e.status
37
43
  rescue Exception => e
38
44
  alfred.ui.error(
39
45
  "A fatal error has occurred. " \
40
- "You may seek help in the Alfred supporting site, forum or raise an issue in the bug tracking site.\n" \
46
+ "You may seek help in the Alfred supporting site, "\
47
+ "forum or raise an issue in the bug tracking site.\n" \
41
48
  " #{e.inspect}\n#{e.backtrace.join("\n")}\n")
42
- raise e
49
+ puts alfred.rescue_feedback(
50
+ :title => "Fatal Error!") if alfred.with_rescue_feedback
51
+ exit(-1)
43
52
  end
44
53
  end
45
54
  end
46
55
 
47
56
 
48
57
  class Core
49
- attr_reader :query
58
+ attr_accessor :with_rescue_feedback
50
59
 
51
- def initialize
60
+ def initialize(with_rescue_feedback = false)
61
+ @with_rescue_feedback = with_rescue_feedback
52
62
  end
53
63
 
54
64
  def ui
@@ -67,7 +77,7 @@ module Alfred
67
77
 
68
78
  # Returns nil if not set.
69
79
  def bundle_id
70
- info_plist['bundleid'] unless info_plist['bundleid'].empty?
80
+ @bundle_id ||= info_plist['bundleid'] unless info_plist['bundleid'].empty?
71
81
  end
72
82
 
73
83
  def volatile_storage_path
@@ -89,6 +99,9 @@ module Alfred
89
99
  path
90
100
  end
91
101
 
102
+ def with_rescue_feedback
103
+
104
+ end
92
105
  def rescue_feedback(opts = {})
93
106
  default_opts = {
94
107
  :title => "Failed Query!",
@@ -41,8 +41,6 @@ module Alfred
41
41
 
42
42
  if opts[:autocomplete]
43
43
  @autocomplete = opts[:autocomplete]
44
- else
45
- @autocomplete = @title
46
44
  end
47
45
  end
48
46
 
@@ -1,3 +1,3 @@
1
1
  module Alfred
2
- VERSION = '1.2.4'
2
+ VERSION = '1.2.6'
3
3
  end
@@ -4,6 +4,9 @@ describe "Feedback" do
4
4
 
5
5
  before :all do
6
6
  @feedback = Alfred::Feedback.new
7
+
8
+ @item_elements = %w{title subtitle icon}
9
+ @item_attributes = %w{uid arg autocomplete}
7
10
  end
8
11
  it "should create a basic XML response" do
9
12
  @feedback.add_item(:uid => "uid" ,
@@ -12,7 +15,30 @@ describe "Feedback" do
12
15
  :title => "Title" ,
13
16
  :subtitle => "Subtitle")
14
17
 
15
- @feedback.to_xml.should == "<items><item arg='arg' autocomplete='autocomplete' uid='uid' valid='yes'><title>Title</title><subtitle>Subtitle</subtitle><icon>icon.png</icon></item></items>"
18
+ xml_data = <<-END.strip_heredoc
19
+ <?xml version="1.0"?>
20
+ <items>
21
+ <item valid="yes" arg="arg" autocomplete="autocomplete" uid="uid">
22
+ <title>Title</title>
23
+ <subtitle>Subtitle</subtitle>
24
+ <icon>icon.png</icon>
25
+ </item>
26
+ </items>
27
+ END
28
+
29
+ expected_xml = REXML::Document.new(xml_data)
30
+ feedback_xml = REXML::Document.new(@feedback.to_xml)
31
+
32
+ expected_item = expected_xml.get_elements('/items/item')[0]
33
+ feedback_item = feedback_xml.get_elements('/items/item')[0]
34
+
35
+ @item_elements.each { |i|
36
+ expected_item.elements[i].text.should == feedback_item.elements[i].text
37
+ }
38
+ @item_attributes.each { |i|
39
+ expected_item.attributes[i].should == feedback_item.attributes[i]
40
+ }
41
+
16
42
  end
17
43
 
18
44
  end
data/spec/item_spec.rb CHANGED
@@ -9,7 +9,7 @@ describe "Feedback Item" do
9
9
  item = Alfred::Feedback::Item.new("title")
10
10
  item.title.should eql "title"
11
11
  item.subtitle.should eql nil
12
- item.autocomplete.should eql item.title
12
+ item.autocomplete.should eql nil
13
13
  item.arg.should eql item.title
14
14
  item.valid.should eql "yes"
15
15
  item.type.should eql "default"
metadata CHANGED
@@ -1,81 +1,67 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: alfred-workflow
3
- version: !ruby/object:Gem::Version
4
- version: 1.2.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.6
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Zhao Cai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-26 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
11
+
12
+ date: 2013-03-28 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
14
15
  name: plist
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: 3.1.0
20
- type: :runtime
21
16
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirements:
24
19
  - - ~>
25
- - !ruby/object:Gem::Version
20
+ - !ruby/object:Gem::Version
26
21
  version: 3.1.0
27
- - !ruby/object:Gem::Dependency
28
- name: logging
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: 1.8.0
34
22
  type: :runtime
23
+ version_requirements: *id001
24
+ - !ruby/object:Gem::Dependency
25
+ name: logging
35
26
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
27
+ requirement: &id002 !ruby/object:Gem::Requirement
28
+ requirements:
38
29
  - - ~>
39
- - !ruby/object:Gem::Version
30
+ - !ruby/object:Gem::Version
40
31
  version: 1.8.0
41
- - !ruby/object:Gem::Dependency
32
+ type: :runtime
33
+ version_requirements: *id002
34
+ - !ruby/object:Gem::Dependency
42
35
  name: rdoc
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: '3.10'
48
- type: :development
49
36
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
37
+ requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirements:
52
39
  - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '3.10'
55
- - !ruby/object:Gem::Dependency
56
- name: hoe
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '3.5'
40
+ - !ruby/object:Gem::Version
41
+ version: "3.10"
62
42
  type: :development
43
+ version_requirements: *id003
44
+ - !ruby/object:Gem::Dependency
45
+ name: hoe
63
46
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
47
+ requirement: &id004 !ruby/object:Gem::Requirement
48
+ requirements:
66
49
  - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '3.5'
69
- description: alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.com)
70
- workflow.
71
- email:
50
+ - !ruby/object:Gem::Version
51
+ version: "3.5"
52
+ type: :development
53
+ version_requirements: *id004
54
+ description: alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.com) workflow.
55
+ email:
72
56
  - caizhaoff@gmail.com
73
57
  executables: []
58
+
74
59
  extensions: []
75
- extra_rdoc_files:
60
+
61
+ extra_rdoc_files:
76
62
  - History.txt
77
63
  - Manifest.txt
78
- files:
64
+ files:
79
65
  - .autotest
80
66
  - .gemtest
81
67
  - .rspec
@@ -97,29 +83,31 @@ files:
97
83
  - spec/item_spec.rb
98
84
  - spec/spec_helper.rb
99
85
  homepage: https://github.com/zhaocai/alfred-workflow
100
- licenses: []
86
+ licenses:
87
+ - GPL-3
101
88
  metadata: {}
89
+
102
90
  post_install_message:
103
- rdoc_options:
91
+ rdoc_options:
104
92
  - --main
105
93
  - README.md
106
- require_paths:
94
+ require_paths:
107
95
  - lib
108
- required_ruby_version: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ! '>='
111
- - !ruby/object:Gem::Version
112
- version: '0'
113
- required_rubygems_version: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ! '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - &id005
99
+ - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: "0"
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - *id005
118
105
  requirements: []
106
+
119
107
  rubyforge_project: alfred-workflow
120
108
  rubygems_version: 2.0.3
121
109
  signing_key:
122
110
  specification_version: 4
123
- summary: alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.com)
124
- workflow.
111
+ summary: alfred-workflow is a ruby Gem helper for building [Alfred](http://www.alfredapp.com) workflow.
125
112
  test_files: []
113
+