webapp_raketasks 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in my_rake_tasks.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 baggins
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # MyRakeTasks
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'my_rake_tasks'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install my_rake_tasks
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,9 @@
1
+ require "webapp_raketasks/version"
2
+ require "rake"
3
+ module WebAppRakeTasks
4
+ require_relative "webapp_raketasks/assets_tasks"
5
+ require_relative "webapp_raketasks/bootstrap_tasks"
6
+ require_relative "webapp_raketasks/extjs_tasks"
7
+ require_relative "webapp_raketasks/sinatra_tasks"
8
+ require_relative "webapp_raketasks/jquery_tasks"
9
+ end
@@ -0,0 +1,17 @@
1
+ namespace :assets do
2
+ ASSETS_DIR = "assets/"
3
+ task :create do
4
+ mkdir_p ASSETS_DIR
5
+ end
6
+ task :delete do
7
+ rm_rf ASSETS_DIR
8
+ end
9
+ task :link, :source, :target do |t,args|
10
+ sh "ln -s #{args[:source]} #{args[:target]}"
11
+ end
12
+ task :clean do
13
+ if (Dir.entries(ASSETS_DIR).size == 2)
14
+ Rake::Task["assets:delete"].invoke
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,31 @@
1
+ require 'rake'
2
+ require_relative 'assets_tasks'
3
+
4
+ namespace :bootstrap do
5
+ BOOTSTRAP_URL = "http://twitter.github.com/bootstrap/assets/bootstrap.zip"
6
+
7
+ desc "Install Bootstrap in assets/ directory"
8
+ task :install => [:create_assets, :download, :unzip, :clean]
9
+
10
+ task :create_assets do
11
+ Rake::Task["assets:create"].invoke
12
+ end
13
+ task :download do
14
+ sh "wget #{BOOTSTRAP_URL} -O assets/bootstrap.zip -q"
15
+ end
16
+ task :unzip, :target_file do
17
+ sh "unzip -q -o assets/bootstrap.zip -d assets/"
18
+ end
19
+ desc "Remove Bootstrap from assets/ directroy"
20
+ task :remove do
21
+ if File.exist? "assets/bootstrap"
22
+ rm_rf "assets/bootstrap"
23
+ Rake::Task["assets:clean"].invoke
24
+ else
25
+ abort "It seems that Bootstrap is not installed"
26
+ end
27
+ end
28
+ task :clean do
29
+ rm_rf "assets/bootstrap.zip"
30
+ end
31
+ end
@@ -0,0 +1,41 @@
1
+ require 'rake'
2
+ require_relative 'assets_tasks'
3
+
4
+ namespace :extjs do
5
+ EXTJS_URL = "http://cdn.sencha.com/ext-4.1.1a-gpl.zip"
6
+ EXTJS_CSS_URL = "http://cdn.sencha.io/ext-4.1.1a-gpl/resources/css/ext-all.css"
7
+ EXTJS_JS_URL = "http://cdn.sencha.io/ext-4.1.1a-gpl/ext-all.js"
8
+ EXTJS_JS_DEBUG_URL = "http://cdn.sencha.io/ext-4.1.1a-gpl/ext-all-debug.js"
9
+
10
+ desc "Install Mini GPL ExtJS 4.1.1 in assets/ directory"
11
+ task :install => [:create_assets, :download_mini ]
12
+ desc "Install Full GPL ExtJS 4.1.1 in assets/ directory"
13
+ task :install_full => [:create_assets, :download, :unzip, :clean]
14
+ task :create_assets do
15
+ Rake::Task["assets:create"].invoke
16
+ end
17
+ task :download_mini do
18
+ mkdir_p "assets/ext-4.1.1a"
19
+ sh "wget #{EXTJS_CSS_URL} -N -P assets/ext-4.1.1a/ -q"
20
+ sh "wget #{EXTJS_JS_URL} -N -P assets/ext-4.1.1a/ -q"
21
+ sh "wget #{EXTJS_JS_DEBUG_URL} -N -P assets/ext-4.1.1a/ -q"
22
+ end
23
+ task :download do
24
+ sh "wget #{EXTJS_URL} -N -O assets/extjs.zip -q"
25
+ end
26
+ task :unzip, :target_file do
27
+ sh "unzip -q -o assets/extjs.zip -d assets/"
28
+ end
29
+ desc "Remove ExtJS 4.1.1 from assets/ directroy"
30
+ task :remove do
31
+ if File.exist? "assets/ext-4.1.1a/"
32
+ rm_rf "assets/ext-4.1.1a"
33
+ Rake::Task["assets:clean"].invoke
34
+ else
35
+ abort "It seems that ExtJS is not installed"
36
+ end
37
+ end
38
+ task :clean do
39
+ rm_rf "assets/extjs.zip"
40
+ end
41
+ end
@@ -0,0 +1,25 @@
1
+ require 'rake'
2
+ require_relative 'assets_tasks'
3
+
4
+ namespace :jquery do
5
+ JQUERY_URL = "http://code.jquery.com/jquery-latest.min.js"
6
+
7
+ desc "Install latest JQuery in assets/ directory"
8
+ task :install => [:create_assets, :download]
9
+
10
+ task :create_assets do
11
+ Rake::Task["assets:create"].invoke
12
+ end
13
+ task :download do
14
+ sh "wget #{JQUERY_URL} -O assets/jquery.js -q"
15
+ end
16
+ desc "Remove JQuery from assets/ directroy"
17
+ task :remove do
18
+ if File.exist? "assets/jquery.js"
19
+ rm_rf "assets/jquery.js"
20
+ Rake::Task["assets:clean"].invoke
21
+ else
22
+ abort "It seems that JQuery is not installed"
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,37 @@
1
+
2
+ module SinatraHelpers
3
+ class BootstrapApp < SinatraApp
4
+ def self.invoke
5
+ app = new
6
+ app.create_webapp_rb
7
+ app.create_config_ru
8
+ app.create_index_haml
9
+ app.create_layout_haml
10
+ end
11
+ def create_layout_haml conent = layout_haml
12
+ super( conent )
13
+ end
14
+ def create_index_haml conent = index_haml
15
+ super( conent )
16
+ end
17
+
18
+ private
19
+ def index_haml
20
+ ".hero\n" \
21
+ " %h1 Hello from Bootstrap"
22
+ end
23
+ def layout_haml
24
+ "!!! 5\n" \
25
+ "%html\n" \
26
+ " %head\n" \
27
+ " %meta{ :'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8' }\n" \
28
+ " %link{ :href => 'bootstrap/css/bootstrap.css', :rel => 'sylesheet' }\n" \
29
+ " %link{ :href => 'bootstrap/css/bootstrap-responsive.css', :rel => 'sylesheet' }\n" \
30
+ " %script{ :src => 'jquery.js' }\n" \
31
+ " %script{ :src => 'bootstrap/js/bootstrap.js' }\n" \
32
+ " %body\n" \
33
+ " = yield\n"
34
+ end
35
+ end
36
+ end
37
+
@@ -0,0 +1,52 @@
1
+
2
+ module SinatraHelpers
3
+ class SinatraApp
4
+ def self.invoke
5
+ app = new
6
+ app.create_webapp_rb
7
+ app.create_config_ru
8
+ app.create_index_haml
9
+ app.create_layout_haml
10
+ end
11
+ def create_webapp_rb
12
+ create_file_with_content("./webapp.rb", webapp_rb)
13
+ end
14
+ def create_config_ru
15
+ create_file_with_content( "./config.ru", config_ru )
16
+ end
17
+ def create_index_haml content = index_haml
18
+ create_file_with_content( "./views/index.haml", content )
19
+ end
20
+ def create_layout_haml content = layout_haml
21
+ create_file_with_content( "./views/layout.haml", content )
22
+ end
23
+
24
+ private
25
+ def webapp_rb
26
+ "get '/' do\n haml :index\nend"
27
+ end
28
+ def config_ru
29
+ "require 'bundler/setup'\n" \
30
+ "require 'sinatra'\n" \
31
+ "require 'haml'\n\n" \
32
+ "require './webapp.rb'\n\n" \
33
+ "run Sinatra::Application"
34
+ end
35
+ def index_haml
36
+ "%h1 Hello\n"
37
+ end
38
+ def layout_haml
39
+ "!!! 5\n" \
40
+ "%html\n" \
41
+ " %head\n" \
42
+ " %meta{ :'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8' }\n" \
43
+ " %body\n" \
44
+ " = yield\n"
45
+ end
46
+ def create_file_with_content file_path, content
47
+ File.open(file_path, "w") do |f|
48
+ f.write( content )
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,34 @@
1
+ require 'rake'
2
+ require_relative 'sinatra_helpers/sinatra_app'
3
+ require_relative 'sinatra_helpers/bootstrap_app'
4
+
5
+ namespace :sinatra do
6
+ SINATRA_PUBLIC = "public/"
7
+ SINATRA_VIEWS = "views/"
8
+ task :create_dirs do
9
+ mkdir_p SINATRA_PUBLIC
10
+ mkdir_p SINATRA_VIEWS
11
+ end
12
+ task :delete_dirs do
13
+ rm_rf SINATRA_PUBLIC
14
+ rm_rf SINATRA_VIEWS
15
+ end
16
+ desc "Create Sinatra files and directories"
17
+ task :init => [:delete_dirs, :create_dirs]
18
+ desc "Boostrap + JQuery skeleton"
19
+ task :bootstrap => :init do
20
+ Rake::Task["bootstrap:install"].invoke
21
+ Rake::Task["jquery:install"].invoke
22
+ Rake::Task["assets:link"].invoke('../assets/jquery.js', './public/')
23
+ Rake::Task["assets:link"].reenable
24
+ Rake::Task["assets:link"].invoke('../assets/bootstrap', './public/')
25
+ SinatraHelpers::BootstrapApp.invoke
26
+ puts "Created skeleton"
27
+ end
28
+ desc "ExtJS skeleton"
29
+ task :extjs => :init do
30
+ Rake::Task["extjs:install"].invoke
31
+ Rake::Task["jquery:install"].invoke
32
+ Rake::Task["assets:link"].invoke('../assets/jquery.js', './public/')
33
+ end
34
+ end
@@ -0,0 +1,3 @@
1
+ module WebAppRakeTasks
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'webapp_raketasks/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "webapp_raketasks"
8
+ spec.version = WebAppRakeTasks::VERSION
9
+ spec.authors = ["bidek"]
10
+ spec.email = ["kamil.bidus@gmail.com"]
11
+ spec.description = %q{My web apps rake tasks}
12
+ spec.summary = %q{Downloading assets: ExtJS, Bootstrap, JQuery; Generate skeletons: Sinatra + Bootstrap + JQuery, Sinatra on ExtJS}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webapp_raketasks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - bidek
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-04-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: My web apps rake tasks
47
+ email:
48
+ - kamil.bidus@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - Gemfile
54
+ - LICENSE.txt
55
+ - README.md
56
+ - Rakefile
57
+ - lib/webapp_raketasks.rb
58
+ - lib/webapp_raketasks/assets_tasks.rb
59
+ - lib/webapp_raketasks/bootstrap_tasks.rb
60
+ - lib/webapp_raketasks/extjs_tasks.rb
61
+ - lib/webapp_raketasks/jquery_tasks.rb
62
+ - lib/webapp_raketasks/sinatra_helpers/bootstrap_app.rb
63
+ - lib/webapp_raketasks/sinatra_helpers/sinatra_app.rb
64
+ - lib/webapp_raketasks/sinatra_tasks.rb
65
+ - lib/webapp_raketasks/version.rb
66
+ - webapp_raketasks.gemspec
67
+ homepage: ''
68
+ licenses:
69
+ - MIT
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ segments:
81
+ - 0
82
+ hash: 3359033001771093076
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ segments:
90
+ - 0
91
+ hash: 3359033001771093076
92
+ requirements: []
93
+ rubyforge_project:
94
+ rubygems_version: 1.8.25
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: ! 'Downloading assets: ExtJS, Bootstrap, JQuery; Generate skeletons: Sinatra
98
+ + Bootstrap + JQuery, Sinatra on ExtJS'
99
+ test_files: []