gitable 0.0.2 → 0.0.3

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/.gitignore CHANGED
@@ -21,5 +21,8 @@ rdoc
21
21
  pkg
22
22
  vendor/gems
23
23
  .yardoc
24
+ .bundle
25
+ Gemfile.lock
24
26
 
25
27
  ## PROJECT::SPECIFIC
28
+ gitable.gemspec
data/Gemfile CHANGED
@@ -1,20 +1,26 @@
1
- source 'http://gemcutter.org'
2
-
3
- bin_path 'gbin'
4
- disable_system_gems
1
+ source :gemcutter
5
2
 
6
- only :runtime do
7
- gem 'addressable', :require_as => 'addressable/uri'
3
+ group :runtime do
4
+ gem 'addressable', :require => 'addressable/uri'
8
5
  end
9
-
10
- only :development do
6
+
7
+ group :release do
11
8
  gem 'bundler'
12
9
  gem 'jeweler'
13
- gem 'bundler'
14
- gem 'rspec', :require_as => 'spec'
10
+ end
11
+
12
+ group :development do
13
+ gem 'rspec', :require => 'spec'
15
14
  gem 'ZenTest'
16
15
  gem 'rake'
17
16
  gem 'rcov'
18
17
  gem 'ruby-debug'
19
18
  gem 'yard'
19
+ gem 'reek'
20
+ gem 'roodi'
21
+ end
22
+
23
+ group :release do
24
+ gem 'jeweler'
25
+ gem 'bundler', '>=0.9.7'
20
26
  end
@@ -1,8 +1,8 @@
1
1
  = Gitable
2
2
 
3
- == +Addressable::URI+ for Git.
3
+ == Addressable::URI for Git.
4
4
 
5
- Works with any valid Git URI.
5
+ Works with any valid Git URI, because Addressable doesn't.
6
6
 
7
7
  == Example!?
8
8
 
@@ -13,13 +13,18 @@ Works with any valid Git URI.
13
13
  uri.user # => 'git'
14
14
  uri.host # => 'github.com'
15
15
 
16
+ # Maintain the same url format.
16
17
  uri.to_s # => 'git@github.com:martinemde/gitable.git'
18
+
19
+ # If it can't guess the name, you named your repository wrong.
17
20
  uri.project_name # => 'gitable'
21
+
22
+ # Inherited from Addressable::URI
18
23
  uri.kind_of?(Addressable::URI) # => true
19
24
 
20
25
  == heuristic_parse
21
26
 
22
- You can use +Gitable::URI.heuristic_parse+ to take user input.
27
+ You can use Gitable::URI.heuristic_parse to take user input.
23
28
 
24
29
  Currently this supports the mistake of copying the url bar instead of the git
25
30
  uri for a few of the popular git webhosts. It also runs through Addressable's
@@ -28,13 +33,13 @@ heuristic_parse so it will correct some poorly typed URIs.
28
33
  uri = Gitable::URI.heuristic_parse('http://github.com:martinemde/gitable')
29
34
  uri.to_s # => 'git://github.com/martinemde/gitable.git'
30
35
 
31
- Heuristic parse is currently fairly limited. If the url doesn't end in .git, it
32
- switches +http://+ to +git://+ and adds .git to the basename. This works fine for
33
- github.com and gitorious.org.
36
+ heuristic_parse is currently very limited. If the url doesn't end in .git, it
37
+ switches http:// to git:// and adds .git to the basename.
38
+ This works fine for github.com and gitorious.org but will happily screw up other URIs.
34
39
 
35
40
  == That's it?
36
41
 
37
- yep. What else did you expect? (let me know or write a patch)
42
+ Yep. What else did you expect? (let me know or write a patch)
38
43
 
39
44
  == Copyright
40
45
 
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
+ require 'rubygems'
1
2
  require 'bundler'
2
- Bundler.require_env
3
- require 'rake'
4
3
 
5
4
  begin
6
5
  require 'jeweler'
@@ -12,11 +11,9 @@ begin
12
11
  gem.homepage = "http://github.com/martinemde/gitable"
13
12
  gem.authors = ["Martin Emde"]
14
13
 
15
- bundle = Bundler::Bundle.load(File.dirname(__FILE__) + '/Gemfile')
16
- bundle.environment.dependencies.each do |d|
17
- if d.only && d.only.include?('runtime')
18
- gem.add_dependency d.name, d.version.to_s
19
- end
14
+ bundle = Bundler::Definition.from_gemfile('Gemfile')
15
+ bundle.dependencies.each do |dep|
16
+ gem.add_dependency(dep.name, dep.requirement.to_s) if dep.groups.include?(:runtime)
20
17
  end
21
18
  end
22
19
  Jeweler::GemcutterTasks.new
@@ -34,10 +31,9 @@ Spec::Rake::SpecTask.new(:rcov) do |spec|
34
31
  spec.libs << 'lib' << 'spec'
35
32
  spec.pattern = 'spec/**/*_spec.rb'
36
33
  spec.rcov = true
34
+ spec.rcov_opts << '--exclude' << 'spec,vendor,Library'
37
35
  end
38
36
 
39
- task :spec => :check_dependencies
40
-
41
37
  begin
42
38
  require 'reek/adapters/rake_task'
43
39
  Reek::RakeTask.new do |t|
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 2
4
+ :patch: 3
5
5
 
@@ -3,7 +3,7 @@ require 'gitable/uri'
3
3
  module Gitable
4
4
  class ScpURI < Gitable::URI
5
5
 
6
- # Keep URIs like this relative:
6
+ # Keep URIs like this as they were input:
7
7
  #
8
8
  # git@github.com:martinemde/gitable.git
9
9
  #
@@ -15,23 +15,44 @@ module Gitable
15
15
  # @return [String] The same path passed in.
16
16
  def path=(new_path)
17
17
  super
18
- if new_path[0..0] != "/"
19
- @path = path.sub(%r|^/|,'')
20
- end
21
- path
18
+ @path = path.sub(%r|^/|,'') if new_path[0] != ?/
19
+ @path
22
20
  end
23
21
 
24
22
  # Get the URI as a string in the same form it was input.
25
23
  #
24
+ # Taken from Addressable::URI.
25
+ #
26
26
  # @return [String] The URI as a string.
27
27
  def to_s
28
- @uri_string ||= begin
29
- uri_string = "#{authority}:#{path.to_s}"
30
- if uri_string.respond_to?(:force_encoding)
31
- uri_string.force_encoding(Encoding::UTF_8)
32
- end
33
- uri_string
34
- end
28
+ @uri_string ||=
29
+ begin
30
+ uri_string = "#{authority}:#{path}"
31
+ if uri_string.respond_to?(:force_encoding)
32
+ uri_string.force_encoding(Encoding::UTF_8)
33
+ end
34
+ uri_string
35
+ end
36
+ end
37
+
38
+ protected
39
+
40
+ def validate
41
+ return if !!@validation_deferred
42
+ if scheme != nil &&
43
+ (host == nil || host == "") &&
44
+ (path == nil || path == "")
45
+ raise InvalidURIError,
46
+ "Absolute URI missing hierarchical segment: '#{to_s}'"
47
+ end
48
+ if host == nil
49
+ if port != nil ||
50
+ user != nil ||
51
+ password != nil
52
+ raise InvalidURIError, "Hostname not supplied: '#{to_s}'"
53
+ end
54
+ end
55
+ return nil
35
56
  end
36
57
  end
37
58
  end
@@ -5,7 +5,7 @@ module Gitable
5
5
  SCP_URI_REGEXP = %r|^([^:/?#]+):([^?#]*)$|
6
6
 
7
7
  ##
8
- # Parse a git repository uri into a URI object.
8
+ # Parse a git repository URI into a URI object.
9
9
  #
10
10
  # @param [Addressable::URI, #to_str] uri URI of a git repository.
11
11
  #
@@ -18,11 +18,9 @@ module Gitable
18
18
  return uri if uri.nil? || uri.kind_of?(self)
19
19
 
20
20
  # addressable::URI.parse always returns an instance of Addressable::URI.
21
- add = super # >:(
21
+ add = super # >:( at inconsistency
22
22
 
23
- scan = uri.scan(SCP_URI_REGEXP)
24
- fragments = scan[0]
25
- authority = fragments && fragments[0]
23
+ authority = uri.scan(SCP_URI_REGEXP).flatten.first
26
24
 
27
25
  if add.host.nil? && authority
28
26
  Gitable::ScpURI.new(
@@ -35,9 +33,9 @@ module Gitable
35
33
  end
36
34
 
37
35
  ##
38
- # Attempts to make a copied url bar into a git repo uri
39
- #
40
- # First line of defense is for urls without .git as a basename:
36
+ # Attempts to make a copied URL bar into a git repository URI.
37
+ #
38
+ # First line of defense is for URIs without .git as a basename:
41
39
  # * Change the scheme from http:// to git://
42
40
  # * Add .git to the basename
43
41
  #
@@ -51,15 +49,12 @@ module Gitable
51
49
  def self.heuristic_parse(uri)
52
50
  return uri if uri.nil? || uri.kind_of?(self)
53
51
 
54
- add = super
55
- return add if add.extname == "git"
56
- add.scheme = "git" if add.scheme == "http"
57
- unless add.basename.nil?
58
- # replace the last occurance of the basename with basename.git
59
- # please tell me if there's a better way (besides rindex/slice/insert)
60
- rpath = add.path.reverse
61
- rbase = add.basename.reverse
62
- add.path = rpath.sub(%r|#{Regexp.escape(rbase)}|,"tig."+rbase).reverse
52
+ # Addressable::URI.heuristic_parse _does_ return the correct type :)
53
+ add = super # boo inconsistency
54
+
55
+ if add.extname != ".git"
56
+ add.extname = "git"
57
+ add.scheme = "git" if add.scheme == "http"
63
58
  end
64
59
  add
65
60
  end
@@ -71,5 +66,43 @@ module Gitable
71
66
  def project_name
72
67
  basename.sub(/\.git$/,'')
73
68
  end
69
+
70
+ # Set an extension name, replacing one if it exists.
71
+ #
72
+ # If there is no basename (i.e. no words in the path) this method call will
73
+ # be ignored because it is likely to break the uri.
74
+ #
75
+ # @param [String] New extension name
76
+ # @return [String] extname result
77
+ def extname=(ext)
78
+ base = basename
79
+ return nil if base.nil? || base == ""
80
+ self.basename = "#{base}.#{ext.sub(/^\.+/,'')}"
81
+ extname
82
+ end
83
+
84
+ # Addressable does basename wrong with there's no basename.
85
+ # It returns "/" for something like "http://host.com/"
86
+ def basename
87
+ base = super
88
+ return "" if base == "/"
89
+ base
90
+ end
91
+
92
+ # Set the basename, replacing it if it exists.
93
+ #
94
+ # @param [String] New basename
95
+ # @return [String] basename result
96
+ def basename=(new_basename)
97
+ base = basename
98
+ if base.nil? || base == ""
99
+ self.path += new_basename
100
+ else
101
+ rpath = path.reverse
102
+ # replace the last occurrence of the basename with basename.ext
103
+ self.path = rpath.sub(%r|#{Regexp.escape(base.reverse)}|, new_basename.reverse).reverse
104
+ end
105
+ basename
106
+ end
74
107
  end
75
108
  end
@@ -0,0 +1,28 @@
1
+ module DescribeURI
2
+ def describe_uri(uri, &block)
3
+ describe "with uri: #{uri.inspect}" do
4
+ before { @uri = uri }
5
+ subject { Gitable::URI.parse(@uri) }
6
+ URIChecker.new(self, &block)
7
+ end
8
+ end
9
+
10
+ class URIChecker
11
+ def initialize(example_group, &block)
12
+ @example_group = example_group
13
+ instance_eval(&block)
14
+ end
15
+
16
+ def it_sets(parts)
17
+ parts.each do |part, value|
18
+ it "sets #{part} to #{value.inspect}" do
19
+ subject.send(part).should == value
20
+ end
21
+ end
22
+ end
23
+
24
+ def method_missing(*args, &block)
25
+ @example_group.send(*args, &block)
26
+ end
27
+ end
28
+ end
@@ -5,30 +5,36 @@ describe Gitable::URI do
5
5
  @uri = "ssh://git@github.com/martinemde/gitable.git"
6
6
  end
7
7
 
8
- def self.describe_uri(uri, &block)
9
- describe "with uri: #{uri.inspect}" do
10
- before { @uri = uri }
11
- subject { Gitable::URI.parse(@uri) }
12
- URIChecker.new(self, &block)
8
+ describe_uri "git://github.com/martinemde/gitable" do
9
+ it "sets a new extname" do
10
+ subject.extname.should == ""
11
+ subject.extname = "git"
12
+ subject.extname.should == ".git"
13
+ subject.to_s.should == @uri + ".git"
13
14
  end
14
- end
15
15
 
16
- class URIChecker
17
- def initialize(example_group, &block)
18
- @example_group = example_group
19
- instance_eval(&block)
16
+ it "sets a new basename" do
17
+ subject.basename.should == "gitable"
18
+ subject.basename = "gitable.git"
19
+ subject.basename.should == "gitable.git"
20
+ subject.extname.should == ".git"
20
21
  end
22
+ end
21
23
 
22
- def it_sets(parts)
23
- parts.each do |part, value|
24
- it "sets #{part} to #{value.inspect}" do
25
- subject.send(part).should == value
26
- end
27
- end
24
+ describe_uri "git://github.com/" do
25
+ it "does not set a new extname" do
26
+ subject.extname.should == ""
27
+ subject.extname = "git"
28
+ subject.extname.should == ""
29
+ subject.to_s.should == @uri
28
30
  end
29
31
 
30
- def method_missing(*args, &block)
31
- @example_group.send(*args, &block)
32
+ it "sets a new basename" do
33
+ subject.basename.should == ""
34
+ subject.basename = "gitable.git"
35
+ subject.basename.should == "gitable.git"
36
+ subject.extname.should == ".git"
37
+ subject.to_s.should == @uri + "gitable.git"
32
38
  end
33
39
  end
34
40
 
@@ -57,17 +63,6 @@ describe Gitable::URI do
57
63
  # /path/to/repo.git/
58
64
  # file:///path/to/repo.git/
59
65
  #
60
- expected = {
61
- :user => nil,
62
- :password => nil,
63
- :host => "host.xz",
64
- :port => nil,
65
- :path => "/path/to/repo.git/",
66
- :basename => "repo.git",
67
- :query => nil,
68
- :fragment => nil,
69
- :project_name => "repo"
70
- }
71
66
 
72
67
  describe ".parse" do
73
68
  it "returns a Gitable::URI" do
@@ -89,12 +84,31 @@ describe Gitable::URI do
89
84
  }.should raise_error(TypeError)
90
85
  end
91
86
 
92
- it "raises an Gitable::URI::InvalidURIError on a bad uri" do
93
- lambda {
94
- Gitable::URI.parse("http://")
95
- }.should raise_error(Gitable::URI::InvalidURIError)
87
+ context "(bad uris)" do
88
+ [
89
+ "http://",
90
+ "blah:"
91
+ ].each do |uri|
92
+ it "raises an Gitable::URI::InvalidURIError with #{uri.inspect}" do
93
+ lambda {
94
+ Gitable::URI.parse(uri)
95
+ }.should raise_error(Gitable::URI::InvalidURIError)
96
+ end
97
+ end
96
98
  end
97
99
 
100
+ expected = {
101
+ :user => nil,
102
+ :password => nil,
103
+ :host => "host.xz",
104
+ :port => nil,
105
+ :path => "/path/to/repo.git/",
106
+ :basename => "repo.git",
107
+ :query => nil,
108
+ :fragment => nil,
109
+ :project_name => "repo"
110
+ }
111
+
98
112
  describe_uri "rsync://host.xz/path/to/repo.git/" do
99
113
  it { subject.to_s.should == @uri }
100
114
  it_sets expected.merge({
@@ -399,29 +413,4 @@ describe Gitable::URI do
399
413
  })
400
414
  end
401
415
  end
402
-
403
- describe ".heuristic_parse" do
404
- it "returns a Gitable::URI" do
405
- uri = "http://github.com/martinemde/gitable"
406
- Gitable::URI.heuristic_parse(uri).should be_a_kind_of(Gitable::URI)
407
- end
408
-
409
- it "guesses git://github.com/martinemde/gitable.git if I pass in the url bar" do
410
- uri = "http://github.com/martinemde/gitable"
411
- gitable = Gitable::URI.heuristic_parse(uri)
412
- gitable.to_s.should == "git://github.com/martinemde/gitable.git"
413
- end
414
-
415
- it "isn't upset by trailing slashes" do
416
- uri = "http://github.com/martinemde/gitable/"
417
- gitable = Gitable::URI.heuristic_parse(uri)
418
- gitable.to_s.should == "git://github.com/martinemde/gitable.git/"
419
- end
420
-
421
- it "handles URIs with the name of the project in the path twice" do
422
- uri = "http://gitorious.org/project/project"
423
- gitable = Gitable::URI.heuristic_parse(uri)
424
- gitable.to_s.should == "git://gitorious.org/project/project.git"
425
- end
426
- end
427
416
  end
@@ -0,0 +1,40 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe Gitable::URI, ".heuristic_parse" do
4
+ it "returns a Gitable::URI" do
5
+ uri = "http://github.com/martinemde/gitable"
6
+ Gitable::URI.heuristic_parse(uri).should be_a_kind_of(Gitable::URI)
7
+ end
8
+
9
+ [
10
+ "http://host.xz/path/to/repo.git/",
11
+ "http://host.xz/path/to/repo.git",
12
+ "ssh://user@host.xz/path/to/repo.git/",
13
+ "ssh://user@host.xz:1234/path/to/repo.git/",
14
+ "user@host.xz:path/to/repo.git",
15
+ "user@host.xz:path/to/repo.git/",
16
+ "git@github.com:martinemde/gitable.git",
17
+ ].each do |uri|
18
+ it "doesn't break the already valid URI: #{uri.inspect}" do
19
+ Gitable::URI.heuristic_parse(uri).to_s.should == uri
20
+ end
21
+ end
22
+
23
+ it "guesses git://github.com/martinemde/gitable.git if I pass in the url bar" do
24
+ uri = "http://github.com/martinemde/gitable"
25
+ gitable = Gitable::URI.heuristic_parse(uri)
26
+ gitable.to_s.should == "git://github.com/martinemde/gitable.git"
27
+ end
28
+
29
+ it "isn't upset by trailing slashes" do
30
+ uri = "http://github.com/martinemde/gitable/"
31
+ gitable = Gitable::URI.heuristic_parse(uri)
32
+ gitable.to_s.should == "git://github.com/martinemde/gitable.git/"
33
+ end
34
+
35
+ it "handles URIs with the name of the project in the path twice" do
36
+ uri = "http://gitorious.org/project/project"
37
+ gitable = Gitable::URI.heuristic_parse(uri)
38
+ gitable.to_s.should == "git://gitorious.org/project/project.git"
39
+ end
40
+ end
@@ -3,7 +3,8 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'gitable'
4
4
  require 'spec'
5
5
  require 'spec/autorun'
6
+ require File.join(File.dirname(__FILE__), 'describe_uri')
6
7
 
7
8
  Spec::Runner.configure do |config|
8
-
9
+ config.extend DescribeURI
9
10
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 3
9
+ version: 0.0.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - Martin Emde
@@ -9,19 +14,21 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-01-14 00:00:00 -08:00
17
+ date: 2010-04-27 00:00:00 -07:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
- name: addressable
17
21
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
20
23
  requirements:
21
24
  - - ">="
22
25
  - !ruby/object:Gem::Version
26
+ segments:
27
+ - 0
23
28
  version: "0"
24
- version:
29
+ requirement: *id001
30
+ name: addressable
31
+ prerelease: false
25
32
  description: It's like Addressable::URI but for Git. Gitable.
26
33
  email: martin.emde@gmail.com
27
34
  executables: []
@@ -39,11 +46,12 @@ files:
39
46
  - README.rdoc
40
47
  - Rakefile
41
48
  - VERSION.yml
42
- - gitable.gemspec
43
49
  - lib/gitable.rb
44
50
  - lib/gitable/scp_uri.rb
45
51
  - lib/gitable/uri.rb
52
+ - spec/describe_uri.rb
46
53
  - spec/gitable_spec.rb
54
+ - spec/heuristic_parse_spec.rb
47
55
  - spec/spec.opts
48
56
  - spec/spec_helper.rb
49
57
  has_rdoc: true
@@ -59,21 +67,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
67
  requirements:
60
68
  - - ">="
61
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
62
72
  version: "0"
63
- version:
64
73
  required_rubygems_version: !ruby/object:Gem::Requirement
65
74
  requirements:
66
75
  - - ">="
67
76
  - !ruby/object:Gem::Version
77
+ segments:
78
+ - 0
68
79
  version: "0"
69
- version:
70
80
  requirements: []
71
81
 
72
82
  rubyforge_project:
73
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.3.6
74
84
  signing_key:
75
85
  specification_version: 3
76
86
  summary: Addressable::URI for Git
77
87
  test_files:
88
+ - spec/describe_uri.rb
78
89
  - spec/gitable_spec.rb
90
+ - spec/heuristic_parse_spec.rb
79
91
  - spec/spec_helper.rb
@@ -1,58 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{gitable}
8
- s.version = "0.0.2"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Martin Emde"]
12
- s.date = %q{2010-01-14}
13
- s.description = %q{It's like Addressable::URI but for Git. Gitable.}
14
- s.email = %q{martin.emde@gmail.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".gitignore",
22
- "Gemfile",
23
- "LICENSE",
24
- "README.rdoc",
25
- "Rakefile",
26
- "VERSION.yml",
27
- "gitable.gemspec",
28
- "lib/gitable.rb",
29
- "lib/gitable/scp_uri.rb",
30
- "lib/gitable/uri.rb",
31
- "spec/gitable_spec.rb",
32
- "spec/spec.opts",
33
- "spec/spec_helper.rb"
34
- ]
35
- s.homepage = %q{http://github.com/martinemde/gitable}
36
- s.rdoc_options = ["--charset=UTF-8"]
37
- s.require_paths = ["lib"]
38
- s.rubygems_version = %q{1.3.5}
39
- s.summary = %q{Addressable::URI for Git}
40
- s.test_files = [
41
- "spec/gitable_spec.rb",
42
- "spec/spec_helper.rb"
43
- ]
44
-
45
- if s.respond_to? :specification_version then
46
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
47
- s.specification_version = 3
48
-
49
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
50
- s.add_runtime_dependency(%q<addressable>, [">= 0"])
51
- else
52
- s.add_dependency(%q<addressable>, [">= 0"])
53
- end
54
- else
55
- s.add_dependency(%q<addressable>, [">= 0"])
56
- end
57
- end
58
-