gemsonrails 0.2.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.
- data/CHANGELOG +0 -0
- data/README +3 -0
- data/Rakefile +79 -0
- data/bin/gemsonrails +53 -0
- data/lib/gemsonrails/version.rb +9 -0
- data/lib/gemsonrails.rb +2 -0
- data/templates/init.rb +9 -0
- data/templates/tasks_gems_freeze.rake +32 -0
- data/templates/tasks_gems_link.rake +54 -0
- data/templates/tasks_gems_unfreeze.rake +7 -0
- data/templates/tasks_load_tasks_in_gems.rake +4 -0
- data/test/all_tests.rb +1 -0
- data/test/gems_to_rails_test.rb +11 -0
- data/test/test_helper.rb +2 -0
- metadata +70 -0
data/CHANGELOG
ADDED
File without changes
|
data/README
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rake/clean'
|
4
|
+
require 'rake/packagetask'
|
5
|
+
require 'rake/gempackagetask'
|
6
|
+
require 'rake/rdoctask'
|
7
|
+
require 'rake/contrib/rubyforgepublisher'
|
8
|
+
require 'fileutils'
|
9
|
+
include FileUtils
|
10
|
+
require File.join(File.dirname(__FILE__), 'lib', 'gemsonrails', 'version')
|
11
|
+
|
12
|
+
AUTHOR = "Dr Nic Williams"
|
13
|
+
EMAIL = "drnicwilliams@gmail.com"
|
14
|
+
DESCRIPTION = "Link or freeze RubyGems into your rails apps, instead of plugins"
|
15
|
+
HOMEPATH = 'http://gemsonrails.rubyforge.org'
|
16
|
+
BIN_FILES = %w( gemsonrails )
|
17
|
+
|
18
|
+
|
19
|
+
NAME = "gemsonrails"
|
20
|
+
REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
|
21
|
+
VERS = ENV['VERSION'] || (GemsOnRails::VERSION::STRING + (REV ? ".#{REV}" : ""))
|
22
|
+
CLEAN.include ['**/.*.sw?', '*.gem', '.config']
|
23
|
+
RDOC_OPTS = ['--quiet', '--title', "gemsonrails documentation",
|
24
|
+
"--opname", "index.html",
|
25
|
+
"--line-numbers",
|
26
|
+
"--main", "README",
|
27
|
+
"--inline-source"]
|
28
|
+
|
29
|
+
desc "Packages up gemsonrails gem."
|
30
|
+
task :default => [:test]
|
31
|
+
task :package => [:clean]
|
32
|
+
|
33
|
+
task :test do
|
34
|
+
require File.dirname(__FILE__) + '/test/all_tests.rb'
|
35
|
+
end
|
36
|
+
|
37
|
+
spec =
|
38
|
+
Gem::Specification.new do |s|
|
39
|
+
s.name = NAME
|
40
|
+
s.version = VERS
|
41
|
+
s.platform = Gem::Platform::RUBY
|
42
|
+
s.has_rdoc = true
|
43
|
+
s.extra_rdoc_files = ["README", "CHANGELOG"]
|
44
|
+
s.rdoc_options += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
|
45
|
+
s.summary = DESCRIPTION
|
46
|
+
s.description = DESCRIPTION
|
47
|
+
s.author = AUTHOR
|
48
|
+
s.email = EMAIL
|
49
|
+
s.homepage = HOMEPATH
|
50
|
+
s.executables = BIN_FILES
|
51
|
+
s.bindir = "bin"
|
52
|
+
s.require_path = "lib"
|
53
|
+
|
54
|
+
#s.add_dependency('activesupport', '>=1.3.1')
|
55
|
+
#s.required_ruby_version = '>= 1.8.2'
|
56
|
+
|
57
|
+
s.files = %w(README CHANGELOG Rakefile) +
|
58
|
+
Dir.glob("{bin,doc,test,lib,templates,extras,website,script}/**/*") +
|
59
|
+
Dir.glob("ext/**/*.{h,c,rb}") +
|
60
|
+
Dir.glob("examples/**/*.rb") +
|
61
|
+
Dir.glob("tools/*.rb")
|
62
|
+
|
63
|
+
# s.extensions = FileList["ext/**/extconf.rb"].to_a
|
64
|
+
end
|
65
|
+
|
66
|
+
Rake::GemPackageTask.new(spec) do |p|
|
67
|
+
#p.need_tar = true
|
68
|
+
p.gem_spec = spec
|
69
|
+
end
|
70
|
+
|
71
|
+
task :install do
|
72
|
+
name = "#{NAME}-#{VERS}.gem"
|
73
|
+
sh %{rake package}
|
74
|
+
sh %{sudo gem install pkg/#{name}}
|
75
|
+
end
|
76
|
+
|
77
|
+
task :uninstall => [:clean] do
|
78
|
+
sh %{sudo gem uninstall #{NAME}}
|
79
|
+
end
|
data/bin/gemsonrails
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
require 'active_support'
|
5
|
+
require 'optparse'
|
6
|
+
require 'gemsonrails'
|
7
|
+
|
8
|
+
templates = File.dirname(__FILE__) + '/../templates/'
|
9
|
+
|
10
|
+
OPTIONS = {
|
11
|
+
:rails_root => '.'
|
12
|
+
}
|
13
|
+
parser = OptionParser.new do |opts|
|
14
|
+
opts.banner = <<BANNER
|
15
|
+
Enable your Rails application to link and freeze
|
16
|
+
RubyGems just like Rails Plugins. Enjoy explicit
|
17
|
+
version numbers, gem dependencies, and more!
|
18
|
+
|
19
|
+
Usage: #{File.basename($0)} [--apply-to <rails app path>]
|
20
|
+
|
21
|
+
Options are:
|
22
|
+
BANNER
|
23
|
+
opts.separator ""
|
24
|
+
opts.on("-a", "--apply-to=PATH", String,
|
25
|
+
"Root path of your rails application",
|
26
|
+
"Default: .") { |OPTIONS[:rails_root]| }
|
27
|
+
opts.parse!(ARGV)
|
28
|
+
end
|
29
|
+
|
30
|
+
plugins = File.join(OPTIONS[:rails_root], 'vendor', 'plugins')
|
31
|
+
gems_path = File.join(plugins, 'gemsonrails')
|
32
|
+
tasks_path = File.join(gems_path, 'tasks')
|
33
|
+
task_templates = Dir[File.join(templates, '*.rake')]
|
34
|
+
|
35
|
+
FileUtils.rm_rf gems_path
|
36
|
+
|
37
|
+
Dir.mkdir gems_path
|
38
|
+
Dir.chdir gems_path do
|
39
|
+
template = File.open(templates + 'init.rb','r') {|f| f.readlines.join}
|
40
|
+
File.open('init.rb', 'w') {|file| file << template }
|
41
|
+
end
|
42
|
+
|
43
|
+
Dir.mkdir tasks_path
|
44
|
+
Dir.chdir tasks_path do
|
45
|
+
task_templates.each do |template_name|
|
46
|
+
task_name = File.basename(template_name).sub(/\Atasks_/,'')
|
47
|
+
template = File.open(template_name,'r') {|f| f.readlines.join}
|
48
|
+
File.open(task_name, 'w') {|file| file << template }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
puts "Installed gems_to_rails #{GemsOnRails::VERSION::STRING} to #{gems_path}"
|
53
|
+
|
data/lib/gemsonrails.rb
ADDED
data/templates/init.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
namespace :gems do
|
2
|
+
desc "Freeze a RubyGem into this Rails application; init.rb will be loaded on startup."
|
3
|
+
task :freeze do
|
4
|
+
raise "No gem specified" unless gem_name = ENV['GEM']
|
5
|
+
|
6
|
+
require 'rubygems'
|
7
|
+
Gem.manage_gems
|
8
|
+
|
9
|
+
gem = (version = ENV['VERSION']) ?
|
10
|
+
Gem.cache.search(gem_name, "= #{version}").first :
|
11
|
+
Gem.cache.search(gem_name).sort_by { |g| g.version }.last
|
12
|
+
|
13
|
+
version ||= gem.version.version rescue nil
|
14
|
+
|
15
|
+
unless gem && path = Gem::UnpackCommand.new.get_path(gem_name, version)
|
16
|
+
raise "No gem #{gem_name} #{version} is installed. Do 'gem list #{gem_name}' to see what you have available."
|
17
|
+
end
|
18
|
+
|
19
|
+
gems_dir = File.join(RAILS_ROOT, 'vendor', 'gems')
|
20
|
+
mkdir_p gems_dir, :verbose => false if !File.exists?(gems_dir)
|
21
|
+
|
22
|
+
target_dir = ENV['TO'] || File.basename(path).sub(/\.gem$/, '')
|
23
|
+
rm_rf "vendor/gems/#{target_dir}", :verbose => false
|
24
|
+
|
25
|
+
chdir gems_dir, :verbose => false do
|
26
|
+
mkdir_p target_dir, :verbose => false
|
27
|
+
Gem::Installer.new(path).unpack(target_dir)
|
28
|
+
puts "Unpacked #{gem_name} #{version} to '#{target_dir}'"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
namespace :gems do
|
2
|
+
desc "Link a RubyGem into this Rails application; init.rb will be loaded on startup."
|
3
|
+
task :link do
|
4
|
+
raise "No gem specified" unless gem_name = ENV['GEM']
|
5
|
+
|
6
|
+
require 'rubygems'
|
7
|
+
Gem.manage_gems
|
8
|
+
|
9
|
+
gem = Gem.cache.search(gem_name).sort_by { |g| g.version }.last
|
10
|
+
version ||= gem.version.version rescue nil
|
11
|
+
|
12
|
+
unless gem && path = Gem::UnpackCommand.new.get_path(gem_name, version)
|
13
|
+
raise "No gem #{gem_name} #{version} is installed. Do 'gem list #{gem_name}' to see what you have available."
|
14
|
+
end
|
15
|
+
|
16
|
+
gems_dir = File.join(RAILS_ROOT, 'vendor', 'gems')
|
17
|
+
mkdir_p gems_dir, :verbose => false if !File.exists?(gems_dir)
|
18
|
+
|
19
|
+
target_dir = ENV['TO'] || gem.name
|
20
|
+
rm_rf "vendor/gems/#{target_dir}", :verbose => false
|
21
|
+
|
22
|
+
chdir gems_dir, :verbose => false do
|
23
|
+
mkdir_p target_dir + '/tasks', :verbose => false
|
24
|
+
chdir target_dir, :verbose => false do
|
25
|
+
File.open('init.rb', 'w') do |file|
|
26
|
+
file << <<-eos
|
27
|
+
require 'rubygems'
|
28
|
+
Gem.manage_gems
|
29
|
+
gem = Gem.cache.search('#{gem.name}').sort_by { |g| g.version }.last
|
30
|
+
require gem.autorequire if gem.autorequire
|
31
|
+
eos
|
32
|
+
end
|
33
|
+
File.open(File.join('tasks', 'load_tasks.rake'), 'w') do |file|
|
34
|
+
file << <<-eos
|
35
|
+
# This file does not include any Rake files, but loads up the
|
36
|
+
# tasks in the /vendor/gems/ folders
|
37
|
+
require 'rubygems'
|
38
|
+
Gem.manage_gems
|
39
|
+
gem = Gem.cache.search('#{gem.name}').sort_by { |g| g.version }.last
|
40
|
+
version ||= gem.version.version
|
41
|
+
path = Gem::UnpackCommand.new.get_path(gem.name, version)
|
42
|
+
Dir[File.join(path, "/**/tasks/**/*.rake")].sort.each { |ext| load ext }
|
43
|
+
eos
|
44
|
+
end
|
45
|
+
puts "Linked #{gem_name} (currently #{version}) via 'vendor/gems/#{target_dir}'"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
task :unfreeze do
|
51
|
+
raise "No gem specified" unless gem_name = ENV['GEM']
|
52
|
+
Dir["vendor/gems/#{gem_name}-*"].each { |d| rm_rf d }
|
53
|
+
end
|
54
|
+
end
|
data/test/all_tests.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Dir['**/*_test.rb'].each { |test_case| require test_case }
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.11
|
3
|
+
specification_version: 1
|
4
|
+
name: gemsonrails
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.2.0
|
7
|
+
date: 2006-10-17 00:00:00 +02:00
|
8
|
+
summary: Link or freeze RubyGems into your rails apps, instead of plugins
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: drnicwilliams@gmail.com
|
12
|
+
homepage: http://gemsonrails.rubyforge.org
|
13
|
+
rubyforge_project:
|
14
|
+
description: Link or freeze RubyGems into your rails apps, instead of plugins
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
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
|
+
- Dr Nic Williams
|
30
|
+
files:
|
31
|
+
- README
|
32
|
+
- CHANGELOG
|
33
|
+
- Rakefile
|
34
|
+
- bin/gemsonrails
|
35
|
+
- test/all_tests.rb
|
36
|
+
- test/gems_to_rails_test.rb
|
37
|
+
- test/test_helper.rb
|
38
|
+
- lib/gemsonrails.rb
|
39
|
+
- lib/gemsonrails
|
40
|
+
- lib/gemsonrails/version.rb
|
41
|
+
- templates/init.rb
|
42
|
+
- templates/tasks_gems_freeze.rake
|
43
|
+
- templates/tasks_gems_link.rake
|
44
|
+
- templates/tasks_gems_unfreeze.rake
|
45
|
+
- templates/tasks_load_tasks_in_gems.rake
|
46
|
+
test_files: []
|
47
|
+
|
48
|
+
rdoc_options:
|
49
|
+
- --quiet
|
50
|
+
- --title
|
51
|
+
- gemsonrails documentation
|
52
|
+
- --opname
|
53
|
+
- index.html
|
54
|
+
- --line-numbers
|
55
|
+
- --main
|
56
|
+
- README
|
57
|
+
- --inline-source
|
58
|
+
- --exclude
|
59
|
+
- ^(examples|extras)/
|
60
|
+
extra_rdoc_files:
|
61
|
+
- README
|
62
|
+
- CHANGELOG
|
63
|
+
executables:
|
64
|
+
- gemsonrails
|
65
|
+
extensions: []
|
66
|
+
|
67
|
+
requirements: []
|
68
|
+
|
69
|
+
dependencies: []
|
70
|
+
|