exogenesis 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85feab0e9949fef0074531c9400d1b105f690571
4
- data.tar.gz: c3ae68824eeb4007c9548313a3d2ceb81b50256e
3
+ metadata.gz: 55949c882eb8ea8d7239507d4cd16da8236c66c6
4
+ data.tar.gz: 117f4e2ef5d53bb1e35e4c71b963c526b2d26131
5
5
  SHA512:
6
- metadata.gz: a02b6e88da9d019bc7fbb1cfd9091f3d6cd8d355a66a51a80275f6d639701671662600bb65c750424449225bec5ab0507a3b23c30556ee065b29d4fa4efbca0d
7
- data.tar.gz: f02c877d2e01d492e86cf036950770a53ccab2ad7730d18bfcfc6f3bfcdb86df625b2bab99419b48a4299caba82d579774021566e4c624edaf4b419e1a98bb15
6
+ metadata.gz: 5884cd3c2c93f39638b563c1a1eb3404b4a6f44d3ad94f4c927e4975058b10a864553d7a5f5d52d0609f4829df957e1db0fc3381151394b5b0c2d819c9f0476c
7
+ data.tar.gz: 77f0e099577c5b3eab9c6b757bc7804d55a3fa38e976240ba2d3003fde0a7216eb3f6dddc1b07431d522fd577a9c5c8c84f39475663a6e82a6e2adee15d8fc88
@@ -1,5 +1,32 @@
1
1
  # Exogenesis – Changelog
2
2
 
3
+ It's bigger on the inside
4
+
5
+ ## 1.0.0
6
+
7
+ **Codename:** Certain shade of green
8
+
9
+ * It is in production now for quite some time, let's put a 1.0.0 on it
10
+ * [Add shell passenger to execute shell scripts](https://github.com/moonglum/exogenesis/pull/59)
11
+ * [Updated Bundler](https://github.com/moonglum/exogenesis/pull/66)
12
+ * [Some fonts have spaces in the name](https://github.com/moonglum/exogenesis/pull/67)
13
+ * [Vim Plug Support](https://github.com/moonglum/exogenesis/pull/68)
14
+
15
+ ## 0.2
16
+
17
+ **Codename:** *It's bigger on the inside*
18
+
19
+ * The BIG refactoring
20
+ * Better Names for things
21
+ * New passengers: rbenv, npm, homebrew casks
22
+ * Configure which passengers to use via the YML file
23
+ * Introducing `needs` and `register_as` for Passengers
24
+ * Forward commands from passengers to executor
25
+ * Introduction of the Exogenesis badge/shield
26
+ * **Unique Cover Art in exogenesis:** For example the beer emoji for homebrew. Defaults to the star. Something's already brewing in my secret lab.
27
+ * New contributors: @bitboxer and @thegcat
28
+ * Simplified management with `up`, `down` and `clean`
29
+
3
30
  ## 0.1
4
31
 
5
32
  * Original Extraction from [moonglum's dotfiles](https://github.com/moonglum/dotfiles)
data/README.md CHANGED
@@ -74,6 +74,8 @@ Not all package managers will need all of the methods. Just do not implement the
74
74
  * **Vundle:** Install/Uninstall/Update Vundle and its packages
75
75
  * **GitRepo:** Clone/Pull Git Repos to certain paths
76
76
  * **NPM**: Install/Uninstall NPM and its packages
77
+ * **Shell**: Executes commands on the shell
78
+ * **VimPlug**: Install/Update plugins with [vim-plug](https://github.com/junegunn/vim-plug)
77
79
 
78
80
  ## Contributing
79
81
 
@@ -83,3 +85,4 @@ So far, the following people have contributed to the project:
83
85
 
84
86
  * Bodo Tasche aka @bitboxer
85
87
  * Felix Schäfer aka @thegcat
88
+ * Gil Desmarais aka @gill0r
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
 
21
21
  spec.add_dependency 'megingiard', '~> 0.1.0'
22
- spec.add_development_dependency 'bundler', '~> 1.6.0'
22
+ spec.add_development_dependency 'bundler'
23
23
  spec.add_development_dependency 'rake', '~> 10.3.2'
24
24
  spec.add_development_dependency 'rspec', '~> 3.0.0'
25
25
  end
@@ -9,6 +9,8 @@ require 'exogenesis/passengers/fonts'
9
9
  require 'exogenesis/passengers/python'
10
10
  require 'exogenesis/passengers/git_repo'
11
11
  require 'exogenesis/passengers/npm'
12
+ require 'exogenesis/passengers/shell'
13
+ require 'exogenesis/passengers/vim_plug'
12
14
  require 'exogenesis/support/output'
13
15
  require 'exogenesis/support/executor'
14
16
  require 'exogenesis/support/ship'
@@ -34,7 +34,7 @@ class Fonts < Passenger
34
34
  if File.exist? target_font_path(file)
35
35
  skip_task "Copying #{File.basename file}", 'Already copied'
36
36
  else
37
- execute "Copying #{File.basename file}", "cp #{file} #{target_font_path(file)}"
37
+ execute "Copying #{File.basename file}", "cp '#{file}' '#{target_font_path(file)}'"
38
38
  end
39
39
  end
40
40
 
@@ -0,0 +1,20 @@
1
+ require 'exogenesis/support/passenger'
2
+
3
+ # Executes shell commands
4
+ class Shell < Passenger
5
+ register_as :shell
6
+ needs :commands
7
+ with_emoji :shell
8
+
9
+ def up
10
+ commands.each do |command|
11
+ execute_command(command)
12
+ end
13
+ end
14
+
15
+ private
16
+
17
+ def execute_command(command)
18
+ execute "Executing command `#{command}`", "#{command}"
19
+ end
20
+ end
@@ -0,0 +1,17 @@
1
+ require 'exogenesis/support/passenger'
2
+
3
+ class VimPlug < Passenger
4
+ register_as :vim_plug
5
+ with_emoji :gift
6
+
7
+ def up
8
+ execute_interactive 'Installing and Updating Vim plugins', 'vim +PlugUpdate\! +qall'
9
+ end
10
+
11
+ def down
12
+ end
13
+
14
+ def clean
15
+ execute_interactive 'Cleaning', 'vim +PlugClean\! +qall'
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Exogenesis
2
- VERSION = '0.2.0'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -24,9 +24,9 @@ describe Fonts do
24
24
 
25
25
  it 'should copy fonts if they are not found' do
26
26
  expect(executor).to receive(:execute)
27
- .with('Copying roboto.ttf', "cp #{config.fonts_path}/roboto.ttf #{ENV['HOME']}/Library/Fonts/roboto.ttf")
27
+ .with('Copying roboto.ttf', "cp '#{config.fonts_path}/roboto.ttf' '#{ENV['HOME']}/Library/Fonts/roboto.ttf'")
28
28
  expect(executor).to receive(:execute)
29
- .with('Copying bignoodle.otf', "cp #{config.fonts_path}/bignoodle.otf #{ENV['HOME']}/Library/Fonts/bignoodle.otf")
29
+ .with('Copying bignoodle.otf', "cp '#{config.fonts_path}/bignoodle.otf' '#{ENV['HOME']}/Library/Fonts/bignoodle.otf'")
30
30
  subject.up
31
31
  end
32
32
 
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+ require 'exogenesis/passengers/shell'
3
+
4
+ describe Shell do
5
+ let(:config) { double }
6
+ let(:commands) { ['echo "hello world"'] }
7
+
8
+ before {
9
+ allow(config).to receive(:commands).and_return(commands)
10
+ }
11
+
12
+ let(:executor) { executor_double }
13
+
14
+ subject { Shell.new(config, executor) }
15
+
16
+ describe :up do
17
+ it 'should succeed if exit code is equal 0' do
18
+ expect(executor).to receive(:execute)
19
+ .with('Executing command `echo "hello world"`', 'echo "hello world"')
20
+ subject.up
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+ require 'exogenesis/passengers/vim_plug'
3
+
4
+ describe VimPlug do
5
+ let(:config) { double }
6
+ let(:executor) { executor_double }
7
+
8
+ subject { VimPlug.new(config, executor) }
9
+
10
+ describe :up do
11
+ it 'should install and update plugins' do
12
+ expect(executor).to receive(:execute_interactive).with('Installing and Updating Vim plugins', 'vim +PlugUpdate\! +qall')
13
+ subject.up
14
+ end
15
+ end
16
+
17
+ describe :clean do
18
+ it 'should interactively execute BundleClean' do
19
+ executor.should_receive(:execute_interactive).with('Cleaning', 'vim +PlugClean\! +qall')
20
+ subject.clean
21
+ end
22
+ end
23
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exogenesis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - moonglum
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-22 00:00:00.000000000 Z
11
+ date: 2015-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: megingiard
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 1.6.0
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 1.6.0
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -93,6 +93,8 @@ files:
93
93
  - lib/exogenesis/passengers/python.rb
94
94
  - lib/exogenesis/passengers/rbenv.rb
95
95
  - lib/exogenesis/passengers/rvm.rb
96
+ - lib/exogenesis/passengers/shell.rb
97
+ - lib/exogenesis/passengers/vim_plug.rb
96
98
  - lib/exogenesis/passengers/vundle.rb
97
99
  - lib/exogenesis/support/executor.rb
98
100
  - lib/exogenesis/support/output.rb
@@ -112,6 +114,8 @@ files:
112
114
  - spec/unit/python_spec.rb
113
115
  - spec/unit/rbenv_spec.rb
114
116
  - spec/unit/rvm_spec.rb
117
+ - spec/unit/shell_spec.rb
118
+ - spec/unit/vim_plug_spec.rb
115
119
  - spec/unit/vundle_spec.rb
116
120
  homepage: https://github.com/moonglum/exogenesis
117
121
  licenses:
@@ -133,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
137
  version: '0'
134
138
  requirements: []
135
139
  rubyforge_project:
136
- rubygems_version: 2.3.0
140
+ rubygems_version: 2.4.5
137
141
  signing_key:
138
142
  specification_version: 4
139
143
  summary: A collection of classes that help you install, update and teardown package
@@ -150,4 +154,6 @@ test_files:
150
154
  - spec/unit/python_spec.rb
151
155
  - spec/unit/rbenv_spec.rb
152
156
  - spec/unit/rvm_spec.rb
157
+ - spec/unit/shell_spec.rb
158
+ - spec/unit/vim_plug_spec.rb
153
159
  - spec/unit/vundle_spec.rb