myway 0.1.2 → 0.1.3

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/README.md CHANGED
@@ -6,19 +6,31 @@ default the sinatra app uses haml as it's templating engine.
6
6
 
7
7
  ## Installation and Usage
8
8
 
9
- Install it yourself as:
9
+ Install it yourself from source:
10
10
 
11
11
  $ rake install
12
12
 
13
13
 
14
+ Or,
15
+
16
+ Install from rubygems
17
+
18
+ $ gem install myway
19
+
14
20
  And then execute:
15
21
 
16
22
  $ mw
17
23
 
18
24
  And to start a new sinatra project:
19
25
 
20
- $ mw new "ProjectName"
26
+ $ mw new "YourProjectName"
27
+
28
+
29
+ CHANGE LOG
21
30
 
31
+ Version 0.1.3
32
+ - adds head, backbone, underscore js in assets pipeline
33
+ - scaffolds capistrano deploy script
22
34
 
23
35
  ## Contributing
24
36
 
data/bin/mw CHANGED
File without changes
@@ -1,6 +1,16 @@
1
1
  require "myway/version"
2
+ require "open-uri"
3
+ require "zip/zipfilesystem"
4
+ require "fileutils"
2
5
  require "thor"
3
6
 
7
+ JS_LIBS = {
8
+ 'head' => 'https://github.com/headjs/headjs/raw/v0.96/dist/head.load.min.js',
9
+ 'jquery' => 'http://code.jquery.com/jquery-1.7.2.min.js',
10
+ 'backbone' => 'http://documentcloud.github.com/backbone/backbone-min.js',
11
+ 'underscore' => 'http://documentcloud.github.com/underscore/underscore-min.js',
12
+ 'bootstrap' => 'http://twitter.github.com/bootstrap/assets/bootstrap.zip'
13
+ }
4
14
  class String
5
15
  def camelize(first_letter_in_uppercase = true)
6
16
  if first_letter_in_uppercase
@@ -31,15 +41,15 @@ module Myway
31
41
  user_info
32
42
 
33
43
  empty_directory "#{name}/app/routes"
34
- empty_directory "#{name}/app/views"
35
44
  empty_directory "#{name}/app/models"
36
- empty_directory "#{name}/config"
37
45
  empty_directory "#{name}/assets/js"
38
- empty_directory "#{name}/assets/css"
39
46
  empty_directory "#{name}/spec"
40
47
 
41
48
  template "myway/templates/app/version.tt", "#{name}/app/version.rb"
42
49
  template "myway/templates/app/app.tt", "#{name}/app/#{name}.rb"
50
+ template "myway/templates/app/views/layout.haml.tt", "#{name}/app/views/layout.haml"
51
+ template "myway/templates/app/views/index.haml.tt", "#{name}/app/views/index.haml"
52
+ template "myway/templates/app/views/includes/navbar.haml.tt", "#{name}/app/views/includes/navbar.haml"
43
53
  template "myway/templates/config/unicorn.tt", "#{name}/config/unicorn.rb"
44
54
  template "myway/templates/config.ru.tt", "#{name}/config.ru"
45
55
  template "myway/templates/gemspec.tt", "#{name}/#{name}.gemspec"
@@ -50,6 +60,8 @@ module Myway
50
60
 
51
61
  Dir.chdir(File.join(Dir.pwd, name))
52
62
 
63
+ build_js_libs
64
+
53
65
  init_git
54
66
  init_bundle
55
67
  init_capistrano
@@ -66,6 +78,41 @@ module Myway
66
78
  @email = IO.popen("git config --global user.email").read.gsub("\n", "")
67
79
  end
68
80
 
81
+ def unzip_file (file, destination)
82
+ Zip::ZipFile.open(file) { |zip_file|
83
+ zip_file.each { |f|
84
+ f_path=File.join(destination, f.name)
85
+ FileUtils.mkdir_p(File.dirname(f_path))
86
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
87
+ }
88
+ }
89
+ end
90
+
91
+ def build_js_libs(libs=%w(head underscore backbone bootstrap))
92
+ libs.each do |lib|
93
+ if lib != "bootstrap"
94
+ File.open "./assets/js/#{lib}.min.js", 'w+' do |file|
95
+ file.write get_latest(lib)
96
+ say " - ./assets/js/#{lib}.min.js"
97
+ end
98
+ else
99
+ File.open "assets/js/#{lib}.zip", 'wb' do |file|
100
+ file.write get_latest(lib)
101
+ end
102
+ unzip_file "./assets/js/#{lib}.zip", "./assets/"
103
+ File.delete "./assets/js/#{lib}.zip"
104
+ `mv ./assets/bootstrap/js/* ./assets/js/`
105
+ `mv ./assets/bootstrap/css/ ./assets/`
106
+ `mv ./assets/bootstrap/img/ ./assets/`
107
+ FileUtils.rm_rf "./assets/bootstrap/"
108
+ end
109
+ end
110
+ end
111
+
112
+ def get_latest(scriptname)
113
+ open(JS_LIBS[scriptname]).read
114
+ end
115
+
69
116
  def method_missing(meth, *args, &block)
70
117
  return init($1.to_sym) if meth.to_s =~ /^init_(.*)/
71
118
  super
@@ -81,7 +128,7 @@ module Myway
81
128
  say "Installing gems for #{name} ..."
82
129
  `bundle install`
83
130
  when :capistrano
84
- say "If you use capistrano for deployment edit this file"
131
+ say "Initializing capistrano deploy script"
85
132
  template "myway/templates/config/deploy.rb.tt", "#{name}/config/deploy.rb"
86
133
  end
87
134
  end
@@ -0,0 +1,21 @@
1
+ .navbar.navbar-fixed-top
2
+ .navbar-inner
3
+ .container
4
+ %a.btn.btn-navbar{"data-target" => ".nav-collapse", "data-toggle" => "collapse"}
5
+ %span.icon-bar
6
+ %span.icon-bar
7
+ %span.icon-bar
8
+ %a.brand{:href => "#"} Project
9
+ .nav-collapse
10
+ %ul.nav
11
+ %li.active
12
+ %a{:href => "#"} Home
13
+ %form.navbar-search.pull-left{:id => "nav_search" ,:name=> "nav_search", :action => "/search", :method => "post"}
14
+ %input.search-query.span2{:placeholder => "search", :type => "text", :name => "search"}
15
+ %ul.nav.pull-right
16
+ %li
17
+ %a{:href => "#"} Link
18
+
19
+ / /.nav-collapse
20
+ / /navbar-inner
21
+ / /navbar
@@ -0,0 +1,36 @@
1
+ !!!
2
+ %html
3
+ %head
4
+ %title Project: <%= name %>
5
+ %meta(name='viewport' content='width=device-width, initial-scale=1.0')
6
+ %meta(name='description' content='')
7
+ %meta(name='author' content='')
8
+ %script{:src=> "/js/head.min.js"}
9
+ %link(href='/css/bootstrap.css' rel='stylesheet')
10
+ %style
11
+ body {padding-top: 60px;} /* 60px to make the container go all the way to the bottom of the topbar */
12
+ %link(href='/css/bootstrap-responsive.css' rel='stylesheet')
13
+
14
+ //Le HTML5 shim, for IE6-8 support of HTML5 elements
15
+ //if lt IE 9
16
+ %script(src='http://html5shim.googlecode.com/svn/trunk/html5.js')
17
+ //Le fav and touch icons
18
+ %link(rel='shortcut icon' href='/assets/ico/favicon.ico')
19
+ %link(rel='apple-touch-icon-precomposed' sizes='114x114' href='/assets/ico/apple-touch-icon-114-precomposed.png')
20
+ %link(rel='apple-touch-icon-precomposed' sizes='72x72' href='/assets/ico/apple-touch-icon-72-precomposed.png')
21
+ %link(rel='apple-touch-icon-precomposed' href='/assets/ico/apple-touch-icon-57-precomposed.png')
22
+
23
+ %body
24
+ = haml :'includes/navbar'
25
+ .container
26
+ =yield
27
+ %script
28
+ head.js(
29
+ /js/underscore.min.js", "/js/backbone.min.js",
30
+ "/js/bootstrap-alert.js", "/js/bootstrap-dropdown.js",
31
+ "/js/bootstrap-modal.js","/js/bootstrap-tooltip.js"
32
+ )
33
+
34
+ //"/js/bootstrap-button.js","/js/bootstrap-collapse.js","/js/bootstrap-carousel.js",
35
+ //"/js/bootstrap-popover.js","/js/bootstrap-scrollspy.js","/js/bootstrap-tab.js",
36
+ //"/js/bootstrap-transition.js","/js/bootstrap-typeahead.js",
@@ -13,8 +13,8 @@ Gem::Specification.new do |gem|
13
13
  gem.name = "<%= name %>"
14
14
  gem.require_paths = ["app"]
15
15
  gem.version = <%= name.camelize %>::VERSION
16
- gem.add_runtime_dependency "sinatra", ">= 1.3.2"
17
- gem.add_runtime_dependency "sinatra-contrib"
16
+ gem.add_runtime_dependency "sinatra", "~> 1.3.2"
17
+ gem.add_runtime_dependency "sinatra-contrib", "~> 1.3.1"
18
18
  gem.add_runtime_dependency "unicorn"
19
19
  gem.add_runtime_dependency "sprockets"
20
20
  gem.add_runtime_dependency "yui-compressor"
@@ -22,6 +22,5 @@ Gem::Specification.new do |gem|
22
22
 
23
23
  gem.add_development_dependency "capybara"
24
24
  gem.add_development_dependency "rspec"
25
- gem.add_development_dependency "capistrano"
26
- gem.add_development_dependency "capistrano-ext"
25
+ gem.add_development_dependency "capistrano", "~> 2.12.0"
27
26
  end
@@ -1,3 +1,3 @@
1
1
  module Myway
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -16,4 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
  gem.version = Myway::VERSION
18
18
  gem.add_runtime_dependency "thor", ">= 0.15.2"
19
+ gem.add_runtime_dependency "zip", "~> 2.0.2"
19
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-02 00:00:00.000000000Z
12
+ date: 2012-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: 0.15.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: zip
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 2.0.2
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.0.2
30
46
  description: ! "Sinatra project generator for sinatra based web applications. Named
31
47
  after\n Frank Sinatra's popular song during 1969 'My way'"
32
48
  email:
@@ -45,6 +61,9 @@ files:
45
61
  - lib/myway.rb
46
62
  - lib/myway/templates/app/app.tt
47
63
  - lib/myway/templates/app/version.tt
64
+ - lib/myway/templates/app/views/includes/navbar.haml.tt
65
+ - lib/myway/templates/app/views/index.haml.tt
66
+ - lib/myway/templates/app/views/layout.haml.tt
48
67
  - lib/myway/templates/config.ru.tt
49
68
  - lib/myway/templates/config/deploy.rb.tt
50
69
  - lib/myway/templates/config/unicorn.tt
@@ -75,7 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
94
  version: '0'
76
95
  requirements: []
77
96
  rubyforge_project:
78
- rubygems_version: 1.8.19
97
+ rubygems_version: 1.8.23
79
98
  signing_key:
80
99
  specification_version: 3
81
100
  summary: Scaffolding application for Sinatra web applications