boxen-module-maker 0.1.3 → 0.2.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,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