schlueter-rushmate 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,6 @@
1
+ == 0.0.8 / 2008-08-18
2
+ * documentation release
3
+
1
4
  == 0.0.7 / 2008-08-14
2
5
  * added texts
3
6
  * rename input -> user_input
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Nicholas Schlueter (http://simpltry.com)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README CHANGED
@@ -1,6 +1,7 @@
1
1
  = Rushmate
2
2
 
3
- Rushmate attempts to make Textmate (http://macromates.com) custom command writing in ruby cleaner and smaller. It does this by leveraging rush (http://rush.heroku.com/).
3
+ Rushmate attempts to make Textmate (http://macromates.com) custom command writing in ruby
4
+ cleaner and smaller. It does this by leveraging rush (http://rush.heroku.com/).
4
5
 
5
6
  == Dependencies
6
7
 
@@ -9,6 +10,7 @@ Rushmate attempts to make Textmate (http://macromates.com) custom command writin
9
10
  == Install
10
11
 
11
12
  gem sources -a http://gems.github.com
13
+
12
14
  sudo gem install schlueter-rushmate
13
15
 
14
16
  == Sample
data/Rakefile CHANGED
@@ -1,5 +1,24 @@
1
- task :coverage do
1
+ task :coverage => :cleanup do
2
2
  system("rm -fr coverage")
3
3
  system("export TM_SUPPORT_PATH=/Applications/TextMate.app/Contents/SharedSupport/Support && rcov --sort=coverage --threshold=100 --exclude=gems/*,TextMate.app --sort=coverage test/*_test.rb")
4
4
  system("open coverage/index.html")
5
+ end
6
+
7
+ task :install => :cleanup do
8
+ puts %x{gem build rushmate.gemspec}
9
+ puts %x{sudo gem install --local -f rushmate}
10
+ end
11
+
12
+ task :uninstall do
13
+ puts %x{sudo gem uninstall rushmate}
14
+ end
15
+
16
+ task :cleanup do
17
+ %x{rm -rf coverage}
18
+ %x{rm -f rushmate-*}
19
+ %x{rm -rf doc}
20
+ end
21
+
22
+ task :rdoc => :cleanup do
23
+ %x{rdoc -o doc -m README lib/rushmate/**.rb README MIT-LICENSE}
5
24
  end
@@ -3,24 +3,45 @@ module Rushmate
3
3
  class Command
4
4
  include TextmateHelper
5
5
  attr_accessor :shell
6
+ # Class construction is designed to take a block that gets executed
7
+ # as part of the class
8
+ #
9
+ # Example:
10
+ #
11
+ # Rushmate::Command.new {
12
+ # exit.show_tool_tip project_directory['**/*.rb'].line_count
13
+ # }
6
14
  def initialize(&block)
7
15
  setup_shell
8
16
  self.instance_eval(&block) if block
9
17
  end
10
18
 
19
+ # execute the parameter against a Rush::Shell instance
11
20
  def execute(thing)
12
21
  shell.execute(thing)
13
22
  $last_res
14
23
  end
15
24
 
25
+ # anything not defined in Rushmate::Command should be defered to
26
+ # Rushmate::Command#execute
16
27
  def method_missing(sym, *args, &block)
17
28
  execute sym.to_s
18
29
  end
19
30
 
31
+ # return a reference to Rushmate::Exit
32
+ # This is useful for shortening up your code
33
+ # Example:
34
+ #
35
+ # exit.show_tool_tip("nothing found")
20
36
  def exit
21
37
  Rushmate::Exit
22
38
  end
23
39
 
40
+ # return a reference to Rushmate::UserInput
41
+ # This is useful for shortening up your code
42
+ # Example:
43
+ #
44
+ # user_input.quick_menu_from_array(['opt 1', 'opt 2'])
24
45
  def user_input
25
46
  Rushmate::UserInput
26
47
  end
@@ -1,40 +1,58 @@
1
1
  module Rushmate
2
+ # Rushmate::Exit provides a list of methods for exiting
3
+ # a command and changing the output type in Textmate
4
+ #
5
+ # For instance if you specified the command to be
6
+ # output: Discard
7
+ # it may be benificial to show a tooltip if the command
8
+ # could not do what it was tasked to do
9
+ #
10
+ # Example:
11
+ #
12
+ # Rushmate::Exit.show_tool_tip("could not find file")
2
13
  module Exit
3
14
  class << self
4
15
  def discard
5
16
  exit 200
6
17
  end
7
18
 
19
+ # changes output to replace selected text
8
20
  def replace_text(out = nil)
9
21
  print out if out
10
22
  exit 201
11
23
  end
12
24
 
25
+ # changes output to replace selected document
13
26
  def replace_document(out = nil)
14
27
  print out if out
15
28
  exit 202
16
29
  end
17
30
 
31
+ # changes output to insert text at editor position
18
32
  def insert_text(out = nil)
19
33
  print out if out
20
34
  exit 203
21
35
  end
22
36
 
37
+ # changes output to insert a snippet at editor position
23
38
  def insert_snippet(out = nil)
24
39
  print out if out
25
40
  exit 204
26
41
  end
27
42
 
43
+ # changes output to show html
28
44
  def show_html(out = nil)
29
45
  print out if out
30
46
  exit 205
31
47
  end
32
48
 
49
+ # changes output to show a tool tip
33
50
  def show_tool_tip(out = nil)
34
51
  print out if out
35
52
  exit 206
36
53
  end
37
54
 
55
+ # changes output to create a new document
38
56
  def create_new_document(out = nil)
39
57
  print out if out
40
58
  exit 207
@@ -1,33 +1,53 @@
1
1
  module Rushmate
2
+ # Rushmate::TextmateHelper provides convenience methods to Environment
3
+ # variables that Textmate exposes to your command
2
4
  module TextmateHelper
5
+ # returns the current line in the editor window
3
6
  def current_line
4
7
  ENV["TM_CURRENT_LINE"]
5
8
  end
6
9
 
10
+ # returns the current word in the editor window
7
11
  def current_word
8
12
  ENV['TM_CURRENT_WORD']
9
13
  end
10
14
 
15
+ # returns the directory of the active file in the
16
+ # editor window
17
+ #
18
+ # return type Rush::Dir
11
19
  def tm_directory
12
20
  root[ENV['TM_DIRECTORY'] + "/"]
13
21
  end
14
22
 
23
+ # returns the file of the active file in
24
+ # the editor window
25
+ #
26
+ # return type Rush::File
15
27
  def tm_file
16
28
  root[ENV['TM_FILEPATH']]
17
29
  end
18
30
 
31
+ # returns the file name of the active file in the
32
+ # editor window
19
33
  def tm_filename
20
34
  ENV["TM_FILENAME"]
21
35
  end
22
36
 
37
+ # indicates if the command was activeted from a file
38
+ # within a textmate project
23
39
  def project_directory?
24
40
  ENV['TM_PROJECT_DIRECTORY']
25
41
  end
26
42
 
43
+ # returns the directory of the textmate project
44
+ #
45
+ # return type Rush::Dir
27
46
  def project_directory
28
47
  root[ENV['TM_PROJECT_DIRECTORY'] + "/"]
29
48
  end
30
49
 
50
+ # returns the text selected within Textmate
31
51
  def selected_text
32
52
  ENV["TM_SELECTED_TEXT"]
33
53
  end
@@ -1,6 +1,16 @@
1
1
  module Rushmate
2
+ # The Rushmate::UserInput class is a convenience class
3
+ # it provides higher level apis to methods defined in TextMate::UI
2
4
  module UserInput
3
5
  class << self
6
+ # quick_menu_from_array takes an array of strings and presents them
7
+ # as menu options similar to the context menu
8
+ #
9
+ # Return type is the string the user selected
10
+ #
11
+ # This method blocks until the user chooses an option, if the user
12
+ # presses esc the command is terminated without notifing the
13
+ # command script
4
14
  def quick_menu_from_array(strings)
5
15
  strings[TextMate::UI.menu(strings)]
6
16
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "rushmate"
3
- s.version = "0.0.7"
3
+ s.version = "0.0.8"
4
4
  s.email = "schlueter@gmail.com"
5
5
  s.homepage = "http://github.com/schlueter/rushmate"
6
6
  s.description = "Makes writing TextMate commands easier by providing convient methods for getting environment variables and getting user input."
@@ -12,6 +12,7 @@ Gem::Specification.new do |s|
12
12
  s.authors = ["Nicholas Schlueter"]
13
13
  s.files = [
14
14
  "History.txt",
15
+ "MIT-LICENSE",
15
16
  "Manifest.txt",
16
17
  "README",
17
18
  "Rakefile",
@@ -29,7 +30,7 @@ Gem::Specification.new do |s|
29
30
 
30
31
  s.has_rdoc = true
31
32
  s.rdoc_options = ["--main", "README"]
32
- s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README"]
33
+ s.extra_rdoc_files = ["History.txt", "MIT-LICENSE", "Manifest.txt", "README"]
33
34
  s.add_dependency(%q<rush>, [">= 0.4"])
34
35
 
35
36
  if s.respond_to? :specification_version then
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schlueter-rushmate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Schlueter
@@ -29,10 +29,12 @@ extensions: []
29
29
 
30
30
  extra_rdoc_files:
31
31
  - History.txt
32
+ - MIT-LICENSE
32
33
  - Manifest.txt
33
34
  - README
34
35
  files:
35
36
  - History.txt
37
+ - MIT-LICENSE
36
38
  - Manifest.txt
37
39
  - README
38
40
  - Rakefile