rapt 0.1.0

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.
@@ -0,0 +1,58 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ $testing = true
4
+ require File.dirname(__FILE__) + "/../../../lib/commands/plugin"
5
+ require File.dirname(__FILE__) + "/../../mocks/rails_environment"
6
+
7
+ # TODO Mock the remote repository so we don't have to hit an actual server for the plugins.
8
+ class Commands::Plugin::PluginTest < Test::Unit::TestCase
9
+
10
+ def setup
11
+ @name = 'exception_notification'
12
+ @uri = "http://dev.rubyonrails.org/svn/rails/plugins/#{@name}"
13
+ @plugin = Plugin.new @uri, @name
14
+ end
15
+
16
+ def test_name_and_uri
17
+ assert_equal @name, @plugin.name
18
+ assert_equal @uri, @plugin.uri
19
+ end
20
+
21
+ def test_to_s
22
+ assert_equal 'exception_notification http://dev.rubyonrails.org/svn/rails/plugins/exception_notification', @plugin.to_s
23
+ end
24
+
25
+ def test_find
26
+ assert_equal @name, Plugin.find(@name).name
27
+ assert_equal @name, Plugin.find(@uri).name, "Given a URI, a new plugin should be made and the name should be auto-discovered"
28
+ end
29
+
30
+ def test_svn_url_eh
31
+ assert Plugin.new("svn://topfunky.net/svn/plugins/ar_fixtures").svn_url?, "A URL starting with svn: should be recognized as a Subversion URL"
32
+ end
33
+
34
+ def test_installed_eh
35
+ assert !@plugin.installed?
36
+ end
37
+
38
+ def test_install
39
+ @plugin.install :http
40
+ assert @plugin.installed?
41
+
42
+ @plugin.uninstall
43
+ assert !@plugin.installed?
44
+ ensure
45
+ FileUtils.rm_rf RailsEnvironment.default.root + "/vendor/plugins/#{@name}"
46
+ end
47
+
48
+ def test_about
49
+ assert_match %r!#{@uri}!, @plugin.about['plugin']
50
+ end
51
+
52
+ def test_about_should_return_uri_if_nonexistent
53
+ fake_uri = 'http://topfunky.net/svn/plugins/nonexistent'
54
+ p = Plugin.new(fake_uri)
55
+ assert_equal fake_uri, p.about['plugin']
56
+ end
57
+
58
+ end
@@ -0,0 +1,20 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ $testing = true
4
+ require File.dirname(__FILE__) + "/../../../lib/commands/plugin"
5
+ require File.dirname(__FILE__) + "/../../mocks/rails_environment"
6
+
7
+ # TODO Mock the remote repository so we don't have to hit an actual server for the plugins.
8
+ class Commands::Plugin::RepositoryTest < Test::Unit::TestCase
9
+
10
+ def setup
11
+ @name = 'meta_tags'
12
+ @uri = 'http://topfunky.net/svn/plugins'
13
+ end
14
+
15
+ def test_plugins
16
+ r = Repository.new @uri
17
+ assert r.plugins.map {|p| p.name }.include?(@name), "#{@name} should have been in the plugin list."
18
+ end
19
+
20
+ end
@@ -0,0 +1,75 @@
1
+ require 'test/unit'
2
+ require 'rubygems'
3
+ require 'fileutils'
4
+ $testing = true
5
+ require File.dirname(__FILE__) + "/../../lib/commands/plugin"
6
+ require File.dirname(__FILE__) + "/../mocks/rails_environment"
7
+
8
+ # TODO Mock the remote repository so we don't have to hit an actual server for the plugins.
9
+ class Commands::PluginTest < Test::Unit::TestCase
10
+
11
+ def setup
12
+ @plugin_name = 'meta_tags'
13
+ @remote_source = 'http://topfunky.net/svn/plugins'
14
+ end
15
+
16
+ def test_list
17
+ output = run_command('list', "--source=#{@remote_source}")
18
+ %w(topfunky_power_tools ar_fixtures meta_tags gruff sparklines).each do |plugin|
19
+ assert_match %r!#{plugin}!, output.to_yaml
20
+ end
21
+ end
22
+
23
+ def test_sources
24
+ output = run_command('sources')
25
+ assert_match %r!http://dev.rubyonrails.com/svn/rails/plugins!, output.to_yaml
26
+ end
27
+
28
+ def test_about
29
+ run_command('source', @remote_source)
30
+
31
+ assert_nothing_raised {
32
+ run_command('about', @plugin_name)
33
+ run_command('about', 'exception_notification')
34
+ }
35
+ end
36
+
37
+ def test_install
38
+ run_command('install', File.join(@remote_source, @plugin_name))
39
+ assert File.exists?(path_to_plugin(@plugin_name) + "/lib"),
40
+ "Plugin should have been installed at #{path_to_plugin(@plugin_name)}"
41
+
42
+ output = run_command('list', "--local")
43
+ assert_match %r!#{@plugin_name}!, output.to_yaml
44
+
45
+ run_command('remove', @plugin_name)
46
+ deny File.exists?(path_to_plugin(@plugin_name) + "/lib"),
47
+ "Plugin should have been removed at #{path_to_plugin(@plugin_name)}"
48
+ ensure
49
+ FileUtils.rm_rf path_to_plugin(@plugin_name)
50
+ end
51
+
52
+ # TODO Takes too long...find a way to speed it up
53
+ # def test_sources
54
+ # assert_nothing_raised {
55
+ # run_command('sources', '--refresh')
56
+ # }
57
+ # end
58
+
59
+ protected
60
+
61
+ def deny(condition, message=nil)
62
+ assert !condition, message
63
+ end
64
+
65
+ def run_command(*args)
66
+ Commands::Plugin.parse! args
67
+ end
68
+
69
+ # Returns the full path to a locally installed plugin
70
+ def path_to_plugin(name)
71
+ RailsEnvironment.default.root + "/vendor/plugins/#{name}"
72
+ end
73
+
74
+ end
75
+
@@ -0,0 +1,5 @@
1
+
2
+ # Substitute since tests don't run under a real Rails app directory structure.
3
+ class RailsEnvironment
4
+ def self.find(dir=nil); new(File.expand_path(File.dirname(__FILE__) + "/../sandbox/rails_app")); end
5
+ end
@@ -0,0 +1,44 @@
1
+ # Don't change this file. Configuration is done in config/environment.rb and config/environments/*.rb
2
+
3
+ unless defined?(RAILS_ROOT)
4
+ root_path = File.join(File.dirname(__FILE__), '..')
5
+
6
+ unless RUBY_PLATFORM =~ /mswin32/
7
+ require 'pathname'
8
+ root_path = Pathname.new(root_path).cleanpath(true).to_s
9
+ end
10
+
11
+ RAILS_ROOT = root_path
12
+ end
13
+
14
+ unless defined?(Rails::Initializer)
15
+ if File.directory?("#{RAILS_ROOT}/vendor/rails")
16
+ require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer"
17
+ else
18
+ require 'rubygems'
19
+
20
+ environment_without_comments = IO.readlines(File.dirname(__FILE__) + '/environment.rb').reject { |l| l =~ /^#/ }.join
21
+ environment_without_comments =~ /[^#]RAILS_GEM_VERSION = '([\d.]+)'/
22
+ rails_gem_version = $1
23
+
24
+ if version = defined?(RAILS_GEM_VERSION) ? RAILS_GEM_VERSION : rails_gem_version
25
+ rails_gem = Gem.cache.search('rails', "=#{version}").first
26
+
27
+ if rails_gem
28
+ require_gem "rails", "=#{version}"
29
+ require rails_gem.full_gem_path + '/lib/initializer'
30
+ else
31
+ STDERR.puts %(Cannot find gem for Rails =#{version}:
32
+ Install the missing gem with 'gem install -v=#{version} rails', or
33
+ change environment.rb to define RAILS_GEM_VERSION with your desired version.
34
+ )
35
+ exit 1
36
+ end
37
+ else
38
+ require_gem "rails"
39
+ require 'initializer'
40
+ end
41
+ end
42
+
43
+ Rails::Initializer.run(:set_load_path)
44
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require File.dirname(__FILE__) + '/../../../../lib/commands/plugin'
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.11
3
+ specification_version: 1
4
+ name: rapt
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.1.0
7
+ date: 2006-07-06 00:00:00 -07:00
8
+ summary: Rails plugin manager.
9
+ require_paths:
10
+ - lib
11
+ email: boss@topfunky.com
12
+ homepage: http://nubyonrails.com/pages/rapt
13
+ rubyforge_project: rapt
14
+ description: Install, remove, and discover new plugins for your Ruby on Rails app.
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ authors:
29
+ - Ryan Tomayko
30
+ - Geoffrey Grosenbach
31
+ files:
32
+ - Rakefile
33
+ - README
34
+ - CHANGELOG
35
+ - MIT-LICENSE
36
+ - bin/rapt
37
+ - lib/commands
38
+ - lib/commands/plugin
39
+ - lib/commands/plugin.rb
40
+ - lib/commands/plugin/commands.rb
41
+ - lib/commands/plugin/plugin.rb
42
+ - lib/commands/plugin/rails_environment.rb
43
+ - lib/commands/plugin/recursive_http_fetcher.rb
44
+ - lib/commands/plugin/repositories.rb
45
+ - lib/commands/plugin/repository.rb
46
+ - test/commands
47
+ - test/mocks
48
+ - test/sandbox
49
+ - test/commands/plugin
50
+ - test/commands/plugin_test.rb
51
+ - test/commands/plugin/plugin_test.rb
52
+ - test/commands/plugin/repository_test.rb
53
+ - test/mocks/rails_environment.rb
54
+ - test/sandbox/rails_app
55
+ - test/sandbox/rails_app/config
56
+ - test/sandbox/rails_app/script
57
+ - test/sandbox/rails_app/vendor
58
+ - test/sandbox/rails_app/config/boot.rb
59
+ - test/sandbox/rails_app/config/environment.rb
60
+ - test/sandbox/rails_app/script/plugin
61
+ - test/sandbox/rails_app/vendor/plugins
62
+ test_files: []
63
+
64
+ rdoc_options: []
65
+
66
+ extra_rdoc_files: []
67
+
68
+ executables:
69
+ - rapt
70
+ extensions: []
71
+
72
+ requirements:
73
+ - none
74
+ dependencies: []
75
+