brewdler 0.3.1 → 0.4.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.
data/.gitignore CHANGED
@@ -15,3 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .ruby-gemset
19
+ .ruby-version
data/Readme.mdown CHANGED
@@ -4,12 +4,14 @@ Bundler for non-ruby dependencies from homebrew
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/brewdler.png)](http://badge.fury.io/rb/brewdler)
6
6
  [![Dependency Status](https://gemnasium.com/andrew/brewdler.png)](https://gemnasium.com/andrew/brewdler)
7
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/andrew/brewdler)
7
+ [![Code Climate](https://codeclimate.com/github/andrew/brewdler.png)](https://codeclimate.com/github/andrew/brewdler)
8
8
 
9
9
  ## Requirements
10
10
 
11
11
  [Homebrew](http://github.com/mxcl/homebrew) is used for installing the dependencies, it only works on a mac and so does this gem.
12
12
 
13
+ [Homebrew-cask](http://github.com/phinze/homebrew-cask) is optional and used for installing Mac applications.
14
+
13
15
  ## Usage
14
16
 
15
17
  Install using rubygems:
@@ -22,11 +24,12 @@ then create a `Brewfile` in the root of your project:
22
24
 
23
25
  Then list your homebrew based dependencies in your `Brewfile`:
24
26
 
25
- redis
26
- mongodb
27
- sphinx
28
- imagemagick
29
- mysql
27
+ brew 'redis'
28
+ brew 'mongodb'
29
+ brew 'sphinx'
30
+ brew 'imagemagick'
31
+ brew 'mysql'
32
+ cask 'google-chrome'
30
33
 
31
34
  You can then easily install all of the dependencies on a new mac like so:
32
35
 
@@ -57,4 +60,4 @@ Report Issues/Feature requests on [GitHub Issues](http://github.com/andrew/brewd
57
60
 
58
61
  ## Copyright
59
62
 
60
- Copyright (c) 2013 Andrew Nesbitt. See LICENSE for details.
63
+ Copyright (c) 2013 Andrew Nesbitt. See LICENSE for details.
data/bin/brewdle CHANGED
@@ -11,67 +11,18 @@ default_command :install
11
11
  command :install do |c|
12
12
  c.description = 'Install all homebrew based dependecies'
13
13
  c.action do |args, options|
14
-
15
14
  begin
16
- dependencies = File.open(File.join(Dir.pwd, 'Brewfile')).find_all { |line|
17
- line.chomp!
18
- line.length > 0 && !comment?(line)
19
- }
20
- rescue
15
+ file = File.read(File.join(Dir.pwd, "Brewfile"))
16
+ Brewdler::Dsl.new(file).process
17
+ rescue Errno::ENOENT => e
21
18
  puts 'No Brewfile found'
22
- end
23
-
24
- missing_formulae = dependencies.find_all { |dependency|
25
- !formula_exists?(dependency)
26
- }
27
-
28
- if missing_formulae.empty?
29
- dependencies.each do |dependency|
30
- if installed?(dependency)
31
- puts "Using #{dependency} (#{installed_version(dependency)})"
32
- else
33
- puts "Installing #{dependency} (#{formula_version(dependency)})"
34
- install(dependency)
35
- end
19
+ puts e.message
20
+ rescue NameError
21
+ file = File.open(File.join(Dir.pwd, "Brewfile"))
22
+ file.find_all do |name|
23
+ name.chomp!
24
+ Brewdler::BrewInstaller.install(name) if name.length > 0 && name !~ /^ *#/
36
25
  end
37
- puts "All dependencies installed"
38
- else
39
- puts "Non-existent formula/e: #{missing_formulae.join(', ')}"
40
- puts "(please check spelling in Brewfile, and/or run 'brew update')"
41
26
  end
42
-
43
27
  end
44
28
  end
45
-
46
- def install(name)
47
- brewable = `brew info #{name}`
48
- if brewable[0..4] != 'Error'
49
- system "brew install #{name}"
50
- else
51
- puts "Error: No available formula for #{name}"
52
- end
53
- end
54
-
55
- def formula_exists?(name)
56
- formula_location = File.join(`brew --prefix`.chomp, 'Library', 'Formula', name + ".rb")
57
- File.exists? formula_location
58
- end
59
-
60
- def installed?(name)
61
- installed_version = `brew list --versions #{name}`.chomp
62
- !installed_version.empty?
63
- end
64
-
65
- def installed_version(name)
66
- installed_version = `brew list --versions #{name}`.chomp
67
- installed_version.match(/#{name} ([^\s]+)/)[1]
68
- end
69
-
70
- def formula_version(name)
71
- formula_version = `brew info #{name}`
72
- formula_version.split($/).first.match(/#{name}: stable ([^\s,]+)/)[1]
73
- end
74
-
75
- def comment?(line)
76
- line =~ /^ *#/
77
- end
data/brewdler.gemspec CHANGED
@@ -2,8 +2,8 @@
2
2
  require File.expand_path('../lib/brewdler/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Andrew Nesbitt"]
6
- gem.email = ["andrewnez@gmail.com"]
5
+ gem.authors = ["Andrew Nesbitt", "James A. Anderson", "Amos King"]
6
+ gem.email = ["andrewnez@gmail.com", "me@jamesaanderson.com", "amos.l.king@gmail.com"]
7
7
  gem.summary = %q{Bundler for non-ruby dependencies from homebrew}
8
8
 
9
9
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
data/lib/brewdler.rb CHANGED
@@ -1 +1,4 @@
1
- require "brewdler/version"
1
+ require "brewdler/version"
2
+ require "brewdler/dsl"
3
+ require "brewdler/brew_installer"
4
+ require "brewdler/cask_installer"
@@ -0,0 +1,7 @@
1
+ module Brewdler
2
+ class BrewInstaller
3
+ def self.install(name)
4
+ `brew install #{name}`
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Brewdler
2
+ class CaskInstaller
3
+ def self.install(name)
4
+ `brew cask install #{name}`
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ module Brewdler
2
+ class Dsl
3
+ def initialize(input)
4
+ @input = input
5
+ end
6
+
7
+ def process
8
+ instance_eval(@input)
9
+ end
10
+
11
+ def brew(name)
12
+ Brewdler::BrewInstaller.install(name)
13
+ end
14
+
15
+ def cask(name)
16
+ Brewdler::CaskInstaller.install(name)
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Brewdler
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,19 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brewdler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Andrew Nesbitt
9
+ - James A. Anderson
10
+ - Amos King
9
11
  autorequire:
10
12
  bindir: bin
11
13
  cert_chain: []
12
- date: 2013-03-11 00:00:00.000000000 Z
14
+ date: 2013-06-10 00:00:00.000000000 Z
13
15
  dependencies:
14
16
  - !ruby/object:Gem::Dependency
15
17
  name: commander
16
- requirement: &70296410699500 !ruby/object:Gem::Requirement
18
+ requirement: !ruby/object:Gem::Requirement
17
19
  none: false
18
20
  requirements:
19
21
  - - ! '>='
@@ -21,10 +23,17 @@ dependencies:
21
23
  version: '0'
22
24
  type: :runtime
23
25
  prerelease: false
24
- version_requirements: *70296410699500
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
25
32
  description:
26
33
  email:
27
34
  - andrewnez@gmail.com
35
+ - me@jamesaanderson.com
36
+ - amos.l.king@gmail.com
28
37
  executables:
29
38
  - brewdle
30
39
  extensions: []
@@ -39,6 +48,9 @@ files:
39
48
  - bin/brewdle
40
49
  - brewdler.gemspec
41
50
  - lib/brewdler.rb
51
+ - lib/brewdler/brew_installer.rb
52
+ - lib/brewdler/cask_installer.rb
53
+ - lib/brewdler/dsl.rb
42
54
  - lib/brewdler/version.rb
43
55
  homepage:
44
56
  licenses: []
@@ -60,9 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
72
  version: '0'
61
73
  requirements: []
62
74
  rubyforge_project:
63
- rubygems_version: 1.8.11
75
+ rubygems_version: 1.8.23
64
76
  signing_key:
65
77
  specification_version: 3
66
78
  summary: Bundler for non-ruby dependencies from homebrew
67
79
  test_files: []
68
- has_rdoc: