bard 1.5.2 → 1.5.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9076d89e08beaf2ad82288df2d011e7877fd428c3494017bdf8ab85f6930420a
4
- data.tar.gz: 6145accad41a735c5a4d15487ec060ff438eecdeadeaa33ba31f5b6c39e5b1fd
3
+ metadata.gz: d497e9324713c55e8c47e1be552c0e1ce7010b4d58d010536ee43cb0e2cbf488
4
+ data.tar.gz: 6cbb0c78c24547efc4aae354be71a8ce78b6f64a9546bdc38e7066d1a39245e4
5
5
  SHA512:
6
- metadata.gz: 836672f605166d44daf52dbc274c6fa30518605414cd743e7902119648cfc2ec2b5fee629d0d4f069e8830f867652ff3aca6585c5b481b7cd53f3c7a83d7da21
7
- data.tar.gz: 3c6b84ef4db712f94137b589fd3a45fd2063d50cee5872b64164648330929951197c25cb074d743698cbef20b7b7f0b37ea6f4388c9a4d8aa72ae3b821b69ac3
6
+ metadata.gz: 88af6fa57bc230ba0232e7a449a2197e3bb58f9115c976dedd1a19df8c7eda649a52c7475f05c3e650af720fb112b7a10c8f88921ab1bba3efa6056370e16d97
7
+ data.tar.gz: 1b10d2bc727f64bf119deddbb545b0e82944dadb8507757c5804c2c9ed07e23a8bbcfeb722be844ea2cf4dbbe1d21f8a9c1604f04515e687160460e21a6d98ca
data/lib/bard/cli/new.rb CHANGED
@@ -27,20 +27,47 @@ class Bard::CLI::New < Bard::CLI::Command
27
27
  end
28
28
 
29
29
  def create_project
30
- run! <<~SH
30
+ run! build_create_project_script
31
+ end
32
+
33
+ def build_create_project_script
34
+ build_bash_env do
35
+ build_rvm_setup +
36
+ build_gem_install("rails", RAILS_REQUIREMENT) +
37
+ build_rails_new
38
+ end
39
+ end
40
+
41
+ def build_bash_env
42
+ script = yield
43
+ <<~SH
31
44
  env -i bash -lc '
32
45
  export HOME=~
33
- cd ..
34
46
  source ~/.rvm/scripts/rvm
35
- rvm use --create #{ruby_version}@#{project_name}
36
-
37
- gem install rails -v "#{RAILS_REQUIREMENT}" --no-document
38
- RAILS_VERSION=$(ruby -e "spec = Gem::Specification.find_by_name 'rails', '#{RAILS_REQUIREMENT}'; puts spec.version")
39
- rails _${RAILS_VERSION}_ new #{project_name} --skip-git --skip-kamal --skip-test -m #{template_path}
47
+ #{script}
40
48
  '
41
49
  SH
42
50
  end
43
51
 
52
+ def build_rvm_setup
53
+ <<~SH
54
+ cd ..
55
+ rvm use --create #{ruby_version}@#{project_name}
56
+ SH
57
+ end
58
+
59
+ def build_gem_install(gem_name, version_requirement)
60
+ <<~SH
61
+ GEM_VERSION=$(gem install #{gem_name} -v \"#{version_requirement}\" --no-document 2>&1 | grep -oP \"Successfully installed #{gem_name}-\\K[0-9.]+\")
62
+ SH
63
+ end
64
+
65
+ def build_rails_new
66
+ <<~SH
67
+ rails _${GEM_VERSION}_ new #{project_name} --skip-git --skip-kamal --skip-test -m #{template_path}
68
+ SH
69
+ end
70
+
44
71
  def push_to_github
45
72
  api = Bard::Github.new(project_name)
46
73
  api.create_repo
data/lib/bard/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Bard
2
- VERSION = "1.5.2"
2
+ VERSION = "1.5.3"
3
3
  end
4
4
 
@@ -57,4 +57,17 @@ describe Bard::CLI::New do
57
57
  expect(new_cli.send(:template_path)).to match(/new_rails_template\.rb$/)
58
58
  end
59
59
  end
60
- end
60
+
61
+ describe "#install_and_extract_version" do
62
+ it "correctly installs a gem and extracts its version" do
63
+ cmd = new_cli.send :build_bash_env do
64
+ <<~SH
65
+ #{new_cli.send(:build_gem_install, "bundler", "~> 2.0")}
66
+ echo ${GEM_VERSION}
67
+ SH
68
+ end
69
+ result = `#{cmd}`.strip
70
+ expect(result).to match(/^2\.\d+\.\d+/)
71
+ end
72
+ end
73
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.2
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel