gem-wizard 0.0.0 → 0.1.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
  SHA256:
3
- metadata.gz: e5b0aa2d3be9abbcd39c97a9da06c471031d63cfb3272aa9a28b3efd35a2ed32
4
- data.tar.gz: 0f5c12d28e82cb29741983d2a0b358d5e88ff4d72401ef80a4688c3c7afc4fc5
3
+ metadata.gz: c9f1aa5185cb36ab4192c009056224ff587a103610f02618d1737dfc6144560b
4
+ data.tar.gz: 8ebd83ba2902d3eda43e90860659c04f22ce0aa974c405eb6a72bfc2b790cfa4
5
5
  SHA512:
6
- metadata.gz: d3774d9cd9283be7aee1836427ffc239d33f2c0d1d4accf3702d4d9f32a6ccf40a1cec68427d0a0be49bd0da33b597c3c0793d6a465b46e5b61ff2a98f006d94
7
- data.tar.gz: f658b7cec478c6839e43b2d3ef55137957d9406e4c4eef636a5956f50892f2ba25399bb51458585f3bfe30687e1c49a39ee32dc512ce28747e3e43b63990c69c
6
+ metadata.gz: b7ee4da89959f7b5a417cc95d248103926886dfd15bb338d69c48981ae267552719debd05fbf3e5bef75775b41b6d56167a29c6ad987d8e745d7e87cc3f1eb65
7
+ data.tar.gz: 86957fc2f526a5994b4ec91d73c61d12dfcb3767230dd5d17eefbedcd4415433421128469639a381eac6a09c4a4d893f7e369333ccec357182b07e3a53baa0e5
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gem_wizard'
4
+
5
+ GemWizard::start
data/gems.json ADDED
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "name": "haml-rails",
4
+ "prompt": "Do you want to use haml views instead of erb? [Y/N]",
5
+ "sub_prompts": [
6
+ {
7
+ "message": "Convert all existing view files to haml? [Y/N]",
8
+ "commands_if_accepted:": [
9
+ "HAML_RAILS_DELETE_ERB=true rails haml:erb2haml"
10
+ ]
11
+ }
12
+ ]
13
+ }
14
+ ]
data/lib/gem_wizard.rb CHANGED
@@ -1,27 +1,43 @@
1
+ require 'json'
2
+
1
3
  class GemWizard
2
4
 
5
+ #----- asking the right questions -----#
3
6
  def self.start
4
- @use_haml = false
5
- @convert_to_haml = false
7
+ file = File.read('./gems.json')
8
+ gems = JSON.parse(file)
9
+
10
+ @post_install_commands = []
11
+
12
+ gems.each do |gem|
13
+ puts gem['prompt']
6
14
 
7
- puts "Hello! Let's gemify your rails application install some essential gems."
15
+ system("bundle add #{gem['name']}") if boolean(gets.chomp)
8
16
 
9
- setup_haml
17
+ ask_sub_prompts(gem['sub_prompts'])
18
+ end
10
19
 
11
20
  gemify!
12
21
  end
13
22
 
14
- def self.setup_haml
15
- puts "Do you want to use haml views instead of erb? [Y/N]"
16
- @use_haml = true if gets.chomp == 'Y' || 'y'
23
+ def self.ask_sub_prompts(sub_prompts)
24
+ sub_prompts.each do |prompt|
25
+ puts prompt['message']
17
26
 
18
- puts "Convert all existing view files to haml? [Y/N]"
19
- @convert_to_haml = true if gets.chomp == 'Y' || 'y'
27
+ @post_install_commands << prompt['commands_if_accepted'] if boolean(gets.chomp)
28
+ end
20
29
  end
21
30
 
31
+ #----- where the magic happens -----#
22
32
  def self.gemify!
23
- system('bundle add haml-rails') if @use_haml == true
24
33
  system('bundle install')
25
- system('HAML_RAILS_DELETE_ERB=true rails haml:erb2haml')
34
+ system(@post_install_commands.flatten.join(' '))
35
+ end
36
+
37
+ #----- helper methods -----#
38
+ def self.boolean(string)
39
+ return true if 'y'.casecmp(string).zero? || 'yes'.casecmp(string).zero? || 'true'.casecmp(string).zero?
40
+
41
+ false
26
42
  end
27
- end
43
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem-wizard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Paul
@@ -9,13 +9,30 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2022-07-28 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: pry
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.13.1
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.13.1
13
27
  description: Install and setup essential gems for a rails application.
14
28
  email: john@rockfort.city
15
- executables: []
29
+ executables:
30
+ - gem-wizard-start
16
31
  extensions: []
17
32
  extra_rdoc_files: []
18
33
  files:
34
+ - bin/gem-wizard-start
35
+ - gems.json
19
36
  - lib/gem_wizard.rb
20
37
  homepage:
21
38
  licenses: