pumog 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e403fd89f9353d923b24a2dcd619cb73c885ab08
4
+ data.tar.gz: 92e18de26e84073480603a7214d6aa13476b94f2
5
+ SHA512:
6
+ metadata.gz: 7436f8f8b07aa00a9dc9dea146879f87f6473004ca74380117d8378d7d35306a5e85d0725fb8382eac879b4cea47d8a013737bd3c1a24b94a343953d34be43f5
7
+ data.tar.gz: c799dd619937c4a01d7ef11033425387967440958ad2223d0fec2c5c36598bc770417760ace5f68c49e7e4204a12f7101679ef5f70343876b24e7147bc10ca91
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.1.0
5
+
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/README.md ADDED
@@ -0,0 +1 @@
1
+ [![Build Status](https://travis-ci.org/matthias-guenther/pumog.png?branch=master)](https://travis-ci.org/matthias-guenther/pumog)
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ $:.push(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'rake'
4
+ require 'rspec/core/rake_task'
5
+
6
+ desc "Run all tests"
7
+ RSpec::Core::RakeTask.new(:spec) do |t|
8
+ t.ruby_opts = %w[-w]
9
+ end
10
+
11
+ task :default => :spec
data/bin/pumog ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require "pumog/commandline"
3
+
4
+ Pumog::Commandline.start
@@ -0,0 +1,80 @@
1
+ require 'thor'
2
+ require 'pumog'
3
+
4
+ module Pumog
5
+ class Commandline < Thor
6
+ include Thor::Actions
7
+
8
+ def self.source_root
9
+ 'templates'
10
+ end
11
+
12
+ desc "start", "sear something in a pan"
13
+ method_option :nodoc, :type => :boolean, :desc => 'create new puppet module without documentation', :default => false
14
+ def start
15
+ @nodoc= options[:nodoc] ? false : true
16
+
17
+ module_name = ''
18
+ while module_name.empty?
19
+ say "What is the name of the module?", :green
20
+ module_name = STDIN.gets.chop
21
+ say Pumog::Messages.module_name_error(module_name), :red
22
+ end
23
+
24
+ author = ''
25
+ while author.empty?
26
+ say "What is the name of the author?", :green
27
+ author = STDIN.gets.chop
28
+ say Pumog::Messages.author_name_error(author), :red
29
+ end unless !@nodoc
30
+
31
+ email = ''
32
+ while email.empty?
33
+ say "What is the email adress of the author?", :green
34
+ email = STDIN.gets.chop
35
+ say Pumog::Messages.email_adress_error(email), :red
36
+ end unless !@nodoc
37
+
38
+ module_information = Pumog::ModuleInformation.new(module_name, author, email)
39
+ confirm(module_information)
40
+ end
41
+
42
+ private
43
+ def confirm(data)
44
+ say Pumog::Messages.confirm_module_name(data.module_name.downcase), :blue
45
+ say Pumog::Messages.confirm_creator(data), :yellow
46
+ say Pumog::Messages.confirm, :yellow
47
+
48
+ confirm = STDIN.gets.chop
49
+
50
+ while confirm.empty? | confirm.include?('n')
51
+ start
52
+ end
53
+
54
+ create_files(data)
55
+ end
56
+
57
+ def create_files(data)
58
+ manifests_directory_name = "manifests_tmp"
59
+
60
+ empty_directory "files_tmp"
61
+ empty_directory "templates_tmp"
62
+ empty_directory manifests_directory_name
63
+
64
+ @module_name = data.module_name.downcase
65
+ @author = data.author
66
+ @email = data.email
67
+ template(
68
+ "init.txt.tt",
69
+ "#{manifests_directory_name}/init.pp"
70
+ )
71
+
72
+ template(
73
+ "package.txt.tt",
74
+ "#{manifests_directory_name}/package.pp"
75
+ )
76
+
77
+ exit
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,31 @@
1
+ module Pumog
2
+ class Messages
3
+ def self.message
4
+ "aa"
5
+ end
6
+
7
+ def self.module_name_error(name)
8
+ "Module name can't be blank!" unless !name.empty?
9
+ end
10
+
11
+ def self.author_name_error(author)
12
+ "Author name can't be blank!" unless !author.empty?
13
+ end
14
+
15
+ def self.email_adress_error(email)
16
+ "Email adress can't be blank!" unless !email.empty?
17
+ end
18
+
19
+ def self.confirm_module_name(name)
20
+ "New module will be created in:\n#{Dir.home}/#{name}"
21
+ end
22
+
23
+ def self.confirm_creator(module_information)
24
+ "Author/creator of the new module:\n#{module_information.author} <#{module_information.email}>"
25
+ end
26
+
27
+ def self.confirm
28
+ "Is this correct? [y|n]:"
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,11 @@
1
+ module Pumog
2
+ class ModuleInformation
3
+ attr_accessor :module_name, :author, :email
4
+
5
+ def initialize(module_name= '', author = '', email= '')
6
+ @module_name = module_name
7
+ @author = author
8
+ @email = email
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module Pumog
2
+ VERSION = '1.0.0'
3
+ end
data/lib/pumog.rb ADDED
@@ -0,0 +1,8 @@
1
+ require 'pumog/commandline'
2
+ require 'pumog/messages'
3
+ require 'pumog/module_information'
4
+
5
+ module Pumog
6
+
7
+ end
8
+
data/pumog.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "pumog/version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "pumog"
6
+ s.version = Pumog::VERSION
7
+ s.authors = ["Matthias Guenther"]
8
+ s.email = ["matthias@wikimatze.de"]
9
+ s.license = 'MIT'
10
+ s.homepage = "https://github.com/matthias-guenther/pumog"
11
+ s.summary = %q{Create new puppet modules with this templates}
12
+ s.description = %q{Generate a basic structure for new puppet modules with or without documentation.}
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ s.extra_rdoc_files = ['README.md']
20
+
21
+ # specify any dependencies here; for example:
22
+ s.add_development_dependency "minitest"
23
+ s.add_development_dependency "rspec"
24
+ s.add_development_dependency "rake"
25
+ s.add_runtime_dependency "thor"
26
+ end
@@ -0,0 +1,4 @@
1
+ require 'spec_helper'
2
+
3
+ describe Pumog::Commandline do
4
+ end
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ describe Pumog::Messages do
4
+ context "basic information" do
5
+ let(:module_information) {Pumog::ModuleInformation.new("Ruby", "Matze", "matthias@wikimatze.de")}
6
+
7
+ context "#module_name" do
8
+ it "print error message if module_name is blank" do
9
+ module_information.module_name= ''
10
+
11
+ message = Pumog::Messages.module_name_error(module_information.module_name)
12
+ expect(message).to match(/Module name can't be blank!/)
13
+ end
14
+
15
+ it "print nothing" do
16
+ message = Pumog::Messages.module_name_error(module_information.module_name)
17
+ expect(message).to be_nil
18
+ end
19
+ end
20
+
21
+ context "#author" do
22
+ it "print error message if author is blank" do
23
+ module_information.author = ''
24
+
25
+ message = Pumog::Messages.author_name_error(module_information.author)
26
+ expect(message).to match(/Author name can't be blank!/)
27
+ end
28
+
29
+ it "print nothing" do
30
+ message = Pumog::Messages.author_name_error(module_information.author)
31
+ expect(message).to be_nil
32
+ end
33
+ end
34
+
35
+ context "#email_adress_error" do
36
+ it "print error message if email adress is blank" do
37
+ module_information.email= ''
38
+
39
+ message = Pumog::Messages.email_adress_error(module_information.email)
40
+ expect(message).to match (/Email adress can't be blank!/)
41
+ end
42
+
43
+ it "print nothing" do
44
+ message = Pumog::Messages.email_adress_error(module_information.email)
45
+ expect(message).to be_nil
46
+ end
47
+ end
48
+ end
49
+
50
+ context "#confirmation" do
51
+ let(:module_information) {Pumog::ModuleInformation.new("Ruby", "M", "m@test.de")}
52
+ it "print the path of the generated module" do
53
+ message = Pumog::Messages.confirm_module_name(module_information.module_name)
54
+ expect(message).to eql("New module will be created in:\n#{Dir.home}/#{module_information.module_name}")
55
+ end
56
+
57
+ it "print the creator information" do
58
+ message = Pumog::Messages.confirm_creator(module_information)
59
+ expect(message).to eql("Author/creator of the new module:\n#{module_information.author} <#{module_information.email}>")
60
+ end
61
+
62
+ it "print confirmation" do
63
+ message = Pumog::Messages.confirm
64
+ expect(message).to eql("Is this correct? [y|n]:")
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper.rb'
2
+
3
+ describe Pumog::ModuleInformation do
4
+ it "creates an object" do
5
+ module_information = Pumog::ModuleInformation.new("ruby", "Matthias", "matthias@wikimatze.de")
6
+
7
+ expect(module_information.module_name).to eql("ruby")
8
+ expect(module_information.author).to eql("Matthias")
9
+ expect(module_information.email).to eql("matthias@wikimatze.de")
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ $:.push(File.join(File.dirname(__FILE__), '..', 'lib/pumog'))
2
+
3
+ require 'minitest/unit'
4
+
5
+ require 'commandline'
6
+ require 'messages'
7
+ require 'module_information'
8
+
9
+ RSpec.configure do |conf|
10
+ conf.color_enabled = true
11
+ conf.include Minitest::Assertions
12
+ end
@@ -0,0 +1,8 @@
1
+ <% if @nodoc -%># === Author
2
+ #
3
+ # * <%= @author%> <<%= @email %>>
4
+ #
5
+ #
6
+ <% end %>class <%= @module_name %>::init {
7
+ include <%= @module_name %>::package
8
+ }
@@ -0,0 +1,10 @@
1
+ <% if @nodoc -%># === Author
2
+ #
3
+ # * <%= @author%> <<%= @email %>>
4
+ #
5
+ #
6
+ <% end %>class <%= @module_name %>::package {
7
+ package { '<package-name>':
8
+ ensure => latest,
9
+ }
10
+ }
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pumog
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Matthias Guenther
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: thor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Generate a basic structure for new puppet modules with or without documentation.
70
+ email:
71
+ - matthias@wikimatze.de
72
+ executables:
73
+ - pumog
74
+ extensions: []
75
+ extra_rdoc_files:
76
+ - README.md
77
+ files:
78
+ - .travis.yml
79
+ - Gemfile
80
+ - Rakefile
81
+ - bin/pumog
82
+ - lib/pumog.rb
83
+ - lib/pumog/commandline.rb
84
+ - lib/pumog/messages.rb
85
+ - lib/pumog/module_information.rb
86
+ - lib/pumog/version.rb
87
+ - pumog.gemspec
88
+ - spec/pumog/commandline_spec.rb
89
+ - spec/pumog/messages_spec.rb
90
+ - spec/pumog/module_information_spec.rb
91
+ - spec/spec_helper.rb
92
+ - templates/init.txt.tt
93
+ - templates/package.txt.tt
94
+ - README.md
95
+ homepage: https://github.com/matthias-guenther/pumog
96
+ licenses:
97
+ - MIT
98
+ metadata: {}
99
+ post_install_message:
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubyforge_project:
115
+ rubygems_version: 2.0.3
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Create new puppet modules with this templates
119
+ test_files: []
120
+ has_rdoc: