pennyworth 3.2.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +2 -0
  4. data/README.md +24 -25
  5. data/bin/pennyworth +2 -1
  6. data/lib/pennyworth.rb +3 -3
  7. data/lib/pennyworth/cli.rb +83 -38
  8. data/lib/pennyworth/identity.rb +3 -1
  9. data/lib/pennyworth/templates/workflows/user.workflow.B59B22A2-1880-4765-9358-412791BE9202/info.plist +164 -7
  10. data/lib/pennyworth/templates/workflows/user.workflow.B59B22A2-1880-4765-9358-412791BE9202/rails.png +0 -0
  11. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/icon.png +0 -0
  12. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/info.plist +105 -307
  13. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/string-camelcase.png +0 -0
  14. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/{F03EB975-27A1-49C1-BB1D-42886955C024.png → string-capitalize.png} +0 -0
  15. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/string-lowercase.png +0 -0
  16. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/{85BF3157-4376-4EEF-822C-8787964193B7.png → string-size.png} +0 -0
  17. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/string-snakecase.png +0 -0
  18. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/string-titleize.png +0 -0
  19. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/string-uppercase.png +0 -0
  20. data/lib/tasks/reek.rake +8 -0
  21. data/lib/tasks/rspec.rake +2 -0
  22. data/lib/tasks/rubocop.rake +2 -0
  23. metadata +125 -86
  24. metadata.gz.sig +0 -0
  25. data/lib/pennyworth/kits/clipboard.rb +0 -14
  26. data/lib/pennyworth/kits/string.rb +0 -48
  27. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/CD056464-6D30-4A8A-8202-E7B7AB5836D8.png +0 -0
  28. data/lib/pennyworth/templates/workflows/user.workflow.C431E56A-0EC2-47EE-94D5-D67D9FE323BE/ED61F954-8B44-47F9-AD2D-C236868286D1.png +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2392eaa6b397cba873effe698263cc1a8c5dbb27
4
- data.tar.gz: d08cbbf2fcb46a431390fbe030d2edbdacd06035
3
+ metadata.gz: 38c8c98330ee92f2741d190ec5057aba36f40c35
4
+ data.tar.gz: 3cacd478a5f0d0d51d76c3a722d0380b929bbec4
5
5
  SHA512:
6
- metadata.gz: 02a344cb739bceea46ed49f5ed683299c85d0dee443f960cd89169f85aa607aeb42edd9081a517dd4ce523f40cc2c38dbc5c3141fe64ead6f26f6da8a79712b7
7
- data.tar.gz: 21ac2f81421e223f653d3134f0c14f27f3da03464ca2a4920c415cb3608b13c097eae570300046259f575b46428b03f1e0db87c30063c25221c0bd8fe8136afe
6
+ metadata.gz: 6a2aec62949c38af88c2553e4818ace19f338351db400f989ab2afd916177bde83d2f9c50de81b56ef51003665a2b1c2a1e8a30d255d24ec78839653c4996d36
7
+ data.tar.gz: f98d36d7509a9b458714e79cdc9f7e9b6ebd03eaa279eb6f6efcb173e0a9cd98dba4f0266a4e8cfaf162df13f435b874cd1dea8b6a2b6a502d0fa29cc932b700
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ In�6�U� ��c��F����7�����Pf��o6XL�^�|��v .��?��j�#�4���
2
+ ��_t�ƈ�m����
data/README.md CHANGED
@@ -30,26 +30,23 @@ A command line interface that enhances and extends Alfred with Ruby support.
30
30
  # Features
31
31
 
32
32
  - Adds Ruby support to Alfred.
33
- - Adds the following Alfred Workflows:
34
- - Pennyworth String Upcase
35
- - Pennyworth String Length
36
- - Pennyworth String Downcase
37
- - Pennyworth String Capitalize
38
- - Ruby on Rails Kit
33
+ - Adds Alfred Workflow:
34
+
35
+ ![Alfred Workflow](doc/alfred_workflow.png)
39
36
 
40
37
  # Requirements
41
38
 
42
- 0. [OSX](https://www.apple.com/osx).
39
+ 0. [macOS](https://www.apple.com/macos).
43
40
  0. [Alfred](https://www.alfredapp.com) (Version 2.x.x or higher).
44
41
  0. [Alfred Powerpack](https://www.alfredapp.com/purchase).
45
42
  0. [rbenv](https://github.com/sstephenson/rbenv).
46
- 0. [MRI 2.x.x](https://www.ruby-lang.org).
43
+ 0. [Ruby 2.x.x](https://www.ruby-lang.org).
47
44
 
48
45
  # Setup
49
46
 
50
47
  For a secure install, type the following from the command line (recommended):
51
48
 
52
- gem cert --add <(curl -Ls https://www.alchemists.io/gem-public.pem)
49
+ gem cert --add <(curl --location --silent https://www.alchemists.io/gem-public.pem)
53
50
  gem install pennyworth --trust-policy MediumSecurity
54
51
 
55
52
  NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification while
@@ -61,7 +58,7 @@ For an insecure install, type the following (not recommended):
61
58
 
62
59
  You can configure common settings for future gem builds by creating the following file:
63
60
 
64
- ~/.pennyworth/settings.yml
61
+ ~/.pennyworthrc
65
62
 
66
63
  ...using the following settings (for example):
67
64
 
@@ -72,18 +69,20 @@ You can configure common settings for future gem builds by creating the followin
72
69
 
73
70
  From the command line, type: pennyworth
74
71
 
75
- pennyworth -e, [edit] # Edit gem settings in default editor (assumes $EDITOR environment variable).
76
- pennyworth -h, [help] # Show this message.
77
- pennyworth -i, [install] # Install Alfred Workflows.
78
- pennyworth -s, [string] # Manipulate strings.
79
- pennyworth -v, [version] # Show version.
72
+ pennyworth -c, [--config] # Manage gem configuration.
73
+ pennyworth -h, [--help=COMMAND] # Show this message or get help for a command.
74
+ pennyworth -i, [--install] # Install Alfred Workflows.
75
+ pennyworth -s, [--string=VALUE] # Manipulate strings.
76
+ pennyworth -v, [--version] # Show gem version.
80
77
 
81
78
  For string options, type: pennyworth help string
82
79
 
83
- -d, [--downcase=one two three] # Downcase a string.
84
- -u, [--upcase=one two three] # Upcase a string.
85
- -c, [--capitalize=one two three] # Capitalize words in a string.
86
- -l, [--length=one two three] # Answer the length of a string.
80
+ -d, [--downcase], [--no-downcase] # Downcase string.
81
+ -u, [--upcase], [--no-upcase] # Upcase string.
82
+ -t, [--titleize], [--no-titleize] # Capitalize each word and delimit with space or forward slash.
83
+ -c, [--camelcase], [--no-camelcase] # Capitalize each word and delimit with nothing or double colon.
84
+ -s, [--snakecase], [--no-snakecase] # Downcase each word and delimit with underscore or forward slash.
85
+ -s, [--size], [--no-size] # Calculate string size.
87
86
 
88
87
  While the command line options are nice, the real power comes from running the following command:
89
88
 
@@ -104,14 +103,14 @@ To test, run:
104
103
 
105
104
  Read [Semantic Versioning](http://semver.org) for details. Briefly, it means:
106
105
 
107
- - Patch (x.y.Z) - Incremented for small, backwards compatible bug fixes.
108
- - Minor (x.Y.z) - Incremented for new, backwards compatible public API enhancements and/or bug fixes.
106
+ - Patch (x.y.Z) - Incremented for small, backwards compatible, bug fixes.
107
+ - Minor (x.Y.z) - Incremented for new, backwards compatible, public API enhancements/fixes.
109
108
  - Major (X.y.z) - Incremented for any backwards incompatible public API changes.
110
109
 
111
110
  # Code of Conduct
112
111
 
113
- Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By participating in this project
114
- you agree to abide by its terms.
112
+ Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By
113
+ participating in this project you agree to abide by its terms.
115
114
 
116
115
  # Contributions
117
116
 
@@ -120,11 +119,11 @@ Read [CONTRIBUTING](CONTRIBUTING.md) for details.
120
119
  # License
121
120
 
122
121
  Copyright (c) 2012 [Alchemists](https://www.alchemists.io).
123
- Read the [LICENSE](LICENSE.md) for details.
122
+ Read [LICENSE](LICENSE.md) for details.
124
123
 
125
124
  # History
126
125
 
127
- Read the [CHANGELOG](CHANGELOG.md) for details.
126
+ Read [CHANGES](CHANGES.md) for details.
128
127
  Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
129
128
 
130
129
  # Credits
data/bin/pennyworth CHANGED
@@ -1,4 +1,5 @@
1
- #!/usr/bin/ruby
1
+ #! /usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require "pennyworth"
4
5
  require "pennyworth/cli"
data/lib/pennyworth.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Dependencies
1
+ # frozen_string_literal: true
2
+
2
3
  require "pennyworth/identity"
3
- require "pennyworth/kits/clipboard"
4
- require "pennyworth/kits/string"
4
+ require "pennyworth/cli"
@@ -1,59 +1,91 @@
1
- require "yaml"
1
+ # frozen_string_literal: true
2
+
2
3
  require "thor"
3
4
  require "thor/actions"
4
5
  require "thor_plus/actions"
6
+ require "refinements/strings"
7
+ require "runcom"
5
8
 
6
9
  module Pennyworth
7
10
  # The Command Line Interface (CLI) for the gem.
11
+ # rubocop:disable Metrics/ClassLength
8
12
  class CLI < Thor
9
13
  include Thor::Actions
10
14
  include ThorPlus::Actions
15
+ using Refinements::Strings
11
16
 
12
- package_name Pennyworth::Identity.version_label
17
+ package_name Identity.version_label
13
18
 
14
- # Overwrites the Thor template source root.
15
19
  def self.source_root
16
20
  File.expand_path File.join(File.dirname(__FILE__), "templates")
17
21
  end
18
22
 
19
- # Initialize.
23
+ def self.configuration
24
+ Runcom::Configuration.new file_name: Identity.file_name
25
+ end
26
+
20
27
  def initialize args = [], options = {}, config = {}
21
28
  super args, options, config
22
- @settings_file = File.join ENV["HOME"], ".pennyworth", "settings.yml"
23
- @settings = load_yaml @settings_file
24
29
  end
25
30
 
26
- desc "-s, [string=STRING]", "Manipulate strings."
27
- map %w(-s --string) => :string
28
- method_option :downcase, aliases: "-d", desc: "Downcase a string.", type: :array
29
- method_option :upcase, aliases: "-u", desc: "Upcase a string.", type: :array
30
- method_option :capitalize, aliases: "-c", desc: "Capitalize words in a string.", type: :array
31
- method_option :length, aliases: "-l", desc: "Answer the length of a string.", type: :array
32
- def string
33
- case
34
- when options[:downcase]
35
- Pennyworth::Kits::String.downcase options[:downcase]
36
- when options[:upcase]
37
- Pennyworth::Kits::String.upcase options[:upcase]
38
- when options[:capitalize]
39
- Pennyworth::Kits::String.capitalize options[:capitalize]
40
- when options[:length]
41
- Pennyworth::Kits::String.length options[:length]
42
- else say("Type 'pennyworth help string' for usage.")
31
+ desc "-s, [--string=VALUE]", "Manipulate strings."
32
+ map %w[-s --string] => :string
33
+ method_option :downcase,
34
+ aliases: "-d",
35
+ desc: "Downcase string.",
36
+ type: :boolean,
37
+ default: false
38
+ method_option :upcase,
39
+ aliases: "-u",
40
+ desc: "Upcase string.",
41
+ type: :boolean,
42
+ default: false
43
+ method_option :titleize,
44
+ aliases: "-t",
45
+ desc: "Capitalize each word and delimit with space or forward slash.",
46
+ type: :boolean,
47
+ default: false
48
+ method_option :camelcase,
49
+ aliases: "-c",
50
+ desc: "Capitalize each word and delimit with nothing or double colon.",
51
+ type: :boolean,
52
+ default: false
53
+ method_option :snakecase,
54
+ aliases: "-s",
55
+ desc: "Downcase each word and delimit with underscore or forward slash.",
56
+ type: :boolean,
57
+ default: false
58
+ method_option :size,
59
+ aliases: "-s",
60
+ desc: "Calculate string size.",
61
+ type: :boolean,
62
+ default: false
63
+ # rubocop:disable Metrics/CyclomaticComplexity
64
+ # rubocop:disable Metrics/PerceivedComplexity
65
+ def string value
66
+ if options.downcase? then say(value.downcase)
67
+ elsif options.upcase? then say(value.upcase)
68
+ elsif options.titleize? then say(value.titleize)
69
+ elsif options.camelcase? then say(value.camelcase)
70
+ elsif options.snakecase? then say(value.snakecase)
71
+ elsif options.size? then say(value.size)
72
+ else say("Type 'pennyworth help string' for usage.")
43
73
  end
44
74
  end
45
75
 
46
- desc "-i, [install]", "Install Alfred Workflows."
47
- map %w(-i --install) => :install
76
+ desc "-i, [--install]", "Install Alfred Workflows."
77
+ map %w[-i --install] => :install
48
78
  def install
49
79
  say
50
80
 
51
- if valid_file?(@settings[:alfred_settings_root], "Invalid directory for Alfred settings root")
81
+ alfred_settings_root = self.class.configuration.to_h[:alfred_settings_root]
82
+
83
+ if valid_file?(alfred_settings_root, "Invalid directory for Alfred settings root")
52
84
  if yes? "Installing Alfred Workflows will destroy exiting workflows of the same name. Continue (y/n)?"
53
85
  info "Installing Alfred Workflows..."
54
86
 
55
87
  workflows = Dir.glob File.join(self.class.source_root, "workflows", "**")
56
- alfred_workflows_root = File.join @settings[:alfred_settings_root], "workflows"
88
+ alfred_workflows_root = File.join alfred_settings_root, "workflows"
57
89
  workflows.each do |workflow|
58
90
  name = File.basename workflow
59
91
  destination = File.join alfred_workflows_root, name
@@ -66,28 +98,41 @@ module Pennyworth
66
98
  info "Alfred Workflows installation cancelled."
67
99
  end
68
100
  else
69
- error "Invalid Alfred settings directory: #{@settings[:alfred_settings_root]}"
101
+ error "Invalid Alfred settings directory: #{alfred_settings_root}"
70
102
  end
71
103
 
72
104
  say
73
105
  end
74
106
 
75
- desc "-e, [--edit]", "Edit #{Pennyworth::Identity.label} settings in default editor."
76
- map %w(-e --edit) => :edit
77
- def edit
78
- `#{editor} #{@settings_file}`
107
+ desc "-c, [--config]", %(Manage gem configuration ("#{configuration.computed_path}").)
108
+ map %w[-c --config] => :config
109
+ method_option :edit,
110
+ aliases: "-e",
111
+ desc: "Edit gem configuration.",
112
+ type: :boolean, default: false
113
+ method_option :info,
114
+ aliases: "-i",
115
+ desc: "Print gem configuration.",
116
+ type: :boolean, default: false
117
+ def config
118
+ path = self.class.configuration.computed_path
119
+
120
+ if options.edit? then `#{editor} #{path}`
121
+ elsif options.info? then say(path)
122
+ else help(:config)
123
+ end
79
124
  end
80
125
 
81
- desc "-v, [--version]", "Show #{Pennyworth::Identity.label} version."
82
- map %w(-v --version) => :version
126
+ desc "-v, [--version]", "Show gem version."
127
+ map %w[-v --version] => :version
83
128
  def version
84
- say Pennyworth::Identity.version_label
129
+ say Identity.version_label
85
130
  end
86
131
 
87
- desc "-h, [--help=HELP]", "Show this message or get help for a command."
88
- map %w(-h --help) => :help
132
+ desc "-h, [--help=COMMAND]", "Show this message or get help for a command."
133
+ map %w[-h --help] => :help
89
134
  def help task = nil
90
- say && super
135
+ say and super
91
136
  end
92
137
  end
93
138
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Pennyworth
2
4
  # Gem identity information.
3
5
  module Identity
@@ -10,7 +12,7 @@ module Pennyworth
10
12
  end
11
13
 
12
14
  def self.version
13
- "3.2.0"
15
+ "4.0.0"
14
16
  end
15
17
 
16
18
  def self.version_label
@@ -8,6 +8,17 @@
8
8
  <string>Tools</string>
9
9
  <key>connections</key>
10
10
  <dict>
11
+ <key>8B48DD29-7E4B-4424-8B8E-18F47785F817</key>
12
+ <array>
13
+ <dict>
14
+ <key>destinationuid</key>
15
+ <string>A3A3916E-1338-4403-BA88-39E4D9E1B703</string>
16
+ <key>modifiers</key>
17
+ <integer>0</integer>
18
+ <key>modifiersubtext</key>
19
+ <string></string>
20
+ </dict>
21
+ </array>
11
22
  <key>D00FF9D7-4976-488B-AC15-4F268B0FE089</key>
12
23
  <array/>
13
24
  </dict>
@@ -30,8 +41,16 @@
30
41
  <integer>127</integer>
31
42
  <key>keyword</key>
32
43
  <string>ror</string>
44
+ <key>queuedelaycustom</key>
45
+ <integer>1</integer>
46
+ <key>queuedelayimmediatelyinitially</key>
47
+ <false/>
48
+ <key>queuedelaymode</key>
49
+ <integer>0</integer>
50
+ <key>queuemode</key>
51
+ <integer>1</integer>
33
52
  <key>runningsubtext</key>
34
- <string>Launching default browser...</string>
53
+ <string>Processing...</string>
35
54
  <key>script</key>
36
55
  <string>#!/usr/bin/ruby -w
37
56
 
@@ -44,12 +63,12 @@ case "{query}"
44
63
  `open #{root_url}/rails/routes`
45
64
  when 'm'
46
65
  `open #{root_url}/rails/mailers`
47
- when 'f'
48
- `open #{root_url}?pp=flamegraph`
49
- when 'p'
50
- `open #{root_url}?pp=profile-gc-ruby-head`
51
- else
52
- `open #{root_url}`
66
+ when 'q'
67
+ `open #{root_url}/sidekiq`
68
+ when 'j'
69
+ `open http://localhost:8888`
70
+ when 'e'
71
+ `open http://localhost:9200/_plugin/kopf`
53
72
  end
54
73
  </string>
55
74
  <key>subtext</key>
@@ -68,6 +87,134 @@ end
68
87
  <key>version</key>
69
88
  <integer>0</integer>
70
89
  </dict>
90
+ <dict>
91
+ <key>config</key>
92
+ <dict>
93
+ <key>argumenttype</key>
94
+ <integer>1</integer>
95
+ <key>escaping</key>
96
+ <integer>127</integer>
97
+ <key>keyword</key>
98
+ <string>rorp</string>
99
+ <key>queuedelaycustom</key>
100
+ <integer>1</integer>
101
+ <key>queuedelayimmediatelyinitially</key>
102
+ <false/>
103
+ <key>queuedelaymode</key>
104
+ <integer>0</integer>
105
+ <key>queuemode</key>
106
+ <integer>1</integer>
107
+ <key>runningsubtext</key>
108
+ <string>Getting Rack Mini-Profiler options...</string>
109
+ <key>script</key>
110
+ <string>#!/bin/bash
111
+
112
+ root_url="http://localhost:3000"
113
+
114
+ cat &lt;&lt; EOB
115
+ &lt;?xml version="1.0"?&gt;
116
+ &lt;items&gt;
117
+ &lt;item uid="env" arg="$root_url?pp=env" valid="YES" type="default"&gt;
118
+ &lt;title&gt;Display Rack Environment&lt;/title&gt;
119
+ &lt;subtitle&gt;Display the current Rack environment.&lt;/subtitle&gt;
120
+ &lt;icon&gt;rails.png&lt;/icon&gt;
121
+ &lt;/item&gt;
122
+ &lt;item uid="skip" arg="$root_url?pp=skip" valid="YES" type="default"&gt;
123
+ &lt;title&gt;Skip This Request&lt;/title&gt;
124
+ &lt;subtitle&gt;Skip profiling for this request only.&lt;/subtitle&gt;
125
+ &lt;icon&gt;rails.png&lt;/icon&gt;
126
+ &lt;/item&gt;
127
+ &lt;item uid="full-backtrace" arg="$root_url?pp=full-backtrace" valid="YES" type="default"&gt;
128
+ &lt;title&gt;Enable Full Backtraces&lt;/title&gt;
129
+ &lt;subtitle&gt;Enable full backtraces for SQL executed. Sticky. Use Normal Backtraces, to disable.&lt;/subtitle&gt;
130
+ &lt;icon&gt;rails.png&lt;/icon&gt;
131
+ &lt;/item&gt;
132
+ &lt;item uid="normal-backtrace" arg="$root_url?pp=normal-backtrace" valid="YES" type="default"&gt;
133
+ &lt;title&gt;Enable Normal Backtraces&lt;/title&gt;
134
+ &lt;subtitle&gt;Collect stack traces from all the SQL executed and filter normally.&lt;/subtitle&gt;
135
+ &lt;icon&gt;rails.png&lt;/icon&gt;
136
+ &lt;/item&gt;
137
+ &lt;item uid="disable-backtrace" arg="$root_url?pp=no-backtrace" valid="YES" type="default"&gt;
138
+ &lt;title&gt;Disable Backtraces&lt;/title&gt;
139
+ &lt;subtitle&gt;Don\'t collect stack traces from the SQL executed. Sticky. Use Normal Backtraces, to enable.&lt;/subtitle&gt;
140
+ &lt;icon&gt;rails.png&lt;/icon&gt;
141
+ &lt;/item&gt;
142
+ &lt;item uid="enable" arg="$root_url?pp=enable" valid="YES" type="default"&gt;
143
+ &lt;title&gt;Enable Profiling&lt;/title&gt;
144
+ &lt;subtitle&gt;Enable profiling for this session.&lt;/subtitle&gt;
145
+ &lt;icon&gt;rails.png&lt;/icon&gt;
146
+ &lt;/item&gt;
147
+ &lt;item uid="disable" arg="$root_url?pp=disable" valid="YES" type="default"&gt;
148
+ &lt;title&gt;Disable Profiling&lt;/title&gt;
149
+ &lt;subtitle&gt;Disable profiling for this session.&lt;/subtitle&gt;
150
+ &lt;icon&gt;rails.png&lt;/icon&gt;
151
+ &lt;/item&gt;
152
+ &lt;item uid="gc" arg="$root_url?pp=profile-gc-ruby-head" valid="YES" type="default"&gt;
153
+ &lt;title&gt;Profile Garbage Collection&lt;/title&gt;
154
+ &lt;subtitle&gt;Profile garbage collection.&lt;/subtitle&gt;
155
+ &lt;icon&gt;rails.png&lt;/icon&gt;
156
+ &lt;/item&gt;
157
+ &lt;item uid="flamegraph" arg="$root_url?pp=flamegraph" valid="YES" type="default"&gt;
158
+ &lt;title&gt;Display Flamegraph&lt;/title&gt;
159
+ &lt;subtitle&gt;Displays graph representing sampled activity.&lt;/subtitle&gt;
160
+ &lt;icon&gt;rails.png&lt;/icon&gt;
161
+ &lt;/item&gt;
162
+ &lt;item uid="flamegraph-embedded" arg="$root_url?pp=flamegraph_embed" valid="YES" type="default"&gt;
163
+ &lt;title&gt;Display Embedded Flamegraph&lt;/title&gt;
164
+ &lt;subtitle&gt;Displays a graph representing sampled activity, embedded resources for use on an intranet.&lt;/subtitle&gt;
165
+ &lt;icon&gt;rails.png&lt;/icon&gt;
166
+ &lt;/item&gt;
167
+ &lt;item uid="trace-exceptions" arg="$root_url?pp=trace-exceptions" valid="YES" type="default"&gt;
168
+ &lt;title&gt;Trace Exceptions&lt;/title&gt;
169
+ &lt;subtitle&gt;Answers all the spots where application raises execptions.&lt;/subtitle&gt;
170
+ &lt;icon&gt;rails.png&lt;/icon&gt;
171
+ &lt;/item&gt;
172
+ &lt;item uid="analyze-memory" arg="$root_url?pp=analyze-memory" valid="YES" type="default"&gt;
173
+ &lt;title&gt;Analyze Memory&lt;/title&gt;
174
+ &lt;subtitle&gt;Perform basic memory analysis of heap.&lt;/subtitle&gt;
175
+ &lt;icon&gt;rails.png&lt;/icon&gt;
176
+ &lt;/item&gt;
177
+ &lt;item uid="help" arg="$root_url?pp=help" valid="YES" type="default"&gt;
178
+ &lt;title&gt;Display Help&lt;/title&gt;
179
+ &lt;subtitle&gt;Display all possible options.&lt;/subtitle&gt;
180
+ &lt;icon&gt;rails.png&lt;/icon&gt;
181
+ &lt;/item&gt;
182
+ &lt;/items&gt;
183
+ EOB
184
+ </string>
185
+ <key>subtext</key>
186
+ <string>Display Rack Mini-Profiler options.</string>
187
+ <key>title</key>
188
+ <string>Rack Mini-Profiler</string>
189
+ <key>type</key>
190
+ <integer>0</integer>
191
+ <key>withspace</key>
192
+ <true/>
193
+ </dict>
194
+ <key>type</key>
195
+ <string>alfred.workflow.input.scriptfilter</string>
196
+ <key>uid</key>
197
+ <string>8B48DD29-7E4B-4424-8B8E-18F47785F817</string>
198
+ <key>version</key>
199
+ <integer>0</integer>
200
+ </dict>
201
+ <dict>
202
+ <key>config</key>
203
+ <dict>
204
+ <key>plusspaces</key>
205
+ <false/>
206
+ <key>url</key>
207
+ <string>{query}</string>
208
+ <key>utf8</key>
209
+ <true/>
210
+ </dict>
211
+ <key>type</key>
212
+ <string>alfred.workflow.action.openurl</string>
213
+ <key>uid</key>
214
+ <string>A3A3916E-1338-4403-BA88-39E4D9E1B703</string>
215
+ <key>version</key>
216
+ <integer>0</integer>
217
+ </dict>
71
218
  </array>
72
219
  <key>readme</key>
73
220
  <string>Copyright © 2014 Alchemists.
@@ -79,6 +226,16 @@ The above copyright notice and this permission notice shall be included in all c
79
226
  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>
80
227
  <key>uidata</key>
81
228
  <dict>
229
+ <key>8B48DD29-7E4B-4424-8B8E-18F47785F817</key>
230
+ <dict>
231
+ <key>ypos</key>
232
+ <real>120</real>
233
+ </dict>
234
+ <key>A3A3916E-1338-4403-BA88-39E4D9E1B703</key>
235
+ <dict>
236
+ <key>ypos</key>
237
+ <real>120</real>
238
+ </dict>
82
239
  <key>D00FF9D7-4976-488B-AC15-4F268B0FE089</key>
83
240
  <dict>
84
241
  <key>ypos</key>