pennyworth 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/CHANGELOG.rdoc +8 -0
  2. data/README.rdoc +19 -29
  3. data/lib/pennyworth/cli.rb +26 -26
  4. data/lib/pennyworth/kits/clipboard.rb +15 -0
  5. data/lib/pennyworth/kits/string.rb +48 -0
  6. data/lib/pennyworth/templates/workflows/user.workflow.43F0ADF3-BF5B-4C09-BC20-DF0CA14E58A0/9B00D8C9-CD83-45B2-9AD3-6CA60CBB5F00.png +0 -0
  7. data/lib/pennyworth/templates/workflows/user.workflow.43F0ADF3-BF5B-4C09-BC20-DF0CA14E58A0/icon.png +0 -0
  8. data/lib/pennyworth/templates/workflows/user.workflow.43F0ADF3-BF5B-4C09-BC20-DF0CA14E58A0/info.plist +131 -0
  9. data/lib/pennyworth/templates/workflows/user.workflow.514AB72A-0A69-422D-AA58-52A35800F78E/4B457A56-9BB7-4270-8731-728A09D5B3F1.png +0 -0
  10. data/lib/pennyworth/templates/workflows/user.workflow.514AB72A-0A69-422D-AA58-52A35800F78E/icon.png +0 -0
  11. data/lib/pennyworth/templates/workflows/user.workflow.514AB72A-0A69-422D-AA58-52A35800F78E/info.plist +131 -0
  12. data/lib/pennyworth/templates/workflows/user.workflow.97DA8B58-F8B9-408F-B212-8F02A31DAE6B/FA7100B1-94C8-4BD5-BCC7-31FC50CC0725.png +0 -0
  13. data/lib/pennyworth/templates/workflows/user.workflow.97DA8B58-F8B9-408F-B212-8F02A31DAE6B/icon.png +0 -0
  14. data/lib/pennyworth/templates/workflows/user.workflow.97DA8B58-F8B9-408F-B212-8F02A31DAE6B/info.plist +131 -0
  15. data/lib/pennyworth/templates/workflows/user.workflow.9AFFD627-1541-4369-9034-1E0C6CC2B543/F03EB975-27A1-49C1-BB1D-42886955C024.png +0 -0
  16. data/lib/pennyworth/templates/workflows/user.workflow.9AFFD627-1541-4369-9034-1E0C6CC2B543/icon.png +0 -0
  17. data/lib/pennyworth/templates/workflows/user.workflow.9AFFD627-1541-4369-9034-1E0C6CC2B543/info.plist +131 -0
  18. data/lib/pennyworth/version.rb +1 -1
  19. data/lib/pennyworth.rb +2 -1
  20. metadata +50 -53
  21. data/lib/pennyworth/kit.rb +0 -20
  22. data/lib/pennyworth/templates/alfred/extensions/files/launch_browsers/icon.png +0 -0
  23. data/lib/pennyworth/templates/alfred/extensions/files/launch_browsers/info.plist +0 -21
  24. data/lib/pennyworth/templates/alfred/extensions/files/launch_browsers/kudos.plist +0 -10
  25. data/lib/pennyworth/templates/alfred/extensions/scripts/apple_say/icon.png +0 -0
  26. data/lib/pennyworth/templates/alfred/extensions/scripts/apple_say/info.plist +0 -40
  27. data/lib/pennyworth/templates/alfred/extensions/scripts/apple_say/kudos.plist +0 -10
  28. data/lib/pennyworth/templates/alfred/extensions/scripts/cache_flush/icon.png +0 -0
  29. data/lib/pennyworth/templates/alfred/extensions/scripts/cache_flush/info.plist +0 -41
  30. data/lib/pennyworth/templates/alfred/extensions/scripts/cache_flush/kudos.plist +0 -10
  31. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_bash_file/icon.png +0 -0
  32. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_bash_file/info.plist +0 -41
  33. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_bash_file/kudos.plist +0 -10
  34. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_file/icon.png +0 -0
  35. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_file/info.plist +0 -41
  36. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_file/kudos.plist +0 -10
  37. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_home_file/icon.png +0 -0
  38. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_home_file/info.plist +0 -41
  39. data/lib/pennyworth/templates/alfred/extensions/scripts/edit_home_file/kudos.plist +0 -10
  40. data/lib/pennyworth/templates/alfred/extensions/scripts/mem_purge/icon.png +0 -0
  41. data/lib/pennyworth/templates/alfred/extensions/scripts/mem_purge/info.plist +0 -41
  42. data/lib/pennyworth/templates/alfred/extensions/scripts/mem_purge/kudos.plist +0 -10
  43. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_chrome/icon.png +0 -0
  44. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_chrome/info.plist +0 -40
  45. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_chrome/kudos.plist +0 -10
  46. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_opera/icon.png +0 -0
  47. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_opera/info.plist +0 -40
  48. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_opera/kudos.plist +0 -10
  49. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_safari/icon.png +0 -0
  50. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_safari/info.plist +0 -40
  51. data/lib/pennyworth/templates/alfred/extensions/scripts/open_url_in_safari/kudos.plist +0 -10
  52. data/lib/pennyworth/templates/alfred/extensions/scripts/osx_serial/icon.png +0 -0
  53. data/lib/pennyworth/templates/alfred/extensions/scripts/osx_serial/info.plist +0 -40
  54. data/lib/pennyworth/templates/alfred/extensions/scripts/osx_serial/kudos.plist +0 -10
  55. data/lib/pennyworth/templates/alfred/extensions/scripts/restart_rails/icon.png +0 -0
  56. data/lib/pennyworth/templates/alfred/extensions/scripts/restart_rails/info.plist +0 -42
  57. data/lib/pennyworth/templates/alfred/extensions/scripts/restart_rails/kudos.plist +0 -10
  58. data/lib/pennyworth/templates/alfred/extensions/scripts/string_capitalize/icon.png +0 -0
  59. data/lib/pennyworth/templates/alfred/extensions/scripts/string_capitalize/info.plist +0 -41
  60. data/lib/pennyworth/templates/alfred/extensions/scripts/string_capitalize/kudos.plist +0 -10
  61. data/lib/pennyworth/templates/alfred/extensions/scripts/string_downcase/icon.png +0 -0
  62. data/lib/pennyworth/templates/alfred/extensions/scripts/string_downcase/info.plist +0 -41
  63. data/lib/pennyworth/templates/alfred/extensions/scripts/string_downcase/kudos.plist +0 -10
  64. data/lib/pennyworth/templates/alfred/extensions/scripts/string_length/icon.png +0 -0
  65. data/lib/pennyworth/templates/alfred/extensions/scripts/string_length/info.plist +0 -41
  66. data/lib/pennyworth/templates/alfred/extensions/scripts/string_length/kudos.plist +0 -10
  67. data/lib/pennyworth/templates/alfred/extensions/scripts/string_upcase/icon.png +0 -0
  68. data/lib/pennyworth/templates/alfred/extensions/scripts/string_upcase/info.plist +0 -41
  69. data/lib/pennyworth/templates/alfred/extensions/scripts/string_upcase/kudos.plist +0 -10
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,11 @@
1
+ = v1.0.0
2
+
3
+ * Upgraded to Alfred 2.x.x.
4
+ * Removed Alfred 1.x.x extensions and added Alfred 2.x.x workflows.
5
+ * Added Guard support for testing.
6
+ * Converted/detailed the CONTRIBUTING guidelines per GitHub requirements.
7
+ * Cleaned up the README documentation.
8
+
1
9
  = v0.2.0
2
10
 
3
11
  * Cleaned up doc.
data/README.rdoc CHANGED
@@ -1,36 +1,25 @@
1
1
  = Overview
2
2
 
3
- {<img src="https://secure.travis-ci.org/bkuhlmann/pennyworth.png" />}[http://travis-ci.org/bkuhlmann/pennyworth]
3
+ {<img src="https://badge.fury.io/rb/pennyworth.png" alt="Gem Version" />}[http://badge.fury.io/rb/pennyworth]
4
+ {<img src="https://secure.travis-ci.org/bkuhlmann/pennyworth.png" alt="Travis CI Status" />}[http://travis-ci.org/bkuhlmann/pennyworth]
5
+ {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/bkuhlmann/pennyworth]
4
6
 
5
- Enhances and extends Alfred by providing a Ruby command line interface (CLI) via Alfred Extensions. Each Alfred Extension,
6
- packaged as part of this gem, references back to the Ruby CLI. Output is provided via Growl.
7
+ Enhances and extends Alfred by providing a Ruby command line interface (CLI).
7
8
 
8
9
  = Features
9
10
 
10
11
  * Adds Ruby support to Alfred.
11
- * Adds the launch_browsers file extension.
12
- * Adds the apple_say script extension.
13
- * Adds the cache_flush script extension.
14
- * Adds the edit_bash_file script extension.
15
- * Adds the edit_file script extension.
16
- * Adds the edit_home_file script extension.
17
- * Adds the mem_purge script extension.
18
- * Adds the open_url_in_chrome script extension.
19
- * Adds the open_url_in_opera script extension.
20
- * Adds the open_url_in_safari script extension.
21
- * Adds the osx_serial script extension.
22
- * Adds the restart_rails script extension.
23
- * Adds the string_capitalize script extension.
24
- * Adds the string_downcase script extension.
25
- * Adds the string_length script extension.
26
- * Adds the string_upcase script extension.
12
+ * Adds the following Alfred Workflows:
13
+ * Pennyworth String Upcase
14
+ * Pennyworth String Length
15
+ * Pennyworth String Downcase
16
+ * Pennyworth String Capitalize
27
17
 
28
18
  = Requirements
29
19
 
30
- 1. OSX[http://www.apple.com/osx]
31
- 2. Alfred[http://www.alfredapp.com]
20
+ 1. OSX[http://www.apple.com/osx].
21
+ 2. Alfred[http://www.alfredapp.com] (Version 2.x.x or higher).
32
22
  3. {Alfred Powerpack}[http://www.alfredapp.com/purchase].
33
- 4. Growl[http://growl.info].
34
23
  5. rbenv[https://github.com/sstephenson/rbenv].
35
24
  6. {Ruby 1.9.x}[http://www.ruby-lang.org].
36
25
 
@@ -47,7 +36,7 @@ You can configure common settings for future gem builds by creating the followin
47
36
  ...using the following settings (for example):
48
37
 
49
38
  ---
50
- :alfred_settings_root: "/Users/brooke/Dropbox/Cache/Alfred"
39
+ :alfred_settings_root: "/Users/bkuhlmann/Dropbox/Cache/Alfred/Alfred.alfredpreferences"
51
40
 
52
41
  = Usage
53
42
 
@@ -55,9 +44,9 @@ From the command line, type: pennyworth
55
44
 
56
45
  pennyworth -e, [edit] # Edit gem settings in default editor (assumes $EDITOR environment variable).
57
46
  pennyworth -h, [help] # Show this message.
58
- pennyworth -i, [install] # Install Alfred Extensions.
47
+ pennyworth -i, [install] # Install Alfred Workflows.
59
48
  pennyworth -s, [string] # Manipulate strings.
60
- pennyworth -v, [version] # Show version.
49
+ pennyworth -v, [version] # Show version.
61
50
 
62
51
  For string options, type: pennyworth help string
63
52
 
@@ -70,9 +59,10 @@ While the command line options are nice, the real power comes from running the f
70
59
 
71
60
  pennyworth -i
72
61
 
73
- ...which installs the Alfred Extensions packaged as part of this gem. You can then use the Alfred commands
74
- provided by each extension rather than use the CLI. Check the documentation of each installed extension (as listed
75
- in the features list above) for further usage.
62
+ ...which installs the Alfred Workflows to support this gem. You can use the Alfred commands
63
+ provided by each workflow instead of the CLI. Check each workflows documentation for details by
64
+ opening Alfred preferences and clicking on the _Workflows_ tab. Each workflow associated with this
65
+ gem is prefixed with _Pennyworth_.
76
66
 
77
67
  = Tests
78
68
 
@@ -84,7 +74,7 @@ To test, do the following:
84
74
 
85
75
  = Contributions
86
76
 
87
- Please log all feedback/issues via {GitHub Issues}[https://github.com/bkuhlmann/pennyworth/issues] for the project. Thanks.
77
+ Read CONTRIBUTING for details.
88
78
 
89
79
  = Credits
90
80
 
@@ -5,8 +5,8 @@ require "thor_plus/actions"
5
5
 
6
6
  module Pennyworth
7
7
  class CLI < Thor
8
- include Thor::Actions
9
- include ThorPlus::Actions
8
+ include Thor::Actions
9
+ include ThorPlus::Actions
10
10
 
11
11
  # Overwrites the Thor template source root.
12
12
  def self.source_root
@@ -28,42 +28,42 @@ module Pennyworth
28
28
  method_option :length, aliases: "-l", desc: "Answer the length of a string.", type: :array
29
29
  def string
30
30
  case
31
- when options[:downcase] then
32
- string = Pennyworth::Kit.array_to_string options[:downcase]
33
- puts Pennyworth::Kit.clip(string.downcase)
34
- when options[:upcase] then
35
- string = Pennyworth::Kit.array_to_string options[:upcase]
36
- puts Pennyworth::Kit.clip(string.upcase)
37
- when options[:capitalize] then
38
- words = options[:capitalize].map {|word| word.capitalize}
39
- words = Pennyworth::Kit.array_to_string words
40
- puts Pennyworth::Kit.clip(words)
41
- when options[:length] then
42
- string = Pennyworth::Kit.array_to_string options[:length]
43
- Pennyworth::Kit.clip(string)
44
- puts string.length
31
+ when options[:downcase]
32
+ Pennyworth::Kits::String.downcase options[:downcase]
33
+ when options[:upcase]
34
+ Pennyworth::Kits::String.upcase options[:upcase]
35
+ when options[:capitalize]
36
+ Pennyworth::Kits::String.capitalize options[:capitalize]
37
+ when options[:length]
38
+ Pennyworth::Kits::String.length options[:length]
45
39
  else say("Type 'pennyworth help string' for usage.")
46
40
  end
47
41
  end
48
42
 
49
- desc "-i, [install]", "Install Alfred Extensions."
43
+ desc "-i, [install]", "Install Alfred Workflows."
50
44
  map "-i" => :install
51
45
  def install
52
46
  say
53
47
 
54
48
  if valid_file?(@settings[:alfred_settings_root], "Invalid directory for Alfred settings root")
55
- if yes? "Installing Alfred Extensions will destroy exiting extensions of the same name. Continue (y/n)?"
56
- info "Installing Alfred Extensions..."
57
- info "Alfred settings root: #{@settings[:alfred_settings_root]}"
58
- %w(files scripts).each do |folder|
59
- directory File.join("alfred", "extensions", folder), File.join(@settings[:alfred_settings_root], "extensions", folder)
49
+ if yes? "Installing Alfred Workflows will destroy exiting workflows of the same name. Continue (y/n)?"
50
+ info "Installing Alfred Workflows..."
51
+
52
+ workflows = Dir.glob File.join(self.class.source_root, "workflows", "**")
53
+ alfred_workflows_root = File.join @settings[:alfred_settings_root], "workflows"
54
+ workflows.each do |workflow|
55
+ name = File.basename workflow
56
+ destination = File.join alfred_workflows_root, name
57
+ remove_file destination
58
+ directory File.join("workflows", name), destination
60
59
  end
61
- info "Alfred Extensions installed."
60
+
61
+ info "Alfred Workflows installed."
62
62
  else
63
- info "Alfred Extenions installation cancelled."
63
+ info "Alfred Workflows installation cancelled."
64
64
  end
65
65
  else
66
- error "Invalid directory for Alfred settings root: #{@settings[:alfred_settings_root]}"
66
+ error "Invalid Alfred settings directory: #{@settings[:alfred_settings_root]}"
67
67
  end
68
68
 
69
69
  say
@@ -78,7 +78,7 @@ module Pennyworth
78
78
  desc "-v, [version]", "Show version."
79
79
  map "-v" => :version
80
80
  def version
81
- say "Pennyworth " + VERSION
81
+ say "Pennyworth " + VERSION
82
82
  end
83
83
 
84
84
  desc "-h, [help]", "Show this message."
@@ -0,0 +1,15 @@
1
+ module Pennyworth
2
+ module Kits
3
+ # Provides OSX clipboard utility methods.
4
+ class Clipboard
5
+
6
+ # Copies text to the OSX clipboard.
7
+ # ==== Parameters
8
+ # * +text+ - Required. The text to send to the clipboard.
9
+ def self.copy text
10
+ IO.popen("pbcopy", 'w').print text
11
+ text
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,48 @@
1
+ module Pennyworth
2
+ module Kits
3
+ # Provides String utilities.
4
+ class String
5
+ # Builds a string from an array.
6
+ # ==== Parameters
7
+ # * +array+ - Required. The array to build a string from.
8
+ # * +delimiter+ - Optional. The delimiter used to join each array element. Default: ' '
9
+ def self.array_to_string array, delimiter = ' '
10
+ array * delimiter
11
+ end
12
+
13
+ # Converts and outputs a string array as a downcased string.
14
+ # ==== Parameters
15
+ # * +array+ - Required. The string array to process.
16
+ def self.downcase array
17
+ string = Pennyworth::Kits::String.array_to_string array
18
+ puts Pennyworth::Kits::Clipboard.copy(string.downcase)
19
+ end
20
+
21
+ # Converts and outputs a string array as an upcased string.
22
+ # ==== Parameters
23
+ # * +array+ - Required. The string array to process.
24
+ def self.upcase array
25
+ string = Pennyworth::Kits::String.array_to_string array
26
+ puts Pennyworth::Kits::Clipboard.copy(string.upcase)
27
+ end
28
+
29
+ # Converts and outputs a string array as a capitalized string.
30
+ # ==== Parameters
31
+ # * +array+ - Required. The string array to process.
32
+ def self.capitalize array
33
+ words = array.map {|word| word.capitalize}
34
+ words = Pennyworth::Kits::String.array_to_string words
35
+ puts Pennyworth::Kits::Clipboard.copy(words)
36
+ end
37
+
38
+ # Converts a string array to a single string and outputs the string length.
39
+ # ==== Parameters
40
+ # * +array+ - Required. The string array to process.
41
+ def self.length array
42
+ string = Pennyworth::Kits::String.array_to_string array
43
+ Pennyworth::Kits::Clipboard.copy(string)
44
+ puts string.length
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,131 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>bundleid</key>
6
+ <string></string>
7
+ <key>connections</key>
8
+ <dict>
9
+ <key>7C9DFBD8-8096-4B73-A181-1FBCD8EE12C6</key>
10
+ <array>
11
+ <dict>
12
+ <key>destinationuid</key>
13
+ <string>4F7FA8C0-A59D-4242-A038-FE9242C8793A</string>
14
+ <key>modifiers</key>
15
+ <integer>0</integer>
16
+ <key>modifiersubtext</key>
17
+ <string></string>
18
+ </dict>
19
+ </array>
20
+ <key>9B00D8C9-CD83-45B2-9AD3-6CA60CBB5F00</key>
21
+ <array>
22
+ <dict>
23
+ <key>destinationuid</key>
24
+ <string>7C9DFBD8-8096-4B73-A181-1FBCD8EE12C6</string>
25
+ <key>modifiers</key>
26
+ <integer>0</integer>
27
+ <key>modifiersubtext</key>
28
+ <string></string>
29
+ </dict>
30
+ </array>
31
+ </dict>
32
+ <key>createdby</key>
33
+ <string>Brooke Kuhlmann</string>
34
+ <key>description</key>
35
+ <string>Converts text to lowercase. Result sent to clipboard.</string>
36
+ <key>disabled</key>
37
+ <false/>
38
+ <key>name</key>
39
+ <string>Pennyworth String Downcase</string>
40
+ <key>objects</key>
41
+ <array>
42
+ <dict>
43
+ <key>config</key>
44
+ <dict>
45
+ <key>escaping</key>
46
+ <integer>63</integer>
47
+ <key>script</key>
48
+ <string>source ~/.bashrc
49
+ pennyworth -s -d {query}
50
+ </string>
51
+ <key>type</key>
52
+ <integer>0</integer>
53
+ </dict>
54
+ <key>type</key>
55
+ <string>alfred.workflow.action.script</string>
56
+ <key>uid</key>
57
+ <string>7C9DFBD8-8096-4B73-A181-1FBCD8EE12C6</string>
58
+ </dict>
59
+ <dict>
60
+ <key>config</key>
61
+ <dict>
62
+ <key>lastpathcomponent</key>
63
+ <false/>
64
+ <key>onlyshowifquerypopulated</key>
65
+ <false/>
66
+ <key>output</key>
67
+ <integer>0</integer>
68
+ <key>removeextension</key>
69
+ <false/>
70
+ <key>sticky</key>
71
+ <false/>
72
+ <key>text</key>
73
+ <string>{query}</string>
74
+ <key>title</key>
75
+ <string>String Downcase</string>
76
+ </dict>
77
+ <key>type</key>
78
+ <string>alfred.workflow.output.notification</string>
79
+ <key>uid</key>
80
+ <string>4F7FA8C0-A59D-4242-A038-FE9242C8793A</string>
81
+ </dict>
82
+ <dict>
83
+ <key>config</key>
84
+ <dict>
85
+ <key>argumenttype</key>
86
+ <integer>0</integer>
87
+ <key>keyword</key>
88
+ <string>down</string>
89
+ <key>subtext</key>
90
+ <string>Converts text to lowercase. Result sent to clipboard.</string>
91
+ <key>text</key>
92
+ <string>String Downcase</string>
93
+ <key>withspace</key>
94
+ <true/>
95
+ </dict>
96
+ <key>type</key>
97
+ <string>alfred.workflow.input.keyword</string>
98
+ <key>uid</key>
99
+ <string>9B00D8C9-CD83-45B2-9AD3-6CA60CBB5F00</string>
100
+ </dict>
101
+ </array>
102
+ <key>readme</key>
103
+ <string>Copyright © 2013 Red Alchemist.
104
+
105
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
106
+
107
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
108
+
109
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</string>
110
+ <key>uidata</key>
111
+ <dict>
112
+ <key>4F7FA8C0-A59D-4242-A038-FE9242C8793A</key>
113
+ <dict>
114
+ <key>ypos</key>
115
+ <real>10</real>
116
+ </dict>
117
+ <key>7C9DFBD8-8096-4B73-A181-1FBCD8EE12C6</key>
118
+ <dict>
119
+ <key>ypos</key>
120
+ <real>10</real>
121
+ </dict>
122
+ <key>9B00D8C9-CD83-45B2-9AD3-6CA60CBB5F00</key>
123
+ <dict>
124
+ <key>ypos</key>
125
+ <real>10</real>
126
+ </dict>
127
+ </dict>
128
+ <key>webaddress</key>
129
+ <string>http://www.redalchemist.com</string>
130
+ </dict>
131
+ </plist>
@@ -0,0 +1,131 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>bundleid</key>
6
+ <string></string>
7
+ <key>connections</key>
8
+ <dict>
9
+ <key>4B457A56-9BB7-4270-8731-728A09D5B3F1</key>
10
+ <array>
11
+ <dict>
12
+ <key>destinationuid</key>
13
+ <string>90DE3B5D-1A83-4C5C-9488-D51158525ABA</string>
14
+ <key>modifiers</key>
15
+ <integer>0</integer>
16
+ <key>modifiersubtext</key>
17
+ <string></string>
18
+ </dict>
19
+ </array>
20
+ <key>90DE3B5D-1A83-4C5C-9488-D51158525ABA</key>
21
+ <array>
22
+ <dict>
23
+ <key>destinationuid</key>
24
+ <string>B21124C7-1605-42BF-99D2-9DD26AFD727A</string>
25
+ <key>modifiers</key>
26
+ <integer>0</integer>
27
+ <key>modifiersubtext</key>
28
+ <string></string>
29
+ </dict>
30
+ </array>
31
+ </dict>
32
+ <key>createdby</key>
33
+ <string>Brooke Kuhlmann</string>
34
+ <key>description</key>
35
+ <string>Converts text to uppercase. Result sent to clipboard.</string>
36
+ <key>disabled</key>
37
+ <false/>
38
+ <key>name</key>
39
+ <string>Pennyworth String Upcase</string>
40
+ <key>objects</key>
41
+ <array>
42
+ <dict>
43
+ <key>config</key>
44
+ <dict>
45
+ <key>escaping</key>
46
+ <integer>63</integer>
47
+ <key>script</key>
48
+ <string>source ~/.bashrc
49
+ pennyworth -s -u {query}
50
+ </string>
51
+ <key>type</key>
52
+ <integer>0</integer>
53
+ </dict>
54
+ <key>type</key>
55
+ <string>alfred.workflow.action.script</string>
56
+ <key>uid</key>
57
+ <string>90DE3B5D-1A83-4C5C-9488-D51158525ABA</string>
58
+ </dict>
59
+ <dict>
60
+ <key>config</key>
61
+ <dict>
62
+ <key>argumenttype</key>
63
+ <integer>0</integer>
64
+ <key>keyword</key>
65
+ <string>up</string>
66
+ <key>subtext</key>
67
+ <string>Converts text to uppercase. Result sent to clipboard.</string>
68
+ <key>text</key>
69
+ <string>String Upcase</string>
70
+ <key>withspace</key>
71
+ <true/>
72
+ </dict>
73
+ <key>type</key>
74
+ <string>alfred.workflow.input.keyword</string>
75
+ <key>uid</key>
76
+ <string>4B457A56-9BB7-4270-8731-728A09D5B3F1</string>
77
+ </dict>
78
+ <dict>
79
+ <key>config</key>
80
+ <dict>
81
+ <key>lastpathcomponent</key>
82
+ <false/>
83
+ <key>onlyshowifquerypopulated</key>
84
+ <false/>
85
+ <key>output</key>
86
+ <integer>0</integer>
87
+ <key>removeextension</key>
88
+ <false/>
89
+ <key>sticky</key>
90
+ <false/>
91
+ <key>text</key>
92
+ <string>{query}</string>
93
+ <key>title</key>
94
+ <string>String Upcase</string>
95
+ </dict>
96
+ <key>type</key>
97
+ <string>alfred.workflow.output.notification</string>
98
+ <key>uid</key>
99
+ <string>B21124C7-1605-42BF-99D2-9DD26AFD727A</string>
100
+ </dict>
101
+ </array>
102
+ <key>readme</key>
103
+ <string>Copyright © 2013 Red Alchemist.
104
+
105
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
106
+
107
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
108
+
109
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</string>
110
+ <key>uidata</key>
111
+ <dict>
112
+ <key>4B457A56-9BB7-4270-8731-728A09D5B3F1</key>
113
+ <dict>
114
+ <key>ypos</key>
115
+ <real>10</real>
116
+ </dict>
117
+ <key>90DE3B5D-1A83-4C5C-9488-D51158525ABA</key>
118
+ <dict>
119
+ <key>ypos</key>
120
+ <real>10</real>
121
+ </dict>
122
+ <key>B21124C7-1605-42BF-99D2-9DD26AFD727A</key>
123
+ <dict>
124
+ <key>ypos</key>
125
+ <real>10</real>
126
+ </dict>
127
+ </dict>
128
+ <key>webaddress</key>
129
+ <string>http://www.redalchemist.com</string>
130
+ </dict>
131
+ </plist>
@@ -0,0 +1,131 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>bundleid</key>
6
+ <string></string>
7
+ <key>connections</key>
8
+ <dict>
9
+ <key>150BC32B-4DEB-443F-AEB3-6FE9CC3D6FCD</key>
10
+ <array>
11
+ <dict>
12
+ <key>destinationuid</key>
13
+ <string>4218D389-7CB5-43B6-B21E-D878D7785F73</string>
14
+ <key>modifiers</key>
15
+ <integer>0</integer>
16
+ <key>modifiersubtext</key>
17
+ <string></string>
18
+ </dict>
19
+ </array>
20
+ <key>FA7100B1-94C8-4BD5-BCC7-31FC50CC0725</key>
21
+ <array>
22
+ <dict>
23
+ <key>destinationuid</key>
24
+ <string>150BC32B-4DEB-443F-AEB3-6FE9CC3D6FCD</string>
25
+ <key>modifiers</key>
26
+ <integer>0</integer>
27
+ <key>modifiersubtext</key>
28
+ <string></string>
29
+ </dict>
30
+ </array>
31
+ </dict>
32
+ <key>createdby</key>
33
+ <string>Brooke Kuhlmann</string>
34
+ <key>description</key>
35
+ <string>Answers the string length. Input sent to clipboard.</string>
36
+ <key>disabled</key>
37
+ <false/>
38
+ <key>name</key>
39
+ <string>Pennyworth String Length</string>
40
+ <key>objects</key>
41
+ <array>
42
+ <dict>
43
+ <key>config</key>
44
+ <dict>
45
+ <key>argumenttype</key>
46
+ <integer>0</integer>
47
+ <key>keyword</key>
48
+ <string>length</string>
49
+ <key>subtext</key>
50
+ <string>Answers the string length. Input sent to clipboard.</string>
51
+ <key>text</key>
52
+ <string>String Length</string>
53
+ <key>withspace</key>
54
+ <true/>
55
+ </dict>
56
+ <key>type</key>
57
+ <string>alfred.workflow.input.keyword</string>
58
+ <key>uid</key>
59
+ <string>FA7100B1-94C8-4BD5-BCC7-31FC50CC0725</string>
60
+ </dict>
61
+ <dict>
62
+ <key>config</key>
63
+ <dict>
64
+ <key>escaping</key>
65
+ <integer>63</integer>
66
+ <key>script</key>
67
+ <string>source ~/.bashrc
68
+ pennyworth -s -l {query}
69
+ </string>
70
+ <key>type</key>
71
+ <integer>0</integer>
72
+ </dict>
73
+ <key>type</key>
74
+ <string>alfred.workflow.action.script</string>
75
+ <key>uid</key>
76
+ <string>150BC32B-4DEB-443F-AEB3-6FE9CC3D6FCD</string>
77
+ </dict>
78
+ <dict>
79
+ <key>config</key>
80
+ <dict>
81
+ <key>lastpathcomponent</key>
82
+ <false/>
83
+ <key>onlyshowifquerypopulated</key>
84
+ <false/>
85
+ <key>output</key>
86
+ <integer>0</integer>
87
+ <key>removeextension</key>
88
+ <false/>
89
+ <key>sticky</key>
90
+ <false/>
91
+ <key>text</key>
92
+ <string>{query}</string>
93
+ <key>title</key>
94
+ <string>String Length</string>
95
+ </dict>
96
+ <key>type</key>
97
+ <string>alfred.workflow.output.notification</string>
98
+ <key>uid</key>
99
+ <string>4218D389-7CB5-43B6-B21E-D878D7785F73</string>
100
+ </dict>
101
+ </array>
102
+ <key>readme</key>
103
+ <string>Copyright © 2013 Red Alchemist.
104
+
105
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
106
+
107
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
108
+
109
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</string>
110
+ <key>uidata</key>
111
+ <dict>
112
+ <key>150BC32B-4DEB-443F-AEB3-6FE9CC3D6FCD</key>
113
+ <dict>
114
+ <key>ypos</key>
115
+ <real>10</real>
116
+ </dict>
117
+ <key>4218D389-7CB5-43B6-B21E-D878D7785F73</key>
118
+ <dict>
119
+ <key>ypos</key>
120
+ <real>10</real>
121
+ </dict>
122
+ <key>FA7100B1-94C8-4BD5-BCC7-31FC50CC0725</key>
123
+ <dict>
124
+ <key>ypos</key>
125
+ <real>10</real>
126
+ </dict>
127
+ </dict>
128
+ <key>webaddress</key>
129
+ <string>http://www.redalchemist.com</string>
130
+ </dict>
131
+ </plist>