gemrat 0.2.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f6191b82c90172adf9d811210f46778867894adf
4
- data.tar.gz: db0777e3a8b301013ab59705456ec976d289ef0d
3
+ metadata.gz: bfcab4aa237870a105ea91a28416f3876670ed69
4
+ data.tar.gz: e6ff6a0fc1b5c2d1492068f7aa92b93e6e4c790c
5
5
  SHA512:
6
- metadata.gz: 497754fe392b1f63f7a9fd52c6fe9f2449160f9e104ccbb56b7edf4354ee8535bebade51ae28192c06ee205ac16036e4eb7b3b97f9d81f52bfb8cb63c695a69a
7
- data.tar.gz: 96c08861afbbc3c7bf7263a1f543d7abf55828ad330e0b88c4c63ef73c5bf3efe14bba564c7b9dc0d8e2f20fe483c688d76b45c5cd34d7ddd999719220f8cf4f
6
+ metadata.gz: 2a843393ccb65658307a2bfc1e128057d7ca1636461d6bc2677454ecc40e69d37c239bcae50d630e9ba9fc84e6c212cca628b3919141b4cc934e90183e2c7090
7
+ data.tar.gz: cc9dabbedb159d652ff911a4d34d96395f53e240fc26cff444cdac081795e903aba1500cadea4c77cb43477ee131d153299f06eac4ebe4a16041a291286a04c3
data/.gitignore CHANGED
@@ -3,3 +3,5 @@ design.txt
3
3
  /*.gem
4
4
  /pkg
5
5
  Gemfile.lock
6
+ .ruby-gemset
7
+ .ruby-version
data/Gemfile CHANGED
@@ -2,6 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in gemrat.gemspec
4
4
  gemspec
5
- gem 'rspec', '2.13.0'
6
- gem 'pry', '0.9.12.2'
7
- gem 'colored', '1.2'
data/README.md CHANGED
@@ -6,12 +6,16 @@ Add the latest version of a gem to your Gemfile from the command line.
6
6
  * No need to edit your Gemfile directly
7
7
  * Gemrat bundles automatically
8
8
 
9
+ <br/>
10
+
9
11
  ## Usage
10
12
  Add the latest version of a gem to your Gemfile and bundle. Formated: (gem 'name', 'version')
11
13
  <pre>
12
14
  $ gemrat gem_name
13
15
  </pre>
14
16
 
17
+ <br/>
18
+
15
19
  Add the latest version of sinatra to your Gemfile and bundle
16
20
  <pre>
17
21
  $ gemrat sinatra
@@ -20,19 +24,41 @@ $ gemrat sinatra
20
24
  #=> Bundling...
21
25
  </pre>
22
26
 
23
- Add the latest version of rspec to your Gemfile and bundle
27
+ <br/>
28
+ Add multiple gems
24
29
  <pre>
25
- $ gemrat rspec
30
+ $ gemrat rspec capybara sidekiq
26
31
 
27
32
  #=> gem 'rspec', '2.13.0' added to your Gemfile.
33
+ #=> gem 'capybara', '2.1.0' added to your Gemfile.
34
+ #=> gem 'sidekiq', '2.12.4' added to your Gemfile.
28
35
  #=> Bundling...
29
36
  </pre>
30
37
 
31
38
  <br/>
39
+
40
+
41
+ Get help
42
+
43
+ <pre>
44
+ $ gemrat --help OR gemrat -h
45
+
46
+ Gemrat
47
+
48
+ Add gems to Gemfile from the command line.
49
+
50
+ Usage: gemrat [GEM_NAME] [OPTIONS]
51
+
52
+ Options:
53
+
54
+ -g [--gemfile] # Specify the Gemfile to be used. Defaults to 'Gemfile'.
55
+ -h [--help] # Print these usage instructions.
56
+ </pre>
32
57
  <br/>
33
58
 
34
59
  ![gemrat](http://i.qkme.me/3ut4r1.jpg)
35
60
 
61
+ <br/>
36
62
  ## Installation
37
63
 
38
64
  Add this line to your application's Gemfile:
@@ -47,6 +73,8 @@ Or install it yourself as:
47
73
 
48
74
  $ gem install gemrat
49
75
 
76
+ <br/>
77
+
50
78
  ## Development
51
79
 
52
80
  Run the test suite with:
data/bin/gemrat CHANGED
@@ -2,16 +2,4 @@
2
2
 
3
3
  require 'gemrat'
4
4
 
5
- include Gemrat
6
-
7
- gem_name = ARGV[0]
8
-
9
- begin
10
- add_gem gem_name
11
- puts "Bundling...".green
12
- `bundle`
13
- rescue ArgumentError
14
- puts usage
15
- rescue GemNotFound
16
- puts gem_not_found(gem_name).red
17
- end
5
+ Gemrat::Runner.run(*ARGV)
data/lib/gemrat.rb CHANGED
@@ -1,65 +1,21 @@
1
1
  require "gemrat/version"
2
+ require "gemrat/messages"
3
+ require "gemrat/runner"
4
+ require "gemrat/arguments"
2
5
  require "colored"
3
6
 
4
7
  module Gemrat
5
8
  class GemNotFound < StandardError; end
9
+ class Gem < Struct.new(:name, :valid)
10
+ alias_method :valid?, :valid
6
11
 
7
- def add_gem(name, gemfile='Gemfile')
8
- raise ArgumentError if name.nil?
9
-
10
- gem = process name
11
- gemfile = File.open(gemfile, 'a')
12
- gemfile << "\n#{gem}"
13
- gemfile.close
14
- puts "#{gem} added to your Gemfile.".green
15
- end
16
-
17
- private
18
-
19
- def normalize_for_gemfile(rubygems_format)
20
- gem_name = rubygems_format.split.first
21
- normalized = ("gem " + rubygems_format).gsub(/[()]/, "'")
22
- normalized.gsub(/#{gem_name}/, "'#{gem_name}',")
23
- end
24
-
25
- def find_exact_match(name)
26
- find_all(name).reject { |n| /^#{name} / !~ n }.first
12
+ def initialize(*args)
13
+ super
14
+ self.valid = true
27
15
  end
28
16
 
29
- def find_all(name)
30
- fetch_all(name).split(/\n/)
17
+ def invalid!
18
+ self.valid = false
31
19
  end
32
-
33
- def fetch_all(name)
34
- `gem search -r #{name}`
35
- end
36
-
37
- def process(name)
38
- exact_match = find_exact_match name
39
-
40
- raise GemNotFound if exact_match.nil?
41
-
42
- normalize_for_gemfile exact_match
43
- end
44
-
45
- public
46
-
47
- def usage
48
- usage = <<-USAGE
49
-
50
- Gemrat
51
-
52
- Add gems to Gemfile from the command line.
53
-
54
- Usage: gemrat GEM_NAME
55
-
56
- USAGE
57
- end
58
-
59
- def gem_not_found(name)
60
- message = <<-MESSAGE
61
-
62
- Unable to find gem '#{name}' on Rubygems. Sorry about that.
63
- MESSAGE
64
20
  end
65
21
  end
@@ -0,0 +1,41 @@
1
+ module Gemrat
2
+ class Arguments
3
+ ATTRIBUTES = [:gem_names, :gemfile]
4
+
5
+ ATTRIBUTES.each { |arg| attr_accessor arg }
6
+
7
+
8
+ def initialize(*args)
9
+ self.arguments = *args
10
+
11
+ validate
12
+
13
+ extract_options
14
+ end
15
+
16
+ def gem_names
17
+ arguments.take_while { |arg| arg !~ /^-|^--/}
18
+ end
19
+
20
+ private
21
+
22
+ attr_accessor :arguments
23
+
24
+ def validate
25
+ raise ArgumentError if invalid?
26
+ end
27
+
28
+ def invalid?
29
+ gem_names.empty? || gem_names.first =~ /-h|--help/ || gem_names.first.nil?
30
+ end
31
+
32
+ def extract_options
33
+ options = arguments - gem_names
34
+ opts = Hash[*options]
35
+
36
+ self.gemfile = opts.delete("-g") || opts.delete("--gemfile") || "Gemfile"
37
+ rescue ArgumentError
38
+ # unable to extract options, leave them nil
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ module Gemrat
2
+ module Messages
3
+
4
+ USAGE = <<-USAGE.gsub /^( +)(\w+| -)/, '\2'
5
+
6
+ Gemrat
7
+
8
+ Add gems to Gemfile from the command line.
9
+
10
+ Usage: gemrat [GEM_NAME] [OPTIONS]
11
+
12
+ Options:
13
+
14
+ -g [--gemfile] # Specify the Gemfile to be used. Defaults to 'Gemfile'.
15
+ -h [--help] # Print these usage instructions.
16
+
17
+ USAGE
18
+
19
+ GEM_NOT_FOUND = <<-GEM_NOT_FOUND.gsub /^( +)(\w+)/, '\2'
20
+
21
+ Unable to find gem '%s' on Rubygems. Sorry about that.
22
+ GEM_NOT_FOUND
23
+
24
+ end
25
+ end
@@ -0,0 +1,97 @@
1
+ module Gemrat
2
+ class Runner
3
+ class << self
4
+ attr_accessor :instance
5
+
6
+ def run(*args)
7
+ @instance ||= new(*args)
8
+ @instance.run
9
+ end
10
+ end
11
+
12
+ include Gemrat
13
+ include Messages
14
+
15
+ def initialize(*args)
16
+ with_error_handling { parse_arguments(*args) }
17
+ end
18
+
19
+ def run
20
+ for_each_gem do
21
+ with_error_handling do
22
+
23
+ find_exact_match
24
+ ensure_gem_exists
25
+ normalize_for_gemfile
26
+ add_to_gemfile
27
+
28
+ end
29
+ end
30
+
31
+ run_bundle unless gems.nil? || gems.empty? || gems.select(&:valid?).empty?
32
+ end
33
+
34
+ attr_accessor :gem
35
+
36
+ private
37
+
38
+ attr_accessor :gems, :gemfile, :exact_match
39
+
40
+ def parse_arguments(*args)
41
+ Arguments.new(*args).tap do |a|
42
+ self.gems = a.gem_names.map {|name| Gem.new(name) }
43
+ self.gemfile = a.gemfile
44
+ end
45
+ end
46
+
47
+ def with_error_handling
48
+ yield
49
+ rescue ArgumentError
50
+ puts Messages::USAGE
51
+ rescue GemNotFound
52
+ puts Messages::GEM_NOT_FOUND.red % gem.name
53
+ gem.invalid!
54
+ end
55
+
56
+ def for_each_gem
57
+ gems && gems.each do |gem|
58
+ self.gem = gem
59
+ yield
60
+ end
61
+ end
62
+
63
+ def find_exact_match
64
+ self.exact_match = find_all(gem.name).reject { |n| /^#{gem.name} / !~ n }.first
65
+ end
66
+
67
+ def find_all(name)
68
+ fetch_all(name).split(/\n/)
69
+ end
70
+
71
+ def fetch_all(name)
72
+ `gem search -r #{name}`
73
+ end
74
+
75
+ def ensure_gem_exists
76
+ raise GemNotFound if exact_match.nil?
77
+ end
78
+
79
+ def normalize_for_gemfile
80
+ gem_name = exact_match.split.first
81
+ normalized = ("gem " + exact_match).gsub(/[()]/, "'")
82
+ self.gem.name = normalized.gsub(/#{gem_name}/, "'#{gem_name}',")
83
+ end
84
+
85
+ def add_to_gemfile
86
+ new_gemfile = File.open(gemfile, 'a')
87
+ new_gemfile << "\n#{gem.name}"
88
+ new_gemfile.close
89
+ puts "#{gem.name} added to your Gemfile.".green
90
+ end
91
+
92
+ def run_bundle
93
+ puts "Bundling...".green
94
+ `bundle`
95
+ end
96
+ end
97
+ end
@@ -1,3 +1,3 @@
1
1
  module Gemrat
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
data/spec/gemrat_spec.rb CHANGED
@@ -5,16 +5,19 @@ describe Gemrat do
5
5
  test_gemfile.write ("https://rubygems.org'\n\n# Specify your gem's dependencies in gemrat.gemspec\ngem 'rspec', '2.13.0'\n")
6
6
  test_gemfile.close
7
7
 
8
- class DummyClass
9
- include Gemrat
10
8
 
9
+ class Gemrat::Runner
11
10
  def stubbed_response(*args)
12
- File.read("./spec/rubygems_response_shim")
11
+ File.read("./spec/resources/rubygems_response_shim_for_#{gem.name}")
12
+ rescue Errno::ENOENT
13
+ ""
13
14
  end
14
15
  alias_method :fetch_all, :stubbed_response
15
16
  end
17
+ end
16
18
 
17
- @dummy_class = DummyClass.new
19
+ after :each do
20
+ Gemrat::Runner.instance = nil
18
21
  end
19
22
 
20
23
  def capture_stdout(&block)
@@ -32,29 +35,66 @@ describe Gemrat do
32
35
  File.delete("TestGemfile")
33
36
  end
34
37
 
35
- describe "#add_gem" do
36
- it "adds lastest gem version to gemfile" do
37
- output = capture_stdout { @dummy_class.add_gem("sinatra", "TestGemfile") }
38
- output.should include("'sinatra', '1.4.3' added to your Gemfile")
39
- gemfile_contents = File.open('TestGemfile', 'r').read
40
- gemfile_contents.should include("\ngem 'sinatra', '1.4.3'")
41
- end
38
+ describe Gemrat::Runner do
39
+ subject { Gemrat::Runner }
40
+ describe "#run" do
41
+ context "when valid arguments are given" do
42
+ context "for one gem" do
43
+ it "adds lastest gem version to gemfile" do
44
+ output = capture_stdout { subject.run("sinatra", "-g", "TestGemfile") }
45
+ output.should include("'sinatra', '1.4.3' added to your Gemfile")
46
+ gemfile_contents = File.open('TestGemfile', 'r').read
47
+ gemfile_contents.should include("\ngem 'sinatra', '1.4.3'")
48
+ output.should include("Bundling")
49
+ end
50
+ end
51
+
52
+ context "for multiple gems" do
53
+ it "adds latest gem versions to gemfile" do
54
+ output = capture_stdout { subject.run("sinatra", "rails", "minitest", "-g", "TestGemfile") }
55
+ output.should include("'sinatra', '1.4.3' added to your Gemfile")
56
+ output.should include("'minitest', '5.0.5' added to your Gemfile")
57
+ output.should include("'rails', '3.2.13' added to your Gemfile")
58
+ gemfile_contents = File.open('TestGemfile', 'r').read
59
+ gemfile_contents.should include("\ngem 'sinatra', '1.4.3'")
60
+ gemfile_contents.should include("\ngem 'minitest', '5.0.5'")
61
+ gemfile_contents.should include("\ngem 'rails', '3.2.13'")
62
+ output.should include("Bundling")
63
+ end
42
64
 
43
- context "when name is not given in arguments" do
44
- it "should raise ArgumentError" do
45
- expect { @dummy_class.add_gem }.to raise_error(ArgumentError)
65
+ context "when one of the gems is invalid" do
66
+ it "adds other gems and runs bundle" do
67
+ output = capture_stdout { subject.run("sinatra", "beer_maker_2000", "minitest", "-g", "TestGemfile") }
68
+ output.should include("'sinatra', '1.4.3' added to your Gemfile")
69
+ output.should include("'minitest', '5.0.5' added to your Gemfile")
70
+ output.should include("#{Gemrat::Messages::GEM_NOT_FOUND % "beer_maker_2000"}")
71
+ output.should include("Bundling")
72
+ end
73
+ end
74
+ end
46
75
  end
47
- end
48
76
 
49
- context "when gem is not found" do
50
- before do
51
- @dummy_class.stub(:find_exact_match)
77
+ ["when gem name is left out from the arguments", "",
78
+ "when -h or --help is given in the arguments", "-h"].each_slice(2) do |ctx, arg|
79
+ context ctx do
80
+ it "prints usage" do
81
+ output = capture_stdout { subject.run(arg == "" ? nil : arg) }
82
+ output.should include(Gemrat::Messages::USAGE)
83
+ end
84
+ end
52
85
  end
53
86
 
54
- it "raises GemNotFound" do
55
- expect do
56
- @dummy_class.add_gem("unexistent_gem", "TestGemfile")
57
- end.to raise_error(Gemrat::GemNotFound)
87
+ context "when gem is not found" do
88
+ before do
89
+ subject.stub(:find_exact_match)
90
+ @gem_name = "unexistent_gem"
91
+ end
92
+
93
+ it "prints a nice error message" do
94
+ output = capture_stdout { subject.run(@gem_name) }
95
+ output.should include("#{Gemrat::Messages::GEM_NOT_FOUND % @gem_name}")
96
+ output.should_not include("Bundling...")
97
+ end
58
98
  end
59
99
  end
60
100
  end
@@ -0,0 +1,75 @@
1
+ minitest (5.0.5)
2
+ minitest-activemodel (1.0.0)
3
+ minitest-ansi (0.1.2)
4
+ minitest-ar-assertions (0.0.4)
5
+ minitest-around (0.0.1)
6
+ minitest-bacon (1.0.1)
7
+ minitest-capistrano (0.2.0)
8
+ minitest-capybara (0.2.0)
9
+ minitest-capybara-unit (0.0.1)
10
+ minitest-chain (0.5.2)
11
+ minitest-check (0.0.1)
12
+ minitest-chef-handler (1.0.1)
13
+ minitest-ci (2.4.0)
14
+ minitest-colorer (0.1.1)
15
+ minitest-colorize (0.0.5)
16
+ minitest-context (0.4.0)
17
+ minitest-debugger (1.0.2)
18
+ minitest-deluxe (1.4.2.4)
19
+ minitest-descriptive (0.0.1)
20
+ minitest-display (0.1.0)
21
+ minitest-em-sync (0.1.0)
22
+ minitest-emoji (1.0.0)
23
+ minitest-english (0.1.0)
24
+ minitest-excludes (1.0.2)
25
+ minitest-extra-assertions (0.2.0)
26
+ minitest-fastfail (0.1.1)
27
+ minitest-filesystem (1.0.0)
28
+ minitest-firemock (0.0.2)
29
+ minitest-focus (1.0.0)
30
+ minitest-great_expectations (0.0.4)
31
+ minitest-growl (0.0.3)
32
+ minitest-happy (1.0.0)
33
+ minitest-implicit-subject (1.2.0)
34
+ minitest-instrument (0.0.1)
35
+ minitest-instrument-db (0.0.1)
36
+ minitest-libnotify (0.2.2)
37
+ minitest-line (0.5.0)
38
+ minitest-macruby (1.0.1)
39
+ minitest-matcher-library (1.0.0)
40
+ minitest-matchers (1.3.0)
41
+ minitest-metadata (0.4.0)
42
+ minitest-mongoid (0.0.1)
43
+ minitest-must_not (0.1.0)
44
+ minitest-mustwonted (1.0.0)
45
+ minitest-nc (0.0.1)
46
+ minitest-notification (0.0.4)
47
+ minitest-perf (0.0.3)
48
+ minitest-predicates (0.1.0)
49
+ minitest-pretty_diff (0.1)
50
+ minitest-rails (0.9.2)
51
+ minitest-rails-capybara (0.9.0)
52
+ minitest-rails-shoulda (0.4.1)
53
+ minitest-rails-tools (0.1.0)
54
+ minitest-reporters (0.14.20)
55
+ minitest-reporters-fail (0.0.1)
56
+ minitest-reporters-ws (0.0.2)
57
+ minitest-rg (1.1.1)
58
+ minitest-should_syntax (1.0.2)
59
+ minitest-shouldify (1.1.1)
60
+ minitest-spec (0.0.2.1)
61
+ minitest-spec-context (0.0.3)
62
+ minitest-spec-expect (0.1.0)
63
+ minitest-spec-magic (0.2.1)
64
+ minitest-spec-rails (4.7.3)
65
+ minitest-spec-rails-tu-shim (1.9.3.4)
66
+ minitest-spec-should (0.1.0)
67
+ minitest-stub-const (0.1)
68
+ minitest-sugar (1.0.0)
69
+ minitest-tags (0.0.5)
70
+ minitest-wscolor (0.0.3)
71
+ minitest_diff (0.0.1)
72
+ minitest_owrapper (0.0.1)
73
+ minitest_rails_tools (0.2.1)
74
+ minitest_should (0.3.1)
75
+ minitest_tu_shim (1.3.2)
@@ -0,0 +1,490 @@
1
+ rails (3.2.13)
2
+ rails-3-settings (0.1.1)
3
+ rails-action-args (0.1.1)
4
+ rails-admin (0.0.0)
5
+ rails-ajax (0.1.2.20130211)
6
+ rails-alertify (0.3.2)
7
+ rails-alpha_numeric_validator (0.1.1)
8
+ rails-and-solid (0.9.1)
9
+ rails-annoying (0.1.0)
10
+ rails-api (0.1.0)
11
+ rails-app-installer (0.2.0)
12
+ rails-app-spec (0.5.0)
13
+ rails-archer (0.0.1)
14
+ rails-arts (1.1)
15
+ rails-asset-jqgrid (0.0.3)
16
+ rails-asset-jqueryui (0.0.3)
17
+ rails-asset-localization (0.1.0)
18
+ rails-assets (0.5.2)
19
+ rails-assets-cdn (0.1.0)
20
+ rails-async (0.1.1)
21
+ rails-auth-github (0.0.1)
22
+ rails-autoellipsis (1.0.10)
23
+ rails-backbone (0.9.10)
24
+ rails-backbone-forms (0.11.0)
25
+ rails-backbone-generator (0.0.3)
26
+ rails-backbone-sp (0.0.1)
27
+ rails-backup-migrate (0.0.12)
28
+ rails-behaviors (0.4.1)
29
+ rails-block-labels (0.0.2)
30
+ rails-boilerplate (0.1.9)
31
+ rails-boot-reporting (0.0.3)
32
+ rails-bootstrap-engine (0.0.5)
33
+ rails-bootstrap-helpers (0.0.1)
34
+ rails-bootstrap-markdown (0.0.2)
35
+ rails-bootstrap-toggle-buttons (0.0.7)
36
+ rails-bootstrap-ui (0.0.2)
37
+ rails-bootstrap-widgets (0.0.2)
38
+ rails-breadcrumbs (1.0.0)
39
+ rails-brochure (0.1.1)
40
+ rails-browscap (0.1.1)
41
+ rails-cache-tags (1.2.0)
42
+ rails-caddy (0.0.8)
43
+ rails-cancan-bootstrap-scaffold (0.0.1)
44
+ rails-canhaz (1.0.7)
45
+ rails-carrot (1.0.1)
46
+ rails-ckeditor (0.0.0)
47
+ rails-clean-logs (1.1)
48
+ rails-client-logger (0.0.2)
49
+ rails-console-pry (0.0.5)
50
+ rails-console-tweaks (1.0.0)
51
+ rails-contrib (0.0.3)
52
+ rails-cron-logger (1.0.3)
53
+ rails-crud (0.0.2)
54
+ rails-crumbs (1.0.6)
55
+ rails-csv-fixtures (0.0.1)
56
+ rails-database-url (1.0.0)
57
+ rails-db-resetup (0.0.2)
58
+ rails-db_env (0.0.2)
59
+ rails-dbd-mysql (0.1.0)
60
+ rails-dbi (0.1.2)
61
+ rails-default-database (1.0.6)
62
+ rails-dev-boost (0.2.1)
63
+ rails-dev-boost-beta (0.1.3)
64
+ rails-dev-bundle (0.2)
65
+ rails-dev-tweaks (0.6.1)
66
+ rails-dev-tweaks-arturo (0.6.2)
67
+ rails-development-toolbox (0.2.0)
68
+ rails-develotest (0.0.1)
69
+ rails-doorman (0.1.0)
70
+ rails-dtrace (0.0.4)
71
+ rails-dummy (0.0.1)
72
+ rails-env-switcher (0.2.3)
73
+ rails-erb-check (0.1.0)
74
+ rails-erd (1.1.0)
75
+ rails-ess (1.0.0)
76
+ rails-excel (1.0.3)
77
+ rails-excel-rubyXL-strategy (0.0.1)
78
+ rails-excel-spreadsheet-strategy (0.0.1)
79
+ rails-excel-writeexcel-strategy (0.0.1)
80
+ rails-ext (0.3.29)
81
+ rails-extensions (0.0.1)
82
+ rails-extjs-direct (0.0.15)
83
+ rails-file-icons (0.0.1)
84
+ rails-firephp (0.0.2)
85
+ rails-flash_patch (0.0.1)
86
+ rails-font-awesome (3.0.0)
87
+ rails-footnotes (3.7.9)
88
+ rails-footnotes-linux (3.6.2)
89
+ rails-four-queueing (0.2.0)
90
+ rails-gallery (0.3.2)
91
+ rails-generators (0.0.1)
92
+ rails-geocoder (0.9.11)
93
+ rails-google-maps (0.0.15)
94
+ rails-gsa (0.0.3)
95
+ rails-hamljs (0.0.1)
96
+ rails-heatmap (0.0.0)
97
+ rails-i18n (0.7.3)
98
+ rails-i18n-debug (1.0.1)
99
+ rails-i18n-record (1.0.5)
100
+ rails-i18n-routes (1.1.8)
101
+ rails-i18n-updater (1.0.1)
102
+ rails-i18nterface (0.2.4)
103
+ rails-imager (0.0.5)
104
+ rails-indexes (0.0.1)
105
+ rails-ioc (0.2.1)
106
+ rails-jasny-bootstrap-extension (0.0.1)
107
+ rails-jquery-bundle (0.0.2)
108
+ rails-jquerymobile (0.0.6)
109
+ rails-latex (1.0.11)
110
+ rails-localization (0.2.0)
111
+ rails-logger-ext (0.1.0)
112
+ rails-maker (0.1.1)
113
+ rails-mark_requirements (0.0.1)
114
+ rails-marker (0.0.3)
115
+ rails-mobile (0.9.1)
116
+ rails-named-routes-options (0.0.1)
117
+ rails-no-cache (0.1.1)
118
+ rails-observers (0.1.1)
119
+ rails-pages (0.0.1)
120
+ rails-pagination (2.0.6)
121
+ rails-parts (0.3.2)
122
+ rails-paypal (0.0.0)
123
+ rails-perftest (0.0.2)
124
+ rails-permalink (1.0.0)
125
+ rails-pg-procs (1.0.2)
126
+ rails-pjax (0.0.2)
127
+ rails-precompile2git (1.0.5)
128
+ rails-pry (0.0.1)
129
+ rails-przelewy24 (0.0.4)
130
+ rails-pulse (0.5.1)
131
+ rails-queue (1.0.0)
132
+ rails-rake-pg (0.0.4)
133
+ rails-rateit (0.2)
134
+ rails-recipes (0.1.2)
135
+ rails-redactorjs (0.0.1)
136
+ rails-routes-js-utils (2.0.1)
137
+ rails-sandbox-assets (0.0.5)
138
+ rails-sandbox-busterjs (0.0.1)
139
+ rails-sass-images (0.3)
140
+ rails-scheduler (0.1.2)
141
+ rails-schema-validations (0.9.4)
142
+ rails-security (0.0.2)
143
+ rails-serious-business (0.1)
144
+ rails-services (0.1.5)
145
+ rails-settings (1.0.0)
146
+ rails-settings-cached (0.3.0)
147
+ rails-sh (1.5.2)
148
+ rails-simple-search (0.9.7)
149
+ rails-skeleton (0.0.1)
150
+ rails-slow-assets-workaround (0.1.1)
151
+ rails-slugs (1.0.8)
152
+ rails-ssi (0.0.2)
153
+ rails-static (1.0.0)
154
+ rails-stencil (0.2.3)
155
+ rails-styleguide (0.0.4)
156
+ rails-subdomain (0.0.2)
157
+ rails-tables (0.6.6)
158
+ rails-talks (0.0.3)
159
+ rails-tartare (1.1.1)
160
+ rails-template-inheritance (0.0.2)
161
+ rails-test-serving (0.1.4.2)
162
+ rails-test-toolbox (0.2.0)
163
+ rails-theme-helper (0.0.4)
164
+ rails-themes (1.1.1)
165
+ rails-timeago (2.4.0)
166
+ rails-toolkit (8.04.1)
167
+ rails-translate (1.0.0)
168
+ rails-translate-models (0.1.0)
169
+ rails-translate-routes (0.1.3)
170
+ rails-translator (0.0.1)
171
+ rails-trash (2.0.0)
172
+ rails-ueditor (0.0.0)
173
+ rails-ujs (0.0.3)
174
+ rails-ujs-form (0.2.0)
175
+ rails-units (1.6.0)
176
+ rails-up (0.0.1)
177
+ rails-upgrade (0.0.2)
178
+ rails-uploader (0.1.3)
179
+ rails-uploads (0.1.5)
180
+ rails-view-helper-objects (0.0.1)
181
+ rails-web-console (0.2.0)
182
+ rails-wysihtml5 (0.3.0.1)
183
+ rails-xmlrpc (0.3.7)
184
+ rails2_asset_pipeline (0.3.2)
185
+ rails2_libmemcached_store (0.3.2)
186
+ rails2ext (0.0.1)
187
+ rails3-active_form (2.0.0)
188
+ rails3-generators (1.0.0)
189
+ rails3-jquery-autocomplete (1.0.11)
190
+ rails3-jquery-autocomplete-moc (0.3.3)
191
+ rails3-opensocial (0.0.6)
192
+ rails3-redis-session-store (0.3.0)
193
+ rails3-restful-authentication (3.0.1)
194
+ rails3-settings (1.0.0)
195
+ rails3-tutorial (0.4.4.2)
196
+ rails31-evergreen (0.4.1)
197
+ rails31-markdown-editor (0.0.3)
198
+ rails3_acts_as_paranoid (0.2.5)
199
+ rails3_acts_as_paranoid-bjones (0.0.1)
200
+ rails3_acts_as_paranoid_create (0.2.0)
201
+ rails3_artifactor (0.4.0)
202
+ rails3_assist (0.3.7)
203
+ rails3_before_render (0.2.0)
204
+ rails3_bridge (0.1.2)
205
+ rails3_devise_wizard (0.3.2)
206
+ rails3_fitter_happier (0.0.2)
207
+ rails3_libmemcached_store (0.5.1)
208
+ rails3_markitup (0.0.4)
209
+ rails3_pg_deferred_constraints (0.1.0)
210
+ rails3_plugin_toolbox (0.3.4)
211
+ rails3_sequel (0.3.1)
212
+ rails3b (3.0.1)
213
+ rails4_acts_as_paranoid (0.1.4)
214
+ rails4_client_side_validations (0.0.3)
215
+ rails4_upgrade (0.5.0)
216
+ rails4foryouandme (0.0.2)
217
+ rails800 (0.0.1)
218
+ rails960gs (0.2.4)
219
+ rails_12factor (0.0.2)
220
+ rails_2_preload (0.2.2)
221
+ rails_4_session_flash_backport (0.0.2)
222
+ rails_account_location (1.0.1)
223
+ rails_action_args (0.2.0)
224
+ rails_address_fetcher (1.0)
225
+ rails_admin (0.4.9)
226
+ rails_admin-i18n (0.0.9)
227
+ rails_admin-lbgraham (0.4.2)
228
+ rails_admin-treeview (1.0.0)
229
+ rails_admin_globalize (0.0.3)
230
+ rails_admin_histeroid (0.0.2)
231
+ rails_admin_import (0.1.8)
232
+ rails_admin_jcrop (1.1.2)
233
+ rails_admin_nestable (0.1.4)
234
+ rails_admin_nested_set (0.1.1)
235
+ rails_admin_pdf (0.0.1)
236
+ rails_admin_phone_number_field (0.0.2)
237
+ rails_admin_settings (0.5.0)
238
+ rails_admin_slug (0.1.3)
239
+ rails_admin_state_machine (1.0.1)
240
+ rails_admin_tag_list (0.1.5)
241
+ rails_admin_toggleable (0.3.0)
242
+ rails_adserver (1.0.2)
243
+ rails_analyzer_tools (1.4.0)
244
+ rails_antiscroll (0.0.3)
245
+ rails_app_config (0.0.2)
246
+ rails_appengine (0.0.8)
247
+ rails_application_assets (1.0.2)
248
+ rails_apps_composer (2.2.41)
249
+ rails_artifactor (0.5.1)
250
+ rails_asset_packager (0.2.2)
251
+ rails_assist (0.5.3)
252
+ rails_assistant (1.0.0)
253
+ rails_atomic_increment (0.2)
254
+ rails_auditor (0.0.1)
255
+ rails_authentication (0.9.3)
256
+ rails_authorization (0.9.2)
257
+ rails_autocomplete (0.0.6)
258
+ rails_autolink (1.1.0)
259
+ rails_best_practices (1.13.8)
260
+ rails_best_practices-gorgeouscode (1.0.0)
261
+ rails_best_practices-raydog153 (0.9.1)
262
+ rails_blog_engine (0.0.4)
263
+ rails_bootstrap_easy_navbar (0.0.4)
264
+ rails_bootstrap_helpers (0.0.1)
265
+ rails_breadcrumbs (0.5.4)
266
+ rails_bridge (0.0.11)
267
+ rails_cache_it (0.0.2)
268
+ rails_cacheable_flash (0.0.24)
269
+ rails_calendar (0.0.1)
270
+ rails_captcha (0.0.7)
271
+ rails_cherry_pick (3.2.8)
272
+ rails_clafer (0.1.7)
273
+ rails_code_qa (1.0.0)
274
+ rails_code_stats (0.1.1)
275
+ rails_commentable (0.1.0)
276
+ rails_complete (0.5.0)
277
+ rails_component (0.1.2)
278
+ rails_config (0.3.3)
279
+ rails_config_i18n (0.3.1.3)
280
+ rails_config_loader (0.1.5)
281
+ rails_config_model_generator (1.2.2)
282
+ rails_configurator (0.0.1)
283
+ rails_contrib (0.0.6)
284
+ rails_creator (0.6.2)
285
+ rails_crumbs (1.0.5)
286
+ rails_css_themes (1.0.0)
287
+ rails_csv_importer (0.1.3)
288
+ rails_currency (1.2)
289
+ rails_current (1.7.0)
290
+ rails_customerbeats (0.3)
291
+ rails_dash (0.1.2)
292
+ rails_database_yml (0.0.2)
293
+ rails_datamapper (1.0.2)
294
+ rails_db_admin (2.1.1)
295
+ rails_db_browser (0.0.9)
296
+ rails_db_dump (0.1.1)
297
+ rails_debug (1.0.1)
298
+ rails_debugging_toolbar (0.0.3)
299
+ rails_decorators (0.2.5)
300
+ rails_default_url_options (2.0.0)
301
+ rails_development_toolkit (0.0.4)
302
+ rails_devs_for_data_integrity (0.1.5)
303
+ rails_dictionary (0.1.2)
304
+ rails_dm_datastore (0.2.16)
305
+ rails_doctor (0.0.1)
306
+ rails_document_ready (1.0.1)
307
+ rails_dt (0.1.4)
308
+ rails_dump (0.1.0)
309
+ rails_email_preview (0.2.2)
310
+ rails_email_validator (0.1.4)
311
+ rails_emoji (1.6.2)
312
+ rails_engine_decorators (0.0.1)
313
+ rails_env (0.1.0)
314
+ rails_environment (0.0.3)
315
+ rails_errors2html (1.4.2)
316
+ rails_exception_handler (2.1.0)
317
+ rails_extensions (1.0.6)
318
+ rails_factory (0.0.1)
319
+ rails_filemanager (1.2)
320
+ rails_finder (0.0.3)
321
+ rails_fix_google_bot_accept (0.1.0)
322
+ rails_form_autosave (0.0.7)
323
+ rails_form_backing_objects (0.0.2)
324
+ rails_fu (0.0.1)
325
+ rails_full_cal (0.0.3)
326
+ rails_gae (0.0.4)
327
+ rails_gem_install (0.3.4)
328
+ rails_generators_test_case_modules (0.2.1)
329
+ rails_git_version (0.0.1)
330
+ rails_hacks (0.0.3)
331
+ rails_helper (1.3.0)
332
+ rails_helpers_fix (0.1.1)
333
+ rails_highcharts (0.0.3)
334
+ rails_html_helpers (0.1.1)
335
+ rails_html_output (1.0)
336
+ rails_i18n_gettext (0.0.4)
337
+ rails_i18n_record (1.0.4)
338
+ rails_i18n_routes (1.1.8)
339
+ rails_info (0.1.0)
340
+ rails_inheritable_attributes_manager (0.3.1)
341
+ rails_instrument (0.0.4)
342
+ rails_ip_validator (0.1.2)
343
+ rails_is_forked (0.0.1)
344
+ rails_javascript_helpers (1.5.1)
345
+ rails_javascript_log (0.0.1)
346
+ rails_join (1.0.0)
347
+ rails_jq_grid (0.0.3)
348
+ rails_jquery_ui_datepicker (0.1)
349
+ rails_jumpstart (1.0.0)
350
+ rails_kindeditor (0.3.19)
351
+ rails_kindeditor_qiniu (0.0.4)
352
+ rails_legacy_mapper (1.1.0)
353
+ rails_locale_detection (1.3.2)
354
+ rails_locale_sorter (0.1.1)
355
+ rails_log_autotruncator (0.2.2)
356
+ rails_log_converter (0.0.2)
357
+ rails_log_stdout (0.1.1)
358
+ rails_log_watcher (0.0.2)
359
+ rails_logger (1.1.4)
360
+ rails_look_up_table (1.0.0)
361
+ rails_lookup (0.0.4)
362
+ rails_magick (0.0.8)
363
+ rails_mail_preview (0.0.4)
364
+ rails_markdown (0.0.0)
365
+ rails_markitup (0.0.3)
366
+ rails_memcached_view (0.2)
367
+ rails_menu (0.1.0)
368
+ rails_meta_tags (0.2.9)
369
+ rails_metrics (0.1)
370
+ rails_mini (0.0.3)
371
+ rails_model_load_hook (0.1.0)
372
+ rails_mongo_sessions (0.2.3)
373
+ rails_mustache (0.0.1)
374
+ rails_nav (2.5.0)
375
+ rails_nested_layouts (0.1.1)
376
+ rails_new (0.0.12)
377
+ rails_no_database_in_view (0.0.2)
378
+ rails_objects_logger (1.1.0)
379
+ rails_on_heroku (0.0.2)
380
+ rails_on_pg (0.0.1)
381
+ rails_openid (0.2.0)
382
+ rails_paginate (0.0.7)
383
+ rails_pagination (2.0.9)
384
+ rails_panel (0.0.1)
385
+ rails_parallel (0.1.3)
386
+ rails_parse_fixes (2.3.0)
387
+ rails_parser (0.0.1)
388
+ rails_phone (1.0.0)
389
+ rails_pitfall (1.0.7)
390
+ rails_presenter (0.0.3)
391
+ rails_product (0.6)
392
+ rails_pwnerer (0.7.6)
393
+ rails_qaptcha (0.0.5)
394
+ rails_redis_cache (0.2.0)
395
+ rails_refactor (1.3)
396
+ rails_relations_fix (1.1.1)
397
+ rails_rename (0.0.1)
398
+ rails_reroute (0.2.4)
399
+ rails_reset (0.0.1)
400
+ rails_responds_to_parent (1.0.0)
401
+ rails_reverse_db (0.0.6)
402
+ rails_riemann_middleware (0.5.0)
403
+ rails_sandbox_jasmine (0.0.3)
404
+ rails_sandbox_mocha_chai (0.0.1)
405
+ rails_seeder (0.0.6)
406
+ rails_semantic_logger (1.1.0)
407
+ rails_sequel (0.2.1)
408
+ rails_serve_static_assets (0.0.1)
409
+ rails_settings (0.1.1)
410
+ rails_setup (0.0.3)
411
+ rails_simple_backup_restore (0.1)
412
+ rails_simple_config (0.0.4)
413
+ rails_simple_monitor (0.0.1)
414
+ rails_slickgrid (0.0.4)
415
+ rails_slugs (1.0.9)
416
+ rails_soft_destroy (0.1.1)
417
+ rails_sql_triggers (0.0.2)
418
+ rails_sql_views (0.8.0)
419
+ rails_stdout_logging (0.0.1)
420
+ rails_structure_loading (0.1.1)
421
+ rails_syslogger (0.1.6)
422
+ rails_tabs (0.9.2)
423
+ rails_templater (0.3.0)
424
+ rails_templatizer (0.0.1)
425
+ rails_temporary_data (1.0.1)
426
+ rails_test_shortcuts (0.1.1)
427
+ rails_tiny_ds (0.0.2.1)
428
+ rails_tinymce (0.0.1)
429
+ rails_to_postman (0.0.1)
430
+ rails_tokeninput (1.6.0)
431
+ rails_tools-absence_validator (0.0.3)
432
+ rails_tooltip (0.0.1)
433
+ rails_tube (0.0.0)
434
+ rails_uploads (0.2.7)
435
+ rails_uri_parser (1.0.0)
436
+ rails_uri_validator (0.1.2)
437
+ rails_utils (2.1.0)
438
+ rails_validations_hmac (0.0.5)
439
+ rails_validators (0.0.1)
440
+ rails_version (0.2.3)
441
+ rails_view (1.0.1)
442
+ rails_view_annotator (0.0.7)
443
+ rails_view_helpers (0.0.3)
444
+ rails_warden (0.5.7)
445
+ rails_wink (0.1.2)
446
+ rails_wip (0.1.1)
447
+ rails_wizard (0.1.5)
448
+ rails_xss (0.4.0)
449
+ rails_zombie (1.0.0)
450
+ railsalitics (0.1)
451
+ railsbench (0.9.8)
452
+ railscart (0.0.4)
453
+ railscast-assets (0.0.2)
454
+ railscasts (0.1.0)
455
+ railscasts_download (0.3.1)
456
+ railscheck (0.2.0)
457
+ railsconfcal (0.0.0)
458
+ railsdav (0.0.5)
459
+ railsdog-less (1.2.17)
460
+ RailsEditor (0.0.29)
461
+ railsex (1.2)
462
+ railsgarden-message_block (0.1.0)
463
+ railshoster (0.6.12)
464
+ railsieve (0.0.1)
465
+ railsless-deploy (1.1.2)
466
+ railslog (0.0.1)
467
+ railslove-cli (0.0.3)
468
+ railslove-rack-throttle (0.0.1)
469
+ railslove-suspenders (0.1.0)
470
+ railslove_deploy (0.4.6)
471
+ railsmachine (1.0.6)
472
+ RailsMug (0.0.3)
473
+ railsonfire (0.2.17)
474
+ railspm (0.0.1)
475
+ railsquest (0.1)
476
+ RailsRemoteControl (1.0.0)
477
+ RailsRRDTool (1.0.2)
478
+ railstank (0.1.0)
479
+ railstar (0.0.12)
480
+ railsthemes (2.0.0)
481
+ RailsTop (0.0.2)
482
+ railstrap (0.0.1)
483
+ railsversions (0.0.3)
484
+ railsware-authlogic (2.1.6.1)
485
+ railsware-gcal4ruby (0.5.6)
486
+ railsware-passenger (3.0.2.1)
487
+ railsware-soap4r (1.5.8.1)
488
+ railsware-telesign (0.0.2)
489
+ railsware-workflow (0.8.1)
490
+ railswhere (0.2)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemrat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dru Riley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-20 00:00:00.000000000 Z
11
+ date: 2013-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored
@@ -97,10 +97,14 @@ files:
97
97
  - bin/gemrat
98
98
  - gemrat.gemspec
99
99
  - lib/gemrat.rb
100
+ - lib/gemrat/arguments.rb
101
+ - lib/gemrat/messages.rb
102
+ - lib/gemrat/runner.rb
100
103
  - lib/gemrat/version.rb
101
- - pkg/gemrat-0.1.2.gem
102
104
  - spec/gemrat_spec.rb
103
- - spec/rubygems_response_shim
105
+ - spec/resources/rubygems_response_shim_for_minitest
106
+ - spec/resources/rubygems_response_shim_for_rails
107
+ - spec/resources/rubygems_response_shim_for_sinatra
104
108
  - spec/spec_helper.rb
105
109
  homepage: https://github.com/DruRly/gemrat
106
110
  licenses:
@@ -128,5 +132,7 @@ specification_version: 4
128
132
  summary: Add the latest version of a gem to your Gemfile from the command line.
129
133
  test_files:
130
134
  - spec/gemrat_spec.rb
131
- - spec/rubygems_response_shim
135
+ - spec/resources/rubygems_response_shim_for_minitest
136
+ - spec/resources/rubygems_response_shim_for_rails
137
+ - spec/resources/rubygems_response_shim_for_sinatra
132
138
  - spec/spec_helper.rb