boxen-module-maker 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NjJmOGMzMWViZTRjMTlhYTkyNTk5ZTM4ZjdiZjRmY2EzNTMzOTgxOQ==
4
+ ZmZkYjk5MGZkMTU5OWQyMzhiMDdkNTAyYzg4MWUzN2ZmNjI3NmNjOQ==
5
5
  data.tar.gz: !binary |-
6
- Mzg4MjExZmQ2NDI3MzhiMDI3YmNkNTY2ZWM0NDkyNGZiMjJmZThhNQ==
6
+ YjRlOTExYjVjZmI0YzNhZWRlNWJkNjY5N2U1YjM1NjNmOWQ1M2MwOA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NWVkZDc4YzFiMzdkOThlOGIyY2Q0MGMyYTExOGQ1ZDNjZmEyN2RhODI3ODE5
10
- ZDg5YTM1ODljZjMzZmJiZjMxN2JlYzdhZmRmMDRlMmRkMmZjOThlZTU4YzY3
11
- MzM0N2E1MTA1OTYyYTRmNWNjNDMwOWI0MTMwZmU3YTc2NDZmZjQ=
9
+ ZDVmNzBkY2IxMjljMDMwMzFkZWRlMzNiOTliNWQzZGRhMDUyODNhNDJkMjg3
10
+ MDk3Y2M3MDk1Nzc0ZWU3YWM2YTdjYTM5YjMxZjA4Njg2MDRlOGM0NDY0ZTE3
11
+ M2Y1YTRiOWVlNzVlODdlYzNhYTlkYzI0YmZlOThhNTY5YjJjMTY=
12
12
  data.tar.gz: !binary |-
13
- MjJkZjdiNzAwNzhiYjM3NzQ0YzY4ZTE2ODkwMjRiY2VjNDA0Y2RkODE3MWI1
14
- YjA4MzhhNTExMWQyYmJiMTM5ODJhNzQ4NjVjZjBkNjVkNWU4MDRhYzVhZWIz
15
- ZDI4MDBkY2RlYzJiNjI4Y2ZmNzY1NTBiNTVmMmMyMzczNGM1NzI=
13
+ NWY3OWM1NGYyMDNmMWY4YTZhYjUwZDkzMzhkYmIxM2NmNDA3ZjUyNjhmOGIy
14
+ N2JmNzA5MDc1NzNhMjljMzU2NDljNjkxNmYwYjdmODA5OTBlMTA2ODRhOGM0
15
+ MGUwYmU4NzQ3MDlmMGI0YzUwNjJmNzM5MjJiMjhjYzAwZWFmNWI=
@@ -1,7 +1,21 @@
1
- = boxen-module-maker
1
+ # boxen-module-maker
2
2
 
3
3
  A gem for creating boxen modules easier! :)
4
4
 
5
+ ## Basic Use
6
+ ```
7
+ $ gem install boxen-module-maker
8
+ $ boxen-module-maker new_app
9
+ boxen-module-maker: [CREATE FOLDER] Making 'puppet-new_app'
10
+ create puppet-new_app
11
+ $ cd puppet-new_app
12
+ $ ls
13
+ ls
14
+ CONTRIBUTING.md Gemfile Gemfile.lock LICENSE README.md manifests script spec
15
+ ```
16
+
17
+ So at the moment, all it does is make a folder and clone the [puppet-template](https://github.com/boxen/puppet-template) folder. Future features will be to customise the specs and such.
18
+
5
19
  == Contributing to boxen-module-maker
6
20
 
7
21
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.license = 'MIT'
15
15
 
16
16
  spec.add_development_dependency 'rspec'
17
+ spec.add_runtime_dependency 'git'
17
18
 
18
19
  spec.default_executable = %q{boxen-module-maker}
19
20
  spec.files = `git ls-files`.split("\n")
@@ -27,12 +27,24 @@ class BoxenModuleMaker
27
27
  return 1
28
28
  else
29
29
  puts "boxen-module-maker: [CREATE FOLDER] Making '#{module_name}'"
30
- create_folder_loud(module_name)
30
+ FileUtils.mkdir_p(module_name)
31
31
  get_boxen_template(module_name)
32
+ rename_template_files(module_name)
33
+ commit_working_version(module_name)
32
34
  return 0
33
35
  end
34
36
  end
35
37
 
38
+ def rename_template_files(module_name)
39
+ Dir.chdir(module_name) do
40
+ FileUtils.mv "spec/fixtures/modules/template/", "spec/fixtures/modules/#{@application_name}/"
41
+ FileUtils.rm "spec/classes/template_spec.rb"
42
+ end
43
+ output_template_in_target 'manifests/init.pp', File.join('manifests', 'init.pp')
44
+ output_template_in_target 'module_spec.rb', File.join('spec/classes/', "#{@application_name}_spec.rb")
45
+
46
+ end
47
+
36
48
  def get_boxen_template(target_dir)
37
49
  Dir.chdir(target_dir) do
38
50
  begin
@@ -44,7 +56,6 @@ class BoxenModuleMaker
44
56
  @repo.add_remote('template', 'https://github.com/boxen/puppet-template.git')
45
57
  @repo.remote('template').fetch
46
58
  @repo.checkout('master')
47
- @repo.remote('template').remove
48
59
 
49
60
  # Remote remove is broken on ruby-git right now...
50
61
  # https://github.com/schacon/ruby-git/pull/42
@@ -61,9 +72,40 @@ class BoxenModuleMaker
61
72
  end
62
73
  end
63
74
 
64
- def create_folder_loud(folder_name)
65
- FileUtils.mkdir_p(folder_name)
66
- $stdout.puts "\tcreate\t#{folder_name}"
75
+ def commit_working_version(target_dir)
76
+ Dir.chdir(target_dir) do
77
+ @repo = Git.init()
78
+
79
+ begin
80
+ @repo.add('.')
81
+ rescue Git::GitExecuteError => e
82
+ #raise GitAddFailed, "There was some problem adding this directory to the git changeset"
83
+ raise
84
+ end
85
+
86
+ begin
87
+ @repo.commit "#{@target_dir} generated by boxen-module-maker"
88
+ rescue Git::GitExecuteError => e
89
+ raise
90
+ end
91
+
92
+ end
93
+ end
94
+
95
+ def render_template(source)
96
+ template_contents = File.read(File.join(template_dir, source))
97
+ template = ERB.new(template_contents, nil, '<>')
98
+ template.result(binding).gsub(/\n\n\n+/, "\n\n")
99
+ end
100
+
101
+ def output_template_in_target(source, destination = source)
102
+ final_destination = File.join(@target_dir, destination)
103
+ template_result = render_template(source)
104
+ File.open(final_destination, 'w') {|file| file.write(template_result)}
105
+ end
106
+
107
+ def template_dir
108
+ File.join(File.dirname(__FILE__), 'templates')
67
109
  end
68
110
 
69
111
  end
@@ -0,0 +1,4 @@
1
+ # This is a placeholder class.
2
+ class <%= @application_name %> {
3
+ anchor { 'Hello_World': }
4
+ }
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+ # Rename this file to classname_spec.rb
3
+ # Check other boxen modules for examples
4
+ # or read http://rspec-puppet.com/tutorial/
5
+ describe '<%= @application_name %>' do
6
+ it do
7
+ should contain_anchor('Hello_World')
8
+ end
9
+ end
@@ -1,8 +1,8 @@
1
1
  module BoxenModuleMaker
2
2
  module Version
3
3
  MAJOR = 0
4
- MINOR = 1
5
- TINY = 3
4
+ MINOR = 2
5
+ TINY = 0
6
6
  STRING= [MAJOR, MINOR, TINY].join('.')
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxen-module-maker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter M Souter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-16 00:00:00.000000000 Z
11
+ date: 2013-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ! '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: git
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: Get your boxen modules up and running easily
28
42
  email:
29
43
  - p.morsou@gmail.com
@@ -37,12 +51,14 @@ files:
37
51
  - Gemfile
38
52
  - Gemfile.lock
39
53
  - LICENSE.txt
40
- - README.rdoc
54
+ - README.md
41
55
  - Rakefile
42
56
  - bin/boxen-module-maker
43
57
  - boxen-module-maker.gemspec
44
58
  - lib/boxen-module-maker.rb
45
59
  - lib/boxen-module-maker/bin.rb
60
+ - lib/boxen-module-maker/templates/manifests/init.pp
61
+ - lib/boxen-module-maker/templates/module_spec.rb
46
62
  - lib/boxen-module-maker/version.rb
47
63
  - spec/boxen-module-maker_spec.rb
48
64
  - spec/spec_helper.rb