rover 1.1.1 → 1.1.2

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.
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