gbud 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd69d3ab55c882ba9f43ab7f7621cfb2e7af9fc3
4
- data.tar.gz: c3184519fe8ddddd934d0574e47593a1219b6929
3
+ metadata.gz: e175e224bba7fbd99773788d3d92488600c7291f
4
+ data.tar.gz: 5271c490f76ee9f8d487ba13208cd63122177c07
5
5
  SHA512:
6
- metadata.gz: 5520486bbd37c99e7ef7dfa59a2e33c862f3b9c9285d107d20b8218bdd140d7fdd5f4d442fc3c6e480f5330fd20d4b21dd4ed1135bb0e7893efea18d58fbb0ce
7
- data.tar.gz: 192e4daad8b7f0453e667e81b2254abc26e2f489c00357d1f685b9fb2fe4737595762fc4e2b93397a1777ec0c02700f9cd2847b766b0d4d51a26a8ab6e863695
6
+ metadata.gz: 3581b02760b91904e9d8515871fabd288f106512828a620eb8a10967d555123582fd87e12d0c911131936d192452078f3bda8f59a5185a3f7b608f121bc85e11
7
+ data.tar.gz: 6fb3d65f1c076fa1b29b9b2f563ddabd6dc4f712af35b04c6289bb7e6b67acf175951d3d984ee8f9c376d61d81fafce7de62dd0b8c13ac4acd734f511f7ba577
@@ -1,3 +1,3 @@
1
1
  # gbud
2
2
  # Copyright 2015 Richard Davis GPL v3
3
- require 'lib/base.rb'
3
+ require 'gbud/base'
@@ -0,0 +1,91 @@
1
+ # gbud base script
2
+ # Copyright 2015 Richard Davis GPL v3
3
+ require 'fileutils'
4
+ require 'gbud/getinfo'
5
+
6
+ p_name = GetInfo.new('Project name => ').user_prompt
7
+ version = GetInfo.new('Version number => ').user_prompt
8
+ authors = GetInfo.new('Project authors => ').user_prompt.delete(' ').split(',')
9
+ email = GetInfo.new('Project email => ').user_prompt
10
+ site = GetInfo.new('Project website => ').user_prompt
11
+ summary = GetInfo.new('Enter a short summary of the project => ').user_prompt
12
+ description = GetInfo.new('Enter a description of the project => ').user_prompt
13
+ license = GetInfo.new('Project\'s license => ').user_prompt
14
+
15
+ # sets up directory structure
16
+ FileUtils.mkdir_p([
17
+ "#{p_name}/bin/",
18
+ "#{p_name}/lib/#{p_name}",
19
+ "#{p_name}/test"
20
+ ])
21
+
22
+ # creates lib/base script
23
+ FileUtils.touch("#{p_name}/lib/#{p_name}/base.rb")
24
+
25
+ # creates main script
26
+ m = File.new("#{p_name}/lib/#{p_name}.rb", 'w+')
27
+ m.puts "require '#{p_name}/base'"
28
+ m.puts 'class HelloWorld'
29
+ m.puts "\tdef self.hello"
30
+ m.puts "\t\treturn 'Hello world!'"
31
+ m.puts "\tend"
32
+ m.puts 'end'
33
+ m.close
34
+
35
+ # creates executable
36
+ e = File.new("#{p_name}/bin/#{p_name}", 'w+')
37
+ e.puts '#!/usr/bin/env ruby'
38
+ e.puts 'begin'
39
+ e.puts "\trequire '#{p_name}'"
40
+ e.puts 'rescue LoadError'
41
+ e.puts "\trequire 'rubygems'"
42
+ e.puts "\trequire '#{p_name}'"
43
+ e.puts 'end'
44
+ e.close
45
+ File.chmod(0755, "#{p_name}/bin/#{p_name}")
46
+
47
+ # TODO: WRITE AUTOMATED TESTS
48
+ t = File.new("#{p_name}/test/test_#{p_name}.rb", 'w+')
49
+ t.puts "require 'test/unit'"
50
+ t.puts "require '#{p_name}'"
51
+ t.puts 'class HelloWorldTest < Test::Unit::TestCase'
52
+ t.puts "\tdef test_hello_world"
53
+ t.puts "\t\t\tassert_equal(HelloWorld.hello, 'Hello world!')"
54
+ t.puts "\tend"
55
+ t.puts 'end'
56
+ t.close
57
+
58
+ # writes Rakefile
59
+ r = File.new("#{p_name}/Rakefile", 'w+')
60
+ r.puts 'require \'rake/testtask\''
61
+ r.puts 'Rake::TestTask.new do |t|'
62
+ r.puts "\tt.libs << 'test'"
63
+ r.puts 'end'
64
+ r.puts 'desc \'Run tests\''
65
+ r.puts 'task :default => :test'
66
+ r.close
67
+
68
+ # writes gemspec
69
+ gemspec = File.new("#{p_name}/#{p_name}.gemspec", 'w+')
70
+ gemspec.puts '# -*- encoding: utf-8 -*-'
71
+ gemspec.puts "lib = File.expand_path('../lib', __FILE__)"
72
+ gemspec.puts "$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)\n\n"
73
+ gemspec.puts 'Gem::Specification.new do |s|'
74
+ gemspec.puts "\ts.name = '#{p_name}'"
75
+ gemspec.puts "\ts.version = '#{version}'"
76
+ gemspec.puts "\ts.platform = Gem::Platform::RUBY"
77
+ gemspec.puts "\ts.authors = #{authors}"
78
+ gemspec.puts "\ts.email = '#{email}'"
79
+ gemspec.puts "\ts.homepage = '#{site}'"
80
+ gemspec.puts "\ts.summary = '#{summary}'"
81
+ gemspec.puts "\ts.description = <<-EOF\n\t\t#{description}\nEOF"
82
+ gemspec.puts "\ts.license = '#{license}'"
83
+ gemspec.puts "\ts.files = ['lib/#{p_name}.rb']"
84
+ gemspec.puts "\ts.executables = ['#{p_name}']"
85
+ gemspec.puts "\ts.test_files = ['test/test_#{p_name}.rb']"
86
+ gemspec.puts "\ts.require_path = ['lib']"
87
+ gemspec.puts 'end'
88
+
89
+ # runs automated tests
90
+ #system 'cd '
91
+ #system 'rake'
@@ -0,0 +1,29 @@
1
+ # extracts required information for project
2
+ class GetInfo
3
+ def initialize(prompt)
4
+ @prompt = prompt
5
+ @info = ''
6
+ @u_verify = ''
7
+ end
8
+
9
+ def user_prompt
10
+ loop do
11
+ print @prompt
12
+ take_input
13
+ break if verify_input
14
+ end
15
+ @info
16
+ end
17
+
18
+ def take_input
19
+ @info = gets.chomp.to_s
20
+ end
21
+
22
+ def verify_input
23
+ puts "You have entered: #{@info}"
24
+ print 'Is this correct? (Y/N) => '
25
+ @u_verify = gets.chomp.to_s.upcase
26
+ return false unless @u_verify == 'Y'
27
+ true
28
+ end
29
+ end
@@ -0,0 +1,54 @@
1
+ require 'test/unit'
2
+ require 'gbud'
3
+
4
+ # test methods in getinfo module
5
+ class GetInfoTest < Test::Unit::TestCase
6
+ def test_take_input
7
+ with_stdin do |user|
8
+ user.puts 'test'
9
+ assert_equal(
10
+ GetInfo.new('').take_input, 'test')
11
+ end
12
+ end
13
+
14
+ def test_verify_input_one
15
+ with_stdin do |user|
16
+ user.puts 'Y'
17
+ assert_equal(
18
+ GetInfo.new('').verify_input, true)
19
+ end
20
+ end
21
+
22
+ def test_verify_input_two
23
+ with_stdin do |user|
24
+ user.puts 'Y'
25
+ assert_equal(
26
+ GetInfo.new('').verify_input, true)
27
+ end
28
+ end
29
+
30
+ def test_verify_input_fail
31
+ with_stdin do |user|
32
+ user.puts 'N'
33
+ assert_equal(
34
+ GetInfo.new('').verify_input, false)
35
+ end
36
+ end
37
+
38
+ def test_user_prompt
39
+ with_stdin do |user|
40
+ user.puts 'test'
41
+ user.puts 'Y'
42
+ assert_equal(GetInfo.new('').user_prompt, 'test')
43
+ end
44
+ end
45
+
46
+ def with_stdin
47
+ stdin = $stdin # remember $stdin
48
+ $stdin, write = IO.pipe # create pipe assigning its "read end" to $stdin
49
+ yield write # pass pipe's "write end" to block
50
+ ensure
51
+ write.close # close pipe
52
+ $stdin = stdin # restore $stdin
53
+ end
54
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gbud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Davis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-10 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2
14
14
  This project aims to make starting a new gem project simple by automating
@@ -21,7 +21,9 @@ extra_rdoc_files: []
21
21
  files:
22
22
  - bin/gbud
23
23
  - lib/gbud.rb
24
- - test/test_gbud.rb
24
+ - lib/gbud/base.rb
25
+ - lib/gbud/getinfo.rb
26
+ - test/test_getinfo.rb
25
27
  homepage: http://www.github.com/d3d1rty/gbud
26
28
  licenses:
27
29
  - GPL v3
@@ -47,4 +49,4 @@ signing_key:
47
49
  specification_version: 4
48
50
  summary: Initializes the basic structure of a gem
49
51
  test_files:
50
- - test/test_gbud.rb
52
+ - test/test_getinfo.rb
File without changes