rover 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/bin/rover +3 -1
  2. data/lib/rover.rb +41 -2
  3. metadata +19 -3
data/bin/rover CHANGED
@@ -5,7 +5,7 @@ $:.unshift File.expand_path("../../lib", __FILE__)
5
5
  require 'rover'
6
6
 
7
7
  if ARGV.size <= 0
8
- puts "You need at least one argument:\nrover install\nrover run"
8
+ puts "You need at least one argument:\nrover install\nrover run\nrover gem_info"
9
9
  else
10
10
  rover = Rover.new
11
11
 
@@ -14,6 +14,8 @@ else
14
14
  rover.install_configs
15
15
  when "configs"
16
16
  rover.pretty_print_configs
17
+ when "gem_info"
18
+ rover.print_gem_infos
17
19
  else
18
20
  puts "Unknown arguments: #{ARGV.inspect}"
19
21
  end
data/lib/rover.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'logger'
2
2
  require 'open3'
3
3
  require 'colorize'
4
+ require 'json'
5
+ require 'open-uri'
4
6
 
5
7
  module Utils
6
8
  # Cross-platform way of finding an executable in the $PATH.
@@ -47,7 +49,7 @@ class Rover
47
49
  include Logging
48
50
  include Utils
49
51
 
50
- attr_accessor :start_directory, :pids_created
52
+ attr_accessor :start_directory
51
53
 
52
54
  CONFIG_FILE_NAMES = {
53
55
  "npm" => 'package.json',
@@ -57,7 +59,6 @@ class Rover
57
59
 
58
60
  def initialize
59
61
  @start_directory = Dir.pwd
60
- @pids_created = []
61
62
 
62
63
  puts "Rover is starting in #{@start_directory}"
63
64
  end
@@ -66,6 +67,44 @@ class Rover
66
67
  discover_config_files
67
68
  end
68
69
 
70
+ def get_gem_info gem_name
71
+ JSON.parse open("http://rubygems.org/api/v1/gems/#{gem_name}.json").read
72
+ end
73
+
74
+ def print_gem_infos
75
+ begin
76
+ gemfile = File.read('Gemfile')
77
+ rescue Exception => e
78
+ puts e
79
+ puts "Is there a Gemfile in the directory you're running me in?"
80
+
81
+ return
82
+ end
83
+
84
+ gemfile.each_line do |l|
85
+ next unless l.lstrip.start_with? "gem"
86
+ parts = l.lstrip.split(/\s|,/)
87
+
88
+ gem_name = if parts.size == 2
89
+ # no version specified
90
+ parts.last
91
+ elsif parts.size > 2
92
+ parts[1]
93
+ else
94
+ nil
95
+ #bad line
96
+ end
97
+
98
+
99
+ if gem_name
100
+ gem_friendly = gem_name.gsub(/[^0-9a-z_-]/i, '')
101
+ puts gem_friendly
102
+ puts get_gem_info(gem_friendly)['info']
103
+ puts ""
104
+ end
105
+ end
106
+ end
107
+
69
108
  def pretty_print_configs
70
109
  configs = discover_config_files
71
110
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rover
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -27,8 +27,24 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
- description: orchestrate the dependency installations of a project that uses npm +-
31
- bundler +- pip requirements
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: discovery and installation of a project that uses npm +- bundler +- pip
47
+ requirements
32
48
  email: mfrosengarten@gmail.com
33
49
  executables:
34
50
  - rover