engage 0.1.0 → 0.1.1

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
@@ -1,4 +1,5 @@
1
1
  pkg/*
2
2
  *.gem
3
3
  .bundle
4
- Gemfile.lock
4
+ Gemfile.lock
5
+ coverage
data/README.markdown CHANGED
@@ -30,6 +30,6 @@ Behind the curtains, engage will:
30
30
 
31
31
  ### Available Commands
32
32
 
33
- engage init [PROJECT] # init a new project from one of the registered sources
34
- engage add [SOURCE] # register the given source to `~/.engage.sources`
35
- engage list # list all the registered sources
33
+ engage init [PROJECT] [DIRECTORY] # init a new project from one of the registered sources
34
+ engage add [SOURCE] # register the given source to `~/.engage.sources`
35
+ engage list # list all the registered sources
data/engage.gemspec CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.add_development_dependency "bundler", "~> 1.0"
18
18
  s.add_development_dependency "rspec", "~> 2.3"
19
19
  s.add_development_dependency "fakefs"
20
+ s.add_development_dependency "simplecov"
20
21
  s.add_runtime_dependency "thor", "~> 0.14"
21
22
 
22
23
  s.files = `git ls-files`.split("\n")
@@ -4,7 +4,7 @@ module Engage
4
4
 
5
5
  def clone_repo
6
6
  source = ask_for_source
7
- run "git clone #{source}:#{project}.git"
7
+ run "git clone #{source}:#{project}.git #{target_folder}"
8
8
  end
9
9
 
10
10
  def setup_rvm
@@ -14,19 +14,19 @@ module Engage
14
14
  end
15
15
 
16
16
  def create_gemset
17
- run "rvm gemset create #{folder_name}"
17
+ run "rvm gemset create #{target_folder}"
18
18
  end
19
19
 
20
20
  def create_rvmrc
21
- create_file "#{folder_name}/.rvmrc", rvm_env
21
+ create_file "#{target_folder}/.rvmrc", rvm_env
22
22
  end
23
23
 
24
24
  def trust_rvmrc
25
- run "rvm rvmrc trust #{folder_name}"
25
+ run "rvm rvmrc trust #{target_folder}"
26
26
  end
27
27
 
28
28
  def run_bundler
29
- run "cd #{folder_name} && #{rvm_env} exec bundle"
29
+ run "cd #{target_folder} && #{rvm_env} exec bundle"
30
30
  end
31
31
 
32
32
  protected
@@ -34,19 +34,15 @@ module Engage
34
34
  def ask_for_source
35
35
  return sources.first if sources.size == 1
36
36
  list
37
- sources[ask("Select the git source of '#{folder_name}':").to_i]
37
+ sources[ask("Select the git source of '#{target_folder}':").to_i]
38
38
  end
39
39
 
40
40
  def rvm_env
41
- "rvm #{current_ruby}@#{folder_name}"
42
- end
43
-
44
- def current_ruby
45
- `rvm-prompt v`.strip
41
+ "rvm #{RUBY_VERSION}@#{target_folder}"
46
42
  end
47
43
 
48
44
  def using_bundler?
49
- File.exists?(File.join(folder_name, "Gemfile"))
45
+ File.exists?(File.join(target_folder, "Gemfile"))
50
46
  end
51
47
  end
52
48
  end
@@ -1,10 +1,6 @@
1
1
  module Engage
2
2
  module Helpers
3
3
 
4
- def folder_name
5
- project.split("/").last
6
- end
7
-
8
4
  def file_path
9
5
  File.join(ENV["HOME"], ".engage.sources")
10
6
  end
@@ -14,7 +10,7 @@ module Engage
14
10
  end
15
11
 
16
12
  def sources_table
17
- sources.each_with_index.map { |line| line.reverse }
13
+ sources.each_with_index.to_a.map { |line| line.reverse }
18
14
  end
19
15
 
20
16
  def default_sources
data/lib/engage/runner.rb CHANGED
@@ -6,11 +6,12 @@ module Engage
6
6
  include Engage::Actions
7
7
  include Engage::Helpers
8
8
 
9
- attr_accessor :project
9
+ attr_accessor :project, :target_folder
10
10
 
11
- desc "init [PROJECT]", "init a new project from one of the registered sources"
12
- def init(project)
11
+ desc "init [PROJECT] [DIRECTORY]", "init a new project from one of the registered sources"
12
+ def init(project, dir = nil)
13
13
  self.project = project
14
+ self.target_folder = dir || project.split("/").last
14
15
  clone_repo
15
16
  setup_rvm
16
17
  run_bundler if using_bundler?
@@ -1,3 +1,3 @@
1
1
  module Engage
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/spec/runner_spec.rb CHANGED
@@ -10,7 +10,7 @@ describe Engage::Runner do
10
10
  end
11
11
 
12
12
  it "clones the git repository" do
13
- expect_command "git clone git@github.com:lucasmazza/engage.git"
13
+ expect_command "git clone git@github.com:lucasmazza/engage.git engage"
14
14
  subject.init('lucasmazza/engage')
15
15
  end
16
16
 
@@ -30,7 +30,7 @@ describe Engage::Runner do
30
30
  end
31
31
 
32
32
  it "runs the `bundle` command" do
33
- expect_command "cd skynet && rvm 1.8.7@skynet exec bundle"
33
+ expect_command "cd skynet && rvm #{RUBY_VERSION}@skynet exec bundle"
34
34
  subject.init("cyberdyne/skynet")
35
35
  end
36
36
  end
@@ -70,10 +70,33 @@ describe Engage::Runner do
70
70
  end
71
71
 
72
72
  it "clones from the selected source" do
73
- expect_command "git clone git@omgwtfbbq.com:rails/rails.git"
73
+ expect_command "git clone git@omgwtfbbq.com:rails/rails.git rails"
74
74
  subject.init('rails/rails')
75
75
  end
76
76
  end
77
+
78
+ context "when we're pointing to another directory to use" do
79
+ before do
80
+ subject.stub(:using_bundler?) { true }
81
+ end
82
+
83
+ it "clones to the given directory" do
84
+ expect_command "git clone git@github.com:rails/rails.git zomg_rails"
85
+ subject.init('rails/rails', 'zomg_rails')
86
+ end
87
+ it "creates a `.rvmrc` file inside the given directory" do
88
+ expect_command "rvm gemset create zomg_rails"
89
+ subject.init('rails/rails', 'zomg_rails')
90
+ end
91
+ it "trusts the created `.rvmrc` inside the given directory" do
92
+ expect_command "rvm rvmrc trust zomg_rails"
93
+ subject.init('rails/rails', 'zomg_rails')
94
+ end
95
+ it "runs the `bundle` command on the given directory" do
96
+ expect_command "cd zomg_rails && rvm #{RUBY_VERSION}@zomg_rails exec bundle"
97
+ subject.init('rails/rails', 'zomg_rails')
98
+ end
99
+ end
77
100
  end
78
101
 
79
102
  describe "#list" do
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,6 @@
1
- require 'rubygems'
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
2
4
  require 'fakefs/spec_helpers'
3
5
  $:.push File.expand_path("../lib", __FILE__)
4
6
  require 'engage'
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engage
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lucas Mazza
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-16 00:00:00 -02:00
18
+ date: 2011-01-26 00:00:00 -02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -63,9 +63,23 @@ dependencies:
63
63
  type: :development
64
64
  version_requirements: *id003
65
65
  - !ruby/object:Gem::Dependency
66
- name: thor
66
+ name: simplecov
67
67
  prerelease: false
68
68
  requirement: &id004 !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ type: :development
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: thor
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
69
83
  none: false
70
84
  requirements:
71
85
  - - ~>
@@ -76,7 +90,7 @@ dependencies:
76
90
  - 14
77
91
  version: "0.14"
78
92
  type: :runtime
79
- version_requirements: *id004
93
+ version_requirements: *id005
80
94
  description: Engage is a CLI for rapid bootstrap for your ruby apps using Git, RVM and Bundler.
81
95
  email:
82
96
  - luc4smazza@gmail.com
@@ -133,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
147
  requirements: []
134
148
 
135
149
  rubyforge_project: engage
136
- rubygems_version: 1.4.1
150
+ rubygems_version: 1.4.2
137
151
  signing_key:
138
152
  specification_version: 3
139
153
  summary: Quick setup for your ruby apps