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 +7 -0
- data/.gitignore +2 -0
- data/bin/skelet +5 -0
- data/lib/skelet/files.rb +83 -0
- data/lib/skelet/version.rb +3 -0
- data/lib/skelet.rb +30 -0
- data/skelet.gemspec +19 -0
- data/test/test_skelet.rb +48 -0
- metadata +52 -0
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
data/bin/skelet
ADDED
data/lib/skelet/files.rb
ADDED
@@ -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
|
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
|
data/test/test_skelet.rb
ADDED
@@ -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
|