http_router 0.3.4 → 0.3.5
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/Rakefile +2 -8
- data/ext/gem_rake.rb +126 -0
- data/http_router.gemspec +4 -3
- data/lib/http_router/version.rb +2 -1
- metadata +7 -6
data/Rakefile
CHANGED
@@ -7,10 +7,6 @@ Spec::Rake::SpecTask.new(:spec) do |t|
|
|
7
7
|
t.spec_files = FileList['spec/**/*_spec.rb']
|
8
8
|
end
|
9
9
|
|
10
|
-
task 'tumbler:preflight' do
|
11
|
-
Rake::Task["spec"].invoke
|
12
|
-
end
|
13
|
-
|
14
10
|
begin
|
15
11
|
require 'code_stats'
|
16
12
|
CodeStats::Tasks.new
|
@@ -25,8 +21,6 @@ Rake::RDocTask.new do |rd|
|
|
25
21
|
rd.rdoc_dir = 'rdoc'
|
26
22
|
end
|
27
23
|
|
24
|
+
require 'ext/gem_rake'
|
28
25
|
|
29
|
-
|
30
|
-
|
31
|
-
require 'tumbler'
|
32
|
-
Tumbler.use_rake_tasks
|
26
|
+
Bundler::GemHelper.install_tasks
|
data/ext/gem_rake.rb
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
module Bundler
|
2
|
+
class GemHelper
|
3
|
+
|
4
|
+
def self.install_tasks
|
5
|
+
dir = caller.find{|c| /Rakefile:/}[/^(.*?)\/Rakefile:/, 1]
|
6
|
+
GemHelper.new(dir).install
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader :spec_path, :base, :name
|
10
|
+
|
11
|
+
def initialize(base, name = nil)
|
12
|
+
@base = base
|
13
|
+
@name = name || interpolate_name
|
14
|
+
@spec_path = File.join(@base, "#{@name}.gemspec")
|
15
|
+
end
|
16
|
+
|
17
|
+
def install
|
18
|
+
desc 'Build your gem into the pkg directory'
|
19
|
+
task 'build' do
|
20
|
+
build_gem
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'Install your gem into the pkg directory'
|
24
|
+
task 'install' do
|
25
|
+
install_gem
|
26
|
+
end
|
27
|
+
|
28
|
+
desc 'Push your gem to rubygems'
|
29
|
+
task 'push' do
|
30
|
+
push_gem
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def build_gem
|
35
|
+
file_name = nil
|
36
|
+
sh("gem build #{spec_path}") {
|
37
|
+
file_name = File.basename(built_gem_path)
|
38
|
+
FileUtils.mkdir_p(File.join(base, 'pkg'))
|
39
|
+
FileUtils.mv(built_gem_path, 'pkg')
|
40
|
+
}
|
41
|
+
File.join(base, 'pkg', file_name)
|
42
|
+
end
|
43
|
+
|
44
|
+
def install_gem
|
45
|
+
built_gem_path = build_gem
|
46
|
+
sh("gem install #{built_gem_path}")
|
47
|
+
end
|
48
|
+
|
49
|
+
def push_gem
|
50
|
+
guard_clean
|
51
|
+
guard_already_tagged
|
52
|
+
tag_version {
|
53
|
+
git_push
|
54
|
+
rubygem_push(build_gem)
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
protected
|
59
|
+
def rubygem_push(path)
|
60
|
+
sh("gem push #{path}")
|
61
|
+
end
|
62
|
+
|
63
|
+
def built_gem_path
|
64
|
+
Dir[File.join(base, "#{name}-*.gem")].sort_by{|f| File.mtime(f)}.last
|
65
|
+
end
|
66
|
+
|
67
|
+
def interpolate_name
|
68
|
+
gemspecs = Dir[File.join(base, "*.gemspec")]
|
69
|
+
raise "Unable to determine name from existing gemspec." unless gemspecs.size == 1
|
70
|
+
|
71
|
+
File.basename(gemspecs.first)[/^(.*)\.gemspec$/, 1]
|
72
|
+
end
|
73
|
+
|
74
|
+
def git_push
|
75
|
+
sh "git push --all"
|
76
|
+
sh "git push --tags"
|
77
|
+
end
|
78
|
+
|
79
|
+
def guard_already_tagged
|
80
|
+
sh('git tag').split(/\n/).include?(current_version_tag) and raise("This tag has already been committed to the repo.")
|
81
|
+
end
|
82
|
+
|
83
|
+
def guard_clean
|
84
|
+
clean? or raise("There are files that need to be committed first.")
|
85
|
+
end
|
86
|
+
|
87
|
+
def clean?
|
88
|
+
sh("git ls-files -dm").split("\n").size.zero?
|
89
|
+
end
|
90
|
+
|
91
|
+
def tag_version
|
92
|
+
sh "git tag #{current_version_tag}"
|
93
|
+
yield if block_given?
|
94
|
+
rescue
|
95
|
+
sh "git tag -d #{current_version_tag}"
|
96
|
+
raise
|
97
|
+
end
|
98
|
+
|
99
|
+
def current_version
|
100
|
+
raise("Version file could not be found at #{version_file_path}") unless File.exist?(version_file_path)
|
101
|
+
File.read(version_file_path)[/V(ERSION|ersion)\s*=\s*(["'])(.*?)\2/, 3]
|
102
|
+
end
|
103
|
+
|
104
|
+
def version_file_path
|
105
|
+
File.join(base, 'lib', name, 'version.rb')
|
106
|
+
end
|
107
|
+
|
108
|
+
def current_version_tag
|
109
|
+
"v#{current_version}"
|
110
|
+
end
|
111
|
+
|
112
|
+
def sh(cmd, &block)
|
113
|
+
output, code = sh_with_code(cmd, &block)
|
114
|
+
code == 0 ? output : raise(output)
|
115
|
+
end
|
116
|
+
|
117
|
+
def sh_with_code(cmd, &block)
|
118
|
+
output = ''
|
119
|
+
Dir.chdir(base) {
|
120
|
+
output = `#{cmd}`
|
121
|
+
block.call if block and $? == 0
|
122
|
+
}
|
123
|
+
[output, $?]
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
data/http_router.gemspec
CHANGED
@@ -7,8 +7,9 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = HttpRouter::VERSION
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.authors = ["Joshua Hull"]
|
10
|
-
s.date =
|
11
|
-
s.
|
10
|
+
s.date = HttpRouter::RELEASE_DATE
|
11
|
+
s.summary = "A kick-ass HTTP router for use in Rack & Sinatra"
|
12
|
+
s.description = "This library allows you to recognize and build URLs in a Rack application. As well it contains an interface for use within Sinatra."
|
12
13
|
s.email = %q{joshbuddy@gmail.com}
|
13
14
|
s.extra_rdoc_files = ['README.rdoc']
|
14
15
|
s.files = `git ls-files`.split("\n")
|
@@ -16,8 +17,8 @@ Gem::Specification.new do |s|
|
|
16
17
|
s.rdoc_options = ["--charset=UTF-8"]
|
17
18
|
s.require_paths = ["lib"]
|
18
19
|
s.rubygems_version = %q{1.3.7}
|
19
|
-
s.summary = %q{A kick-ass HTTP router for use in Rack & Sinatra}
|
20
20
|
s.test_files = `git ls-files`.split("\n").select{|f| f =~ /^spec/}
|
21
|
+
s.rubyforge_project = 'http_router'
|
21
22
|
|
22
23
|
# dependencies
|
23
24
|
s.add_runtime_dependency 'rack', '>=1.0'
|
data/lib/http_router/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http_router
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 5
|
10
|
+
version: 0.3.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Joshua Hull
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07-
|
18
|
+
date: 2010-07-18 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
version: 0.0.11
|
122
122
|
type: :development
|
123
123
|
version_requirements: *id007
|
124
|
-
description:
|
124
|
+
description: This library allows you to recognize and build URLs in a Rack application. As well it contains an interface for use within Sinatra.
|
125
125
|
email: joshbuddy@gmail.com
|
126
126
|
executables: []
|
127
127
|
|
@@ -153,6 +153,7 @@ files:
|
|
153
153
|
- examples/static/images/cat3.jpg
|
154
154
|
- examples/variable.ru
|
155
155
|
- examples/variable_with_regex.ru
|
156
|
+
- ext/gem_rake.rb
|
156
157
|
- http_router.gemspec
|
157
158
|
- lib/ext/rack/rack_mapper.rb
|
158
159
|
- lib/ext/rack/rack_urlmap.rb
|
@@ -210,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
211
|
version: "0"
|
211
212
|
requirements: []
|
212
213
|
|
213
|
-
rubyforge_project:
|
214
|
+
rubyforge_project: http_router
|
214
215
|
rubygems_version: 1.3.7
|
215
216
|
signing_key:
|
216
217
|
specification_version: 3
|