specific_install 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 200b37d6e388e2fe9109554f0192664a9ebd6191
4
+ data.tar.gz: 1d26d7850c6a5e408cdafa17c3c9fb89797ffcca
5
+ SHA512:
6
+ metadata.gz: 6e7c82457045c1a5dc7d48b068a3d6e48dfa71b942fc5debbe8e720fe91ca1a2d5ab88e897d2e38c9c428254f599ae14913119f5f8c87c9231259d9147de9681
7
+ data.tar.gz: d6c83b266ca609012667703e5e7a6173899f04842d1d7500ff97714b7b8d25653dd892b51d720c69f29c5127ba144d97cce9ab1bd908865da01a2183ff13ef7d
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ .config
2
+ InstalledFiles
3
+ pkg
4
+ *.gem
5
+ .bundle
6
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in specific_install.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2010-2013 Roger Pack
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,61 @@
1
+ # Gem::SpecificInstall
2
+
3
+ ## Installation
4
+
5
+ Add this line to your application's Gemfile:
6
+
7
+ gem 'specific_install'
8
+
9
+ And then execute:
10
+
11
+ $ bundle
12
+
13
+ Or install it yourself as:
14
+
15
+ $ gem install specific_install
16
+
17
+ ## Usage
18
+
19
+ A Rubygem plugin that allows you to install an "edge" gem straight from its github repository,
20
+ or install one from an arbitrary url web:
21
+
22
+ ex:
23
+
24
+ `
25
+ $ gem specific_install -l http://github.com/githubsvnclone/rdoc.git
26
+ `
27
+
28
+ ### Additional Options
29
+
30
+ -l --location URL of resource
31
+ Formats of URL/Resource
32
+ * Full URL to HTTP Repo `https://github.com/rdp/specific_install.git`
33
+ * Full URL to Git Repo `git@github.com:rdp/specific_install.git`
34
+ * URL of Pre-Built Gem `http://example.com/specific_install.gem`
35
+ * Github Repo shortcode `rdp/specific_install`
36
+
37
+ -b --branch BRANCH to use for Gem creation
38
+ Branch option does a `git checkout BRANCH` before `gem build GEM`
39
+ Example:
40
+ `git specific_install -l rdp/specific_install -b pre-release`
41
+ Note: This feature is new and may not fail gracefully.
42
+
43
+
44
+ `git_install` is aliased to the behavior of `specific_install`
45
+ This alias is shorter and is more intention revealing of the gem's behavior.
46
+ ## Internal Behavior
47
+
48
+ It runs `git clone`, and `rake install,` install the gem, then deletes the temp directory]
49
+
50
+
51
+ ## Contributing
52
+
53
+ 1. Fork it
54
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
55
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
56
+ 4. Push to the branch (`git push origin my-new-feature`)
57
+ 5. Create new Pull Request
58
+
59
+ Enjoy!
60
+
61
+ Copyright 2010-2013 Roger Pack - `http://github.com/rdp/specific_installs`
data/Rakefile CHANGED
@@ -1,11 +1 @@
1
- require 'jeweler'
2
- Jeweler::Tasks.new do |s|
3
- s.name = "specific_install"
4
- s.summary = "rubygems plugin that allows you you to install a gem from from its github repository (like 'edge'), or from an arbitrary URL"
5
- s.email = "rogerdpack@gmail.com"
6
- s.homepage = "http://github.com/rdp/specific_installs"
7
- s.authors = ["Roger Pack"]
8
- s.add_development_dependency 'rspec'
9
- s.add_development_dependency 'sane'
10
- s.add_dependency 'backports'
11
- end
1
+ require "bundler/gem_tasks"
@@ -1,91 +1,133 @@
1
- require 'rubygems/command_manager'
2
-
3
- class Gem::Commands::SpecificInstallCommand < Gem::Command
4
-
5
- def description
6
- "Allows you to install an \"edge\" gem straight from its github repository or from a web site"
7
- end
8
-
9
- def initialize
10
- super 'specific_install', description
11
- add_option('-l', '--location LOCATION', arguments) do |location, something|
12
- options[:location] = location
13
- end
14
- end
15
-
16
- def arguments
17
- "LOCATION like http://github.com/rdp/ruby_tutorials_core or git://github.com/rdp/ruby_tutorials_core.git or http://host/gem_name.gem"
18
- end
19
-
20
- def usage
21
- "#{program_name} [LOCATION]"
22
- end
23
-
24
- def execute
25
- require 'tempfile'
26
- require 'backports'
27
- require 'fileutils'
28
- if loc = options[:location]
29
- # options are
30
- # http://github.com/githubsvnclone/rdoc.git
31
- # git://github.com/githubsvnclone/rdoc.git
32
- # git@github.com:rdp/install_from_git.git
33
- # http://github.com/rdp/install_from_git [later]
34
- # http://host/gem_name.gem
35
- dir = Dir.mktmpdir
36
- begin
37
- if loc.start_with?('http://') && loc.end_with?('.gem')
38
- Dir.chdir dir do
39
- say "downloading #{loc}"
40
- system("wget #{loc}")
41
- if install_gemspec
42
- puts "successfully installed"
43
- return
44
- else
45
- puts "failed"
46
- end
47
- end
48
- elsif !loc.end_with?('.git')
49
- say 'error: must end with .git to be a git repository'
50
- else
51
- say 'git installing from ' + loc
52
- system("git clone #{loc} #{dir}")
53
- Dir.chdir dir do
54
- for command in ['', 'rake gemspec', 'rake gem', 'rake build', 'rake package'] do
55
- system command
56
- if install_gemspec
57
- puts 'successfully installed'
58
- return
59
- end
60
- end
61
- end
62
- end
63
- puts 'failed'
64
- ensure
65
- FileUtils.rm_rf dir # just in case [?]
66
- end
67
- else
68
- say 'location is required'
69
- end
70
- end
71
-
72
- private
73
-
74
- def install_gemspec
75
- if gemspec = Dir['*.gemspec'][0]
76
- system("gem build #{gemspec}")
77
- system("gem install *.gem")
78
- true
79
- else
80
- if gem = Dir['**/*.gem'][0]
81
- system("gem install #{gem}")
82
- true
83
- else
84
- false
85
- end
86
- end
87
- end
88
-
89
- end
90
-
91
- Gem::CommandManager.instance.register_command :specific_install
1
+ require 'rubygems/command_manager'
2
+
3
+ class Gem::Commands::SpecificInstallCommand < Gem::Command
4
+
5
+ def description
6
+ "Allows you to install an \"edge\" gem straight from its github repository or from a web site"
7
+ end
8
+
9
+ def initialize
10
+ super 'specific_install', description
11
+
12
+ add_option('-l', '--location LOCATION', arguments) do |location|
13
+ options[:location] = location
14
+ end
15
+
16
+ add_option('-b', '--branch LOCATION', arguments) do |branch|
17
+ options[:branch] = branch
18
+ end
19
+
20
+ end
21
+
22
+ def arguments
23
+ "LOCATION like http://github.com/rdp/ruby_tutorials_core or git://github.com/rdp/ruby_tutorials_core.git or http://host/gem_name.gem"
24
+ "BRANCH (optional) like beta, or new-feature"
25
+ end
26
+
27
+ def usage
28
+ "#{program_name} [LOCATION] [BRANCH]"
29
+ end
30
+
31
+ def execute
32
+ require 'tempfile'
33
+ require 'backports'
34
+ require 'fileutils'
35
+ require 'open-uri'
36
+ unless options[:location]
37
+ puts "No location received. Use `gem specific_install -l http://example.com/rdp/specific_install`"
38
+ exit 1
39
+ end
40
+ # options are
41
+ # http://github.com/githubsvnclone/rdoc.git
42
+ # git://github.com/githubsvnclone/rdoc.git
43
+ # git@github.com:rdp/install_from_git.git
44
+ # http://github.com/rdp/install_from_git [later]
45
+ # http://host/gem_name.gem
46
+ # rdp/specific_install
47
+ dir = Dir.mktmpdir
48
+ begin
49
+ loc = options[:location]
50
+ case loc
51
+ when /^http(.*)\.gem$/
52
+ Dir.chdir dir do
53
+ say "downloading #{loc}"
54
+ gem_name = loc.split("/").last
55
+ download(loc, gem_name)
56
+
57
+ if install_gemspec
58
+ success_message
59
+ else
60
+ puts "failed"
61
+ end
62
+ end
63
+ when /\.git$/
64
+ say 'git installing from ' + loc
65
+
66
+ system("git clone #{loc} #{dir}")
67
+ install_from_git(dir)
68
+ when %r(.*/.*)
69
+ puts "Installing from git@github.com:#{loc}.git"
70
+
71
+ system("git clone git@github.com:#{loc}.git #{dir}")
72
+ install_from_git(dir)
73
+ else
74
+ puts 'Error: must end with .git to be a git repository' +
75
+ 'or be in shorthand form: rdp/specific_install'
76
+ end
77
+ ensure
78
+ FileUtils.rm_rf dir
79
+ end
80
+
81
+ end
82
+
83
+ private
84
+
85
+ def download( full_url, output_name )
86
+ File.open(output_name, "wb") do |output_file|
87
+ output_file.write(open(full_url).read)
88
+ end
89
+ end
90
+
91
+ def install_from_git(dir)
92
+ Dir.chdir dir do
93
+ ['', 'rake gemspec', 'rake gem', 'rake build', 'rake package'].each do |command|
94
+ system command
95
+ if install_gemspec
96
+ success_message
97
+ exit 0
98
+ end
99
+ end
100
+ end
101
+ end
102
+
103
+ def success_message
104
+ puts 'Successfully installed'
105
+ end
106
+
107
+ def install_gemspec
108
+ if gemspec = Dir['*.gemspec'][0]
109
+ change_to_branch(options[:branch]) if options[:branch]
110
+ system("gem build #{gemspec}")
111
+ system("gem install *.gem")
112
+ true
113
+ else
114
+ if gem = Dir['**/*.gem'][0]
115
+ system("gem install #{gem}")
116
+ true
117
+ else
118
+ false
119
+ end
120
+ end
121
+ end
122
+
123
+ def change_to_branch(branch)
124
+ system("git checkout #{branch}")
125
+ system("git branch")
126
+ end
127
+ end
128
+
129
+ class Gem::Commands::GitInstallCommand < Gem::Commands::SpecificInstallCommand
130
+ end
131
+
132
+ Gem::CommandManager.instance.register_command :specific_install
133
+ Gem::CommandManager.instance.register_command :git_install
@@ -1 +1,2 @@
1
- require 'rubygems/commands/specific_install_command'
1
+ require "specific_install/version"
2
+ require "rubygems/commands/specific_install_command"
@@ -0,0 +1,3 @@
1
+ module SpecificInstall
2
+ VERSION = "0.2.4"
3
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'specific_install/version'
5
+
6
+ Gem::Specification.new do |s|
7
+
8
+ s.name = "specific_install"
9
+ s.description = %q{rubygems plugin that allows you you to install a gem from from its github repository (like 'edge'), or from an arbitrary URL}
10
+ s.summary = "rubygems plugin that allows you you to install a gem from from its github repository (like 'edge'), or from an arbitrary URL"
11
+ s.email = "rogerdpack@gmail.com"
12
+ s.homepage = "http://github.com/rdp/specific_installs"
13
+ s.authors = ["Roger Pack"]
14
+ s.version = SpecificInstall::VERSION
15
+ s.homepage = "https://github.com/rdp/specific_install"
16
+ s.license = "MIT"
17
+
18
+ s.files = `git ls-files`.split($/)
19
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
21
+ s.require_paths = ["lib"]
22
+
23
+ s.add_dependency 'backports'
24
+ s.add_development_dependency 'rspec'
25
+ s.add_development_dependency 'sane'
26
+ s.add_development_dependency "bundler", "~> 1.3"
27
+ s.add_development_dependency "rake"
28
+ end
metadata CHANGED
@@ -1,101 +1,125 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: specific_install
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 2
8
- - 3
9
- version: 0.2.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
10
5
  platform: ruby
11
- authors:
6
+ authors:
12
7
  - Roger Pack
13
8
  autorequire:
14
9
  bindir: bin
15
10
  cert_chain: []
16
-
17
- date: 2010-04-01 00:00:00 -06:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rspec
11
+ date: 2013-08-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: backports
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
22
21
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
30
34
  type: :development
31
- version_requirements: *id001
32
- - !ruby/object:Gem::Dependency
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
33
42
  name: sane
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
34
49
  prerelease: false
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
42
62
  type: :development
43
- version_requirements: *id002
44
- - !ruby/object:Gem::Dependency
45
- name: backports
46
63
  prerelease: false
47
- requirement: &id003 !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- segments:
52
- - 0
53
- version: "0"
54
- type: :runtime
55
- version_requirements: *id003
56
- description:
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: rubygems plugin that allows you you to install a gem from from its github
84
+ repository (like 'edge'), or from an arbitrary URL
57
85
  email: rogerdpack@gmail.com
58
86
  executables: []
59
-
60
87
  extensions: []
61
-
62
- extra_rdoc_files:
63
- - README
64
- files:
65
- - README
88
+ extra_rdoc_files: []
89
+ files:
90
+ - .gitignore
91
+ - Gemfile
92
+ - LICENSE.txt
93
+ - README.md
66
94
  - Rakefile
67
- - VERSION
68
95
  - lib/rubygems/commands/specific_install_command.rb
69
96
  - lib/rubygems_plugin.rb
70
- has_rdoc: true
71
- homepage: http://github.com/rdp/specific_installs
72
- licenses: []
73
-
97
+ - lib/specific_install/version.rb
98
+ - specific_install.gemspec
99
+ homepage: https://github.com/rdp/specific_install
100
+ licenses:
101
+ - MIT
102
+ metadata: {}
74
103
  post_install_message:
75
- rdoc_options:
76
- - --charset=UTF-8
77
- require_paths:
104
+ rdoc_options: []
105
+ require_paths:
78
106
  - lib
79
- required_ruby_version: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
- version: "0"
86
- required_rubygems_version: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- segments:
91
- - 0
92
- version: "0"
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - '>='
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
93
117
  requirements: []
94
-
95
118
  rubyforge_project:
96
- rubygems_version: 1.3.6
119
+ rubygems_version: 2.0.3
97
120
  signing_key:
98
- specification_version: 3
99
- summary: rubygems plugin that allows you you to install a gem from from its github repository (like 'edge'), or from an arbitrary URL
121
+ specification_version: 4
122
+ summary: rubygems plugin that allows you you to install a gem from from its github
123
+ repository (like 'edge'), or from an arbitrary URL
100
124
  test_files: []
101
-
125
+ has_rdoc:
data/README DELETED
File without changes
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.2.3