skelet 0.0.1

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: 16c845744c58205b1355acd43c153e6e40482329
4
+ data.tar.gz: c386ab82d0f63b929b8b9b0ecd8d91eee614f281
5
+ SHA512:
6
+ metadata.gz: 1ce9fbfcde91cda6cf12d2f685ea9bcaac77dbbc69873f1baa371fd886f436b8cffee498c4048d018f072a73b62abdd57321e9c194aafbe91434bed2245d6628
7
+ data.tar.gz: 347f363f6c0beb39ef913480d74956c90b94c7298ad64e1b88ac1f42b483bc2238d3625fa9c91b1dcae1abb7a199dcd403cc49e7410dc52baf41b44fe397a1a9
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *~
2
+ *.gem
data/bin/skelet ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/skelet'
4
+
5
+ Skelet::Application.new(ARGV[0]).create_skeleton
@@ -0,0 +1,83 @@
1
+ module Skelet
2
+
3
+
4
+ def gemspec(skelet_name)
5
+
6
+ user_name = `git config user.name`.chomp rescue "TODO"
7
+ user_email = `git config user.email`.chomp rescue "TODO"
8
+
9
+ gemspec_content= <<EOF
10
+ #-*- encoding utf-8 -*-
11
+ $:.push File.expand_path("../lib", __FILE__)
12
+ require "#{skelet_name}/version"
13
+
14
+ Gem::Specification.new do |s|
15
+ s.name = "#{skelet_name}"
16
+ s.version = #{skelet_name.capitalize}::VERSION
17
+ s.platform = Gem::Platform::Ruby
18
+ s.authors = [#{user_name}]
19
+ s.email = [#{user_email}]
20
+ s.homepage = "TODO"
21
+ s.summary = "TODO"
22
+ s.description = "TODO"
23
+
24
+ s.files = `git ls-files`.split("\\n")
25
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\\n")
26
+ s.executables = `git ls-files -- bin/*`.split("\\n").map { |f| File.basename(f)}
27
+ s.require_paths = ["lib"]
28
+ end
29
+ EOF
30
+ return gemspec_content
31
+ end
32
+
33
+
34
+
35
+
36
+ def version(skelet_name)
37
+ version_content = <<EOF
38
+ module #{skelet_name.capitalize}
39
+ VERSION = "0.0.1"
40
+ end
41
+ EOF
42
+ return version_content
43
+ end
44
+
45
+
46
+
47
+
48
+ def bin(skelet_name)
49
+ bin_content = <<EOF
50
+ #!/usr/bin/env ruby
51
+
52
+ require '../lib/#{skelet_name}'
53
+ EOF
54
+ return bin_content
55
+ end
56
+
57
+
58
+ def test(skelet_name)
59
+ test_content = <<EOF
60
+ require 'minitest/autorun'
61
+ require_relative '../lib/#{skelet_name}'
62
+ include #{skelet_name.capitalize}
63
+
64
+ class Test#{skelet_name.capitalize} < Minitest::Test
65
+ def setup
66
+ end
67
+
68
+ def teardown
69
+ end
70
+ end
71
+ EOF
72
+ return test_content
73
+ end
74
+
75
+
76
+ def main(skelet_name)
77
+ main_content = <<EOF
78
+ module #{skelet_name.capitalize}
79
+ end
80
+ EOF
81
+ return main_content
82
+ end
83
+ end
@@ -0,0 +1,3 @@
1
+ module Skelet
2
+ VERSION = "0.0.1"
3
+ end
data/lib/skelet.rb ADDED
@@ -0,0 +1,30 @@
1
+ require_relative 'skelet/files'
2
+
3
+ include Skelet
4
+
5
+ module Skelet
6
+ class Application
7
+ PERM = 'w+'
8
+ attr_reader :name
9
+
10
+ def initialize(name)
11
+ @name=name
12
+ end
13
+
14
+ def create_skeleton
15
+ Dir.mkdir(@name)
16
+ Dir.chdir(@name) do
17
+ File.open("#{@name}.gemspec", PERM) {|f| f << Skelet::gemspec(@name)}
18
+ ["bin", "lib", "test", "lib/#{@name}"].each do |entry|
19
+ Dir.mkdir(entry)
20
+ end
21
+ Dir.chdir('test') { File.open("test_#{@name}.rb", PERM) {|f| f << Skelet::test(@name)}}
22
+ Dir.chdir('bin') { File.open(@name, PERM) {|f| f << Skelet::bin(@name)} }
23
+ Dir.chdir("lib") { File.open("#{@name}.rb", PERM) {|f| f << Skelet::main(@name)} }
24
+ Dir.chdir("lib/#{@name}") { File.open("version.rb", PERM) {|f| f << Skelet::version(@name) } }
25
+ end
26
+ rescue
27
+ puts "#{@name} already exists. Please pick another name or directory."
28
+ end
29
+ end
30
+ end
data/skelet.gemspec ADDED
@@ -0,0 +1,19 @@
1
+ #-*- encoding utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "skelet/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "skelet"
7
+ s.version = Skelet::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Kuba Krzempek"]
10
+ s.email = ["kubakrzempek@gmail.com"]
11
+ s.homepage = ""
12
+ s.summary = "Application's skeleton generator"
13
+ s.description = "Simply generates a skeleton for an app"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f)}
18
+ s.require_paths = ["lib"]
19
+ end
@@ -0,0 +1,48 @@
1
+ require 'minitest/autorun'
2
+ require 'fileutils'
3
+ require_relative '../lib/skelet'
4
+
5
+ include Skelet
6
+
7
+ class TestSkelet < Minitest::Test
8
+ def setup
9
+ @skelet=Skelet::Application.new("new_gem")
10
+ end
11
+
12
+ def test_name()
13
+ assert_equal "new_gem", @skelet.name
14
+ assert_respond_to @skelet, :name
15
+ refute_respond_to @skelet, :name=
16
+ end
17
+
18
+ def test_created_skeleton_tree()
19
+ @skelet.create_skeleton
20
+ assert_equal true, Dir.exist?(@skelet.name)
21
+
22
+ Dir.chdir(@skelet.name) do
23
+ assert_equal true, File.exist?("#{@skelet.name}.gemspec")
24
+ entries = []
25
+ Dir.entries(Dir.pwd).each do |entry|
26
+ entries << entry unless entry=~/\.{1,2}/
27
+ end
28
+ assert_equal %w[bin lib test].sort, entries.sort
29
+ Dir.chdir("lib") do
30
+ assert_equal true, Dir.exist?(@skelet.name)
31
+ assert_equal true, File.file?("#{@skelet.name}.rb"), 'lib dir'
32
+ Dir.chdir(@skelet.name) do
33
+ assert_equal true, File.file?('version.rb'), "lib/#{@skelet.name} dir"
34
+ end
35
+ end
36
+ Dir.chdir("bin") do
37
+ assert_equal true, File.file?(@skelet.name), 'bin dir'
38
+ end
39
+ Dir.chdir("test") do
40
+ assert_equal true, File.file?("test_#{@skelet.name}.rb"), 'test dir'
41
+ end
42
+ end
43
+ end
44
+
45
+ def teardown
46
+ FileUtils.rm_rf(@skelet.name)
47
+ end
48
+ end
metadata ADDED
@@ -0,0 +1,52 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: skelet
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kuba Krzempek
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-06-29 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Simply generates a skeleton for an app
14
+ email:
15
+ - kubakrzempek@gmail.com
16
+ executables:
17
+ - skelet
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - .gitignore
22
+ - bin/skelet
23
+ - lib/skelet.rb
24
+ - lib/skelet/files.rb
25
+ - lib/skelet/version.rb
26
+ - skelet.gemspec
27
+ - test/test_skelet.rb
28
+ homepage: ''
29
+ licenses: []
30
+ metadata: {}
31
+ post_install_message:
32
+ rdoc_options: []
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubyforge_project:
47
+ rubygems_version: 2.0.3
48
+ signing_key:
49
+ specification_version: 4
50
+ summary: Application's skeleton generator
51
+ test_files:
52
+ - test/test_skelet.rb