alfred-workflow 1.2.4 → 1.2.6

Sign up to get free protection for your applications and to get access to all the features.
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
+