gem-wizard 0.0.0 → 0.1.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.
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: