createproj 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 945ead0d57ea958c1bf510d11ebe76ac277b4a4d
4
- data.tar.gz: c51491e2687ce04a00183466822c4cfc49a494d9
3
+ metadata.gz: f02e3b4cad72ddf32641b0b2d2b44489a4094d25
4
+ data.tar.gz: 002a9b696fde325b4b8effa3ad1b5d184e3f93f3
5
5
  SHA512:
6
- metadata.gz: 1784da067adbd2c9b48aa601d7cae5d5a7d6b267d6328126a4bc5064e2000008cf71b222daf653a985b167b9a0435cc4007f84750ef6c5ceb0f0c3cf735b9959
7
- data.tar.gz: ef94d407e6900715ee8ec636883292bc5156ffe4d7d19af8dfc3bb97ae63e3e5e454da3169e1f0d62ca453f8d7add44a9639b56746ae814c2489e84aa81690fa
6
+ metadata.gz: 88f59554b99aeb5314807e31c45db76741f122ec313e0716dabc17ac8775df3859a20cf303e39cbb5f6ebd76e7e04a4c18e60bf4972941e7858ad70d3d3b73f5
7
+ data.tar.gz: 4265e90d15ec1b8f9cd93fcbc648ac1a56c55bcb1a6c508b5b7de69094f324bbe4470467ae1d432ba745014853375a0450be43fa70808342fc23e87829fbd5f5
data/README.md CHANGED
@@ -22,14 +22,19 @@ Once run, createproj will:
22
22
  - Create the project directory
23
23
  - Initialize a git repository with a language specified .gitignore and language specified git pre-commit hook (right now both are linters)
24
24
  - Create a sandbox
25
- - Ruby: rvm gemset
25
+ - Ruby, Rails: rvm gemset
26
26
  - Haskell: cabal sandbox
27
27
  - Python: virtualenv environment
28
28
  - Install default dependencies in the sandbox
29
- - Ruby: rubocop, yard, rspec
29
+ - Ruby, Rails: rubocop, yard, rspec
30
30
  - Haskell: happy, hlint
31
31
  - Python: pylint,
32
32
 
33
+ ## Options
34
+ For a variety of projects options can be set through the command line.
35
+ - Rails
36
+ - `-d, --database, the desired rails database`
37
+
33
38
  ## Steps for building/publish gem
34
39
  - From `createproj` directory, run:
35
40
  - `rake gem:build` to build the gem
@@ -81,7 +81,10 @@ module CreateProj
81
81
  def gitignore(ignore_files)
82
82
  return if ignore_files.empty?
83
83
 
84
- File.open('.gitignore', 'w+') do |f|
84
+ file_mode = 'a'
85
+ file_mode = 'w+' unless File.exist?('.gitignore')
86
+
87
+ File.open('.gitignore', file_mode) do |f|
85
88
  ignore_files.each do |gf|
86
89
  f.write("#{gf}\n")
87
90
  end
@@ -2,15 +2,48 @@ module CreateProj
2
2
  module Creator
3
3
  # Class for creating Rails project
4
4
  class RailsCreator < RubyCreator
5
- def initialize
6
- super
5
+ def initialize(*args)
6
+ super(*args)
7
7
  @precommit_template = 'lint-pre-commit'
8
8
  @precommit_options = { linter: 'rubocop', file_ext: '.rb' }
9
9
  end
10
10
 
11
- # @todo - write for rails
12
- def run
13
- puts 'Coming soon!'
11
+ # Create a new directory using rails create
12
+ #
13
+ # @param [String] name the directory name
14
+ #
15
+ # @example Create a new directory
16
+ # create_directory("proj") #=> 'proj' (and rails new proj)
17
+ #
18
+ # @return name of directory just created
19
+ def create_directory(name)
20
+ options_db = options[:database]
21
+ database = "--database=#{options_db}" unless options_db.nil?
22
+
23
+ # -T skip test
24
+ # -B skip bundle install
25
+ rails_args = "-B -T #{database}"
26
+ system("rails new #{name} #{rails_args}")
27
+
28
+ name
29
+ end
30
+
31
+ # Installs dependencies in the new sandbox - appends to rails gemfile
32
+ #
33
+ # @example Write rubocop to a gemfile and prompt `bundle install`
34
+ # install_dependencies #=> rubocop written in Gemfile
35
+ #
36
+ # @return Nothing
37
+ def install_dependencies
38
+ # append to the gem file
39
+ File.open('Gemfile', 'a') do |f|
40
+ @gems_to_install.each do |k, v|
41
+ f.write("gem '#{k}', '~> #{v}'\n")
42
+ end
43
+ end
44
+
45
+ command = 'Enter the directory and run bundle install.'
46
+ puts command
14
47
  end
15
48
  end
16
49
  end
@@ -1,5 +1,5 @@
1
1
  # Namespace for CreateProj
2
2
  module CreateProj
3
3
  # Version number for the gem - make it only load once
4
- VERSION ||= '0.1.1'
4
+ VERSION ||= '0.1.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: createproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt McNaughton
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ~>
151
151
  - !ruby/object:Gem::Version
152
152
  version: 0.18.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: 4.2.0
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: 4.2.0
153
167
  description: Simple project creation gem.
154
168
  email:
155
169
  - mattjmcnaughton@gmail.com