start_project 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.
data/bin/ProjectStart ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require 'start_project/runner'
3
+ runner = StartProject::Runner.new(ARGV)
4
+ runner.run
@@ -0,0 +1,28 @@
1
+ #Stub for the entry class
2
+ require 'rubygems'
3
+ require 'open-uri'
4
+ require 'zip/zip'
5
+
6
+ module StartProject
7
+ class Downloader
8
+ def self.download(source)
9
+ open("temp.zip",'wb') do |fo|
10
+ fo.print open(source).read
11
+ end
12
+ end
13
+
14
+ def self.unzip_file (destination)
15
+ orig_name = ""
16
+ Zip::ZipFile.open("temp.zip") { |zip_file|
17
+ zip_file.each { |f|
18
+ f_path=File.join("./", f.name)
19
+ orig_name = f_path.split('/')[1]
20
+ FileUtils.mkdir_p(File.dirname(f_path))
21
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
22
+ }
23
+ }
24
+ File.rename(orig_name, destination)
25
+ File.delete("temp.zip")
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,52 @@
1
+ require 'optparse'
2
+ module StartProject
3
+ class Options
4
+ # TODO
5
+ # 1. Create a class to store/read from YAML, all the different frameworks possible
6
+ # 2. Clean up the unpacking
7
+ # 3. Create Tests
8
+ # 4. Write documentation
9
+
10
+
11
+ DEFAULT_TYPE = "html5"
12
+ attr_reader :project_uri
13
+ attr_reader :project_name
14
+
15
+ def initialize(argv)
16
+ @project_uri = "https://github.com/h5bp/html5-boilerplate/zipball/master"
17
+ parse(argv)
18
+ end
19
+
20
+ private
21
+ def parse(argv)
22
+ OptionParser.new do |opts|
23
+ opts.banner = "Usage: ProjectStart -t [ html5 | bootstrap] -n projectName"
24
+
25
+ opts.on("-t","--type html5|bootstrap", String, "Type of project") do |type|
26
+ if(type=='bootstrap')
27
+ @project_uri = "https://github.com/twitter/bootstrap/zipball/master"
28
+ else
29
+ @project_uri = "https://github.com/h5bp/html5-boilerplate/zipball/master"
30
+ end
31
+ end
32
+
33
+ opts.on("-n","--name projectName", String, "Name of project") do |name|
34
+ @project_name = name
35
+ end
36
+
37
+ opts.on("-h", "--help", "Show this message") do
38
+ puts opts
39
+ exit
40
+ end
41
+
42
+ begin
43
+ argv = ["-h"] if argv.empty?
44
+ opts.parse(argv)
45
+ rescue OptionParser::ParseError => e
46
+ STDERR.puts e.message, "\n", opts
47
+ exit(-1)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,15 @@
1
+ require 'start_project/downloader'
2
+ require 'start_project/options'
3
+ module StartProject
4
+ class Runner
5
+ def initialize(argv)
6
+ @options = Options.new(argv)
7
+ end
8
+
9
+ def run
10
+ Downloader.download(@options.project_uri)
11
+ Downloader.unzip_file(@options.project_name)
12
+ end
13
+
14
+ end
15
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: start_project
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Aonghus Flynn
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2012-08-24 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rubyzip
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
29
+ version: "0"
30
+ type: :runtime
31
+ version_requirements: *id001
32
+ description: ""
33
+ email: developer@aonghusflynn.com
34
+ executables: []
35
+
36
+ extensions: []
37
+
38
+ extra_rdoc_files: []
39
+
40
+ files:
41
+ - lib/start_project/downloader.rb
42
+ - lib//start_project/options.rb
43
+ - lib//start_project/runner.rb
44
+ - bin/ProjectStart
45
+ has_rdoc: true
46
+ homepage: http://rubygems.org/gems/start_project
47
+ licenses: []
48
+
49
+ post_install_message:
50
+ rdoc_options: []
51
+
52
+ require_paths:
53
+ - lib
54
+ required_ruby_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 1
60
+ - 8
61
+ - 7
62
+ version: 1.8.7
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ segments:
68
+ - 0
69
+ version: "0"
70
+ requirements: []
71
+
72
+ rubyforge_project:
73
+ rubygems_version: 1.3.6
74
+ signing_key:
75
+ specification_version: 3
76
+ summary: Create html projects
77
+ test_files: []
78
+