susanoo 0.5.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +12 -1
- data/Susanoo.gemspec +1 -1
- data/TODO.org +3 -2
- data/lib/susanoo.rb +1 -0
- data/lib/susanoo/application.rb +10 -29
- data/lib/susanoo/cli/project.rb +61 -5
- data/lib/susanoo/controller.rb +14 -5
- data/lib/susanoo/controllers/assets.rb +52 -0
- data/lib/susanoo/controllers/index.rb +21 -0
- data/lib/susanoo/controllers/views.rb +40 -0
- data/lib/susanoo/generators/frameworks.rb +50 -90
- data/lib/susanoo/static_generator.rb +17 -0
- data/lib/susanoo/tasks.rb +19 -0
- data/lib/susanoo/tasks/assets.rake +18 -7
- data/lib/susanoo/templates/application/Gemfile +2 -1
- data/lib/susanoo/templates/application/{www → src}/assets/javascripts/app.js +1 -1
- data/lib/susanoo/templates/application/{www → src}/assets/javascripts/application.js +0 -0
- data/lib/susanoo/templates/application/{www → src}/assets/javascripts/functions.js +0 -0
- data/lib/susanoo/templates/application/{www → src}/assets/javascripts/lib/angular-ui-router.js +0 -0
- data/lib/susanoo/templates/application/{www → src}/assets/javascripts/main.js +6 -3
- data/lib/susanoo/templates/application/src/assets/javascripts/variables.js +5 -0
- data/lib/susanoo/templates/application/{www → src}/assets/stylesheets/application.css +0 -0
- data/lib/susanoo/templates/application/{www/assets/javascripts/variables.js → src/assets/stylesheets/main.scss} +0 -0
- data/lib/susanoo/templates/application/{www → src}/index.html.erb +0 -0
- data/lib/susanoo/templates/application/{www → src}/views/main.html +0 -0
- data/lib/susanoo/version.rb +1 -1
- metadata +20 -16
- data/lib/susanoo/templates/application/www/assets/stylesheets/main.scss +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 661f149461e9268b41cc670cb3bbc67e308e133c
|
4
|
+
data.tar.gz: 5cd189689c98bbae35a5032c79ea9bee2c10dfa7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bba027e972ae9b506c33ad4225701dbe51165a2e9cbff76e6a492a2ee921caaa03f46e645daba42617b881140fef4bf59f55beea406728ec0f78417cded4863
|
7
|
+
data.tar.gz: a48dd5e7ff0864ce6d61d55f1829e9c20d346c293c7f46187b75f477463d3c58256d093db499e2df983c3be2f94e693882de1bf6e9961d4fde827f15089e3ae2
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# Susanoo
|
2
2
|
|
3
|
-
|
3
|
+
Susanoo is meta framework to create and develop hybrid mobile applications. Using Susanoo you will work in an environment
|
4
|
+
which you already are familiar with specially if you are a ruby developer. Susanoo use Apache Cordova
|
4
5
|
|
5
6
|
## Installation
|
6
7
|
|
@@ -27,3 +28,13 @@ TODO: Write usage instructions here
|
|
27
28
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
29
|
4. Push to the branch (`git push origin my-new-feature`)
|
29
30
|
5. Create new Pull Request
|
31
|
+
|
32
|
+
## Credit
|
33
|
+
![Yellowen](http://www.yellowen.com/images/logo.png)
|
34
|
+
|
35
|
+
**Susanoo** is maintained and funded by Yellowen. Whenever a code snippet is borrowed or inspired by existing code, we try to credit the original developer/designer in our source code. Let us know if you think we have missed to do this.
|
36
|
+
|
37
|
+
|
38
|
+
# License
|
39
|
+
|
40
|
+
**Susanoo** is Copyright © 2014 Yellowen. It is free software, and may be redistributed under the terms specified in the LICENSE file.
|
data/Susanoo.gemspec
CHANGED
@@ -32,6 +32,6 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency 'yui-compressor', '~>0.9.6'
|
33
33
|
spec.add_dependency 'sprockets', '~>2.11.0'
|
34
34
|
spec.add_dependency 'sprockets-helpers'
|
35
|
-
spec.add_dependency 'sass'
|
35
|
+
spec.add_dependency 'sass', '3.2.15'
|
36
36
|
spec.add_dependency 'tilt'
|
37
37
|
end
|
data/TODO.org
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
* Tasks
|
2
|
-
**
|
3
|
-
**
|
2
|
+
** DONE transfer changes from example app to main susanoo headline
|
3
|
+
** DONE Add .gitignore to new projects
|
4
4
|
** TODO Add config.xml to templates
|
5
5
|
** TODO make title tag of index.html dynamic
|
6
|
+
** TODO minify assets on build time.
|
data/lib/susanoo.rb
CHANGED
data/lib/susanoo/application.rb
CHANGED
@@ -1,33 +1,14 @@
|
|
1
1
|
require 'rack'
|
2
2
|
|
3
|
+
# This class contains basic controllers which is needed for Susanoo to
|
4
|
+
# work. Each controller should contains `call` and `build` instance methods.
|
5
|
+
# `call` is responsible to serving an http request base on **Rack** specification
|
6
|
+
# and `build` is responsible to create static files with suitable content. `build`
|
7
|
+
# method gets an argumant which is the generator object that calls build methods.
|
8
|
+
# `generator` is a **Thor** object so you can use **Thor::Actions** in your method.
|
3
9
|
class Susanoo::Application
|
4
|
-
|
5
|
-
class Index < Susanoo::Controller
|
6
|
-
def call(env)
|
7
|
-
template = Tilt.new(File.join(project_root, 'www/index.html.erb'))
|
8
|
-
[200, {'Content-Type' => 'text/html'}, [template.render(self)]]
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
class Assets < Susanoo::Controller
|
13
|
-
def call(env)
|
14
|
-
# [200, {'Content-Type' => 'text/html'}, [environment]]
|
15
|
-
run environment
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class Views < Susanoo::Controller
|
20
|
-
def call(env)
|
21
|
-
path = env['PATH_INFO']
|
22
|
-
if File.exist?(File.join(project_root, "www/views#{path}.erb"))
|
23
|
-
template = Tilt.new(File.join(project_root, "www/views#{path}.erb"))
|
24
|
-
elsif File.exist?(File.join(project_root, "www/views#{path}"))
|
25
|
-
template = Tilt.new(File.join(project_root, "www/views#{path}"))
|
26
|
-
else
|
27
|
-
fail "There is no '#{path}' in 'www/views' directory."
|
28
|
-
end
|
29
|
-
[200, {'Content-Type' => 'text/html'}, [template.render(self)]]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
10
|
end
|
11
|
+
|
12
|
+
require 'susanoo/controllers/index'
|
13
|
+
require 'susanoo/controllers/views'
|
14
|
+
require 'susanoo/controllers/assets'
|
data/lib/susanoo/cli/project.rb
CHANGED
@@ -6,10 +6,13 @@ module Susanoo
|
|
6
6
|
module CLI
|
7
7
|
class Project < Thor
|
8
8
|
|
9
|
+
include ::Thor::Actions
|
10
|
+
|
9
11
|
package_name 'Susanoo'
|
10
12
|
|
11
13
|
map 's' => :server
|
12
14
|
map 'g' => :generate
|
15
|
+
map 'r' => :run_in
|
13
16
|
|
14
17
|
def self.root=(path)
|
15
18
|
@@root = path
|
@@ -33,20 +36,73 @@ module Susanoo
|
|
33
36
|
generator.start options
|
34
37
|
end
|
35
38
|
|
36
|
-
method_option :debug, default:
|
39
|
+
method_option :debug, default: true
|
40
|
+
method_option :built, default: false
|
37
41
|
desc 'server', 'Run development server.'
|
38
42
|
def server(port = 3000)
|
39
43
|
project_root = Susanoo::Project.path
|
44
|
+
|
45
|
+
if options[:built]
|
46
|
+
unless File.directory? File.join(project_root, 'www')
|
47
|
+
error "'www' directory is not present. Build you app first."
|
48
|
+
return
|
49
|
+
end
|
50
|
+
|
51
|
+
app = Rack::Directory.new File.join(project_root, 'www')
|
52
|
+
|
53
|
+
else
|
54
|
+
require File.join(project_root, 'config/routes')
|
55
|
+
# Set global debug flag
|
56
|
+
Susanoo::Project.debug = options[:debug]
|
57
|
+
|
58
|
+
app = ROUTER
|
59
|
+
end
|
60
|
+
|
61
|
+
Rack::Server.start(app: app, server: :thin, Port: port,
|
62
|
+
debug: options[:debug])
|
63
|
+
end
|
64
|
+
|
65
|
+
desc 'build', 'Build the application.'
|
66
|
+
def build
|
67
|
+
project_root = Susanoo::Project.path
|
68
|
+
|
40
69
|
require File.join(project_root, 'config/routes')
|
41
70
|
|
42
|
-
|
43
|
-
|
71
|
+
build_dir = File.join(project_root, 'www')
|
72
|
+
# setup build directory
|
73
|
+
|
74
|
+
remove_file build_dir if File.exist? build_dir
|
75
|
+
# Create the www directory if there isn't
|
76
|
+
# WWW directory will be the build directory
|
77
|
+
# which will contains the static files.
|
78
|
+
#
|
79
|
+
# NOTE: cordova only uses this directory
|
80
|
+
# and we can't change it as far as I know
|
81
|
+
empty_directory build_dir
|
82
|
+
|
83
|
+
Susanoo::StaticGenerator.classes.each do |klass|
|
84
|
+
instance = klass.new
|
85
|
+
if instance.respond_to? :build
|
86
|
+
instance.build(self)
|
87
|
+
else
|
88
|
+
puts "[Warning]: '#{instance.class.to_s}' does not have 'build' method."
|
89
|
+
end
|
90
|
+
end
|
44
91
|
|
45
|
-
|
46
|
-
|
92
|
+
end
|
93
|
+
|
94
|
+
desc 'run PLATFORM', 'Run application on PLATFORM.'
|
95
|
+
def run_in(platform = :android)
|
96
|
+
# Build the project first
|
97
|
+
build
|
98
|
+
|
99
|
+
inside Susanoo::Project.path do
|
100
|
+
system "cordova run #{platform.to_s}"
|
101
|
+
end
|
47
102
|
end
|
48
103
|
|
49
104
|
private
|
105
|
+
# Private ---------------------------
|
50
106
|
|
51
107
|
def camelize(str)
|
52
108
|
str.split("_").each {|s| s.capitalize! }.join("")
|
data/lib/susanoo/controller.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'thor/actions'
|
3
|
+
|
1
4
|
module Susanoo
|
2
5
|
class Controller
|
3
6
|
|
@@ -14,13 +17,19 @@ module Susanoo
|
|
14
17
|
env.logger = Logger.new(STDOUT)
|
15
18
|
end
|
16
19
|
|
17
|
-
@environment.append_path(File.join(@project_root, '
|
18
|
-
@environment.append_path(File.join(@project_root, '
|
19
|
-
@environment.append_path(File.join(@project_root, '
|
20
|
-
@environment.append_path(File.join(@project_root, '
|
21
|
-
@environment.append_path(File.join(@project_root, '
|
20
|
+
@environment.append_path(File.join(@project_root, 'src', 'assets'))
|
21
|
+
@environment.append_path(File.join(@project_root, 'src', 'assets', 'javascripts'))
|
22
|
+
@environment.append_path(File.join(@project_root, 'src', 'assets', 'stylesheets'))
|
23
|
+
@environment.append_path(File.join(@project_root, 'src', 'assets', 'images'))
|
24
|
+
@environment.append_path(File.join(@project_root, 'src', 'assets', 'fonts'))
|
25
|
+
|
26
|
+
Susanoo::StaticGenerator.register self.class
|
27
|
+
end
|
22
28
|
|
29
|
+
def static_compile?
|
30
|
+
@static_compile
|
23
31
|
end
|
24
32
|
|
33
|
+
|
25
34
|
end
|
26
35
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'rack'
|
2
|
+
|
3
|
+
class Susanoo::Application
|
4
|
+
|
5
|
+
# This controller is responsible for serving/building assets files
|
6
|
+
class Assets < Susanoo::Controller
|
7
|
+
def call(env)
|
8
|
+
# Environment is a sprockets environment instance
|
9
|
+
run environment
|
10
|
+
end
|
11
|
+
|
12
|
+
def build(generator)
|
13
|
+
assets = Sprockets::Environment.new
|
14
|
+
assets.append_path File.join(project_root,
|
15
|
+
'src/assets/javascripts')
|
16
|
+
assets.append_path File.join(project_root,
|
17
|
+
'src/assets/stylesheets')
|
18
|
+
|
19
|
+
require 'rake/sprocketstask'
|
20
|
+
require 'uglifier'
|
21
|
+
require 'yui/compressor'
|
22
|
+
require "#{project_root}/config/routes"
|
23
|
+
|
24
|
+
func = lambda do |path, filename|
|
25
|
+
filename !~ %r~assets~ && !%w[.js .css].include?(File.extname(path))
|
26
|
+
end
|
27
|
+
|
28
|
+
precompile = [func, /(?:\/|\\|\A)application\.(css|js)$/]
|
29
|
+
assets.each_logical_path(*precompile).each {|path|
|
30
|
+
case File.extname(path)
|
31
|
+
when '.js'
|
32
|
+
dir = 'javascripts'
|
33
|
+
when '.css'
|
34
|
+
dir = 'stylesheets'
|
35
|
+
end
|
36
|
+
assets[path].write_to "www/assets/#{dir}/#{path}"
|
37
|
+
}
|
38
|
+
|
39
|
+
if File.exist? File.join(project_root,
|
40
|
+
'src/assets/images')
|
41
|
+
generator.say_status 'copy', 'src/assets/images'
|
42
|
+
`cp #{project_root}/src/assets/images #{project_root}/www/assets/images`
|
43
|
+
end
|
44
|
+
|
45
|
+
if File.exist? File.join(project_root,
|
46
|
+
'src/assets/fonts')
|
47
|
+
generator.say_status 'copy', 'src/assets/fonts'
|
48
|
+
`cp #{project_root}/src/assets/fonts #{project_root}/www/assets/fonts`
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'rack'
|
2
|
+
|
3
|
+
class Susanoo::Application
|
4
|
+
|
5
|
+
# This controller is responsible for serving/building index.html file.
|
6
|
+
class Index < Susanoo::Controller
|
7
|
+
def call(env)
|
8
|
+
# Tilt template object
|
9
|
+
template = Tilt.new(File.join(project_root, 'src/index.html.erb'))
|
10
|
+
[200, {'Content-Type' => 'text/html'}, [template.render(self)]]
|
11
|
+
end
|
12
|
+
|
13
|
+
def build(generator)
|
14
|
+
template = Tilt.new(File.join(project_root, 'src/index.html.erb'))
|
15
|
+
data = template.render(self)
|
16
|
+
# God forgive me for hard coding this part
|
17
|
+
generator.create_file 'www/index.html', data
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'rack'
|
2
|
+
|
3
|
+
class Susanoo::Application
|
4
|
+
# This controller is responsible to serving/building angularjs templates.
|
5
|
+
class Views < Susanoo::Controller
|
6
|
+
def call(env)
|
7
|
+
path = env['PATH_INFO']
|
8
|
+
if File.exist?(File.join(project_root, "src/views#{path}.erb"))
|
9
|
+
template = Tilt.new(File.join(project_root, "src/views#{path}.erb"))
|
10
|
+
elsif File.exist?(File.join(project_root, "src/views#{path}"))
|
11
|
+
template = Tilt.new(File.join(project_root, "src/views#{path}"))
|
12
|
+
else
|
13
|
+
fail "There is no '#{path}' in 'src/views' directory."
|
14
|
+
end
|
15
|
+
[200, {'Content-Type' => 'text/html'}, [template.render(self)]]
|
16
|
+
end
|
17
|
+
|
18
|
+
def build(generator)
|
19
|
+
file_pattern = File.join(project_root, 'src/views/**/*.{html,html.erb}')
|
20
|
+
dest_path = File.join(project_root, 'www')
|
21
|
+
src_path = File.join(project_root, 'src')
|
22
|
+
|
23
|
+
Dir.glob(file_pattern) do |file|
|
24
|
+
template = Tilt.new file
|
25
|
+
|
26
|
+
dest_file = File.join(dest_path,
|
27
|
+
file.gsub(src_path, ''))
|
28
|
+
|
29
|
+
# Create missing directories in destination path
|
30
|
+
FileUtils.mkpath dest_path
|
31
|
+
|
32
|
+
# Remove erb extension name from destination path
|
33
|
+
dest_file.gsub!('.erb', '') if File.extname(dest_file) == 'erb'
|
34
|
+
|
35
|
+
# Create the destination file
|
36
|
+
generator.create_file dest_file, template.render(self)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -5,128 +5,96 @@ module Susanoo
|
|
5
5
|
source_root File.expand_path('../../templates/application', __FILE__)
|
6
6
|
|
7
7
|
@@bower_data = {
|
8
|
-
:name =>
|
8
|
+
:name => 'temp_name',
|
9
9
|
:dependencies => {
|
10
10
|
# TODO: Set this to new version of angular
|
11
|
-
angular:
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
11
|
+
angular: '1.2.9',
|
12
|
+
'angular-touch' => '*',
|
13
|
+
'angular-gestures' => '*',
|
14
|
+
'angular-route' => '*',
|
15
|
+
'angular-animate' => '*',
|
16
|
+
'angular-sanitize' => '*',
|
17
|
+
'angular-resource' => '*',
|
18
|
+
'angular-gettext' => '*',
|
19
|
+
'jquery' => '*',
|
20
|
+
'lodash' => '*',
|
21
21
|
},
|
22
22
|
}
|
23
23
|
|
24
|
-
@@js_files = [
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
24
|
+
@@js_files = ['jquery/dist/jquery',
|
25
|
+
'lodash/dist/lodash',
|
26
|
+
'angular/angular',
|
27
|
+
'angular-animate/angular-animate',
|
28
|
+
'angular-route/angular-route',
|
29
|
+
'angular-sanitize/angular-sanitize',
|
30
|
+
'angular-touch/angular-touch',
|
31
|
+
'angular-gestures/gestures',
|
32
|
+
'angular-gettext/dist/angular-gettext',
|
33
|
+
'angular-resource/angular-resource',
|
34
34
|
]
|
35
35
|
@@js_dirs = []
|
36
36
|
@@css_files = []
|
37
37
|
@@css_dirs = []
|
38
38
|
|
39
|
-
@@is_foundation = false
|
40
|
-
@@is_ionic = false
|
41
|
-
|
42
39
|
def susanoo_files
|
43
|
-
template
|
44
|
-
template
|
45
|
-
directory
|
46
|
-
template
|
47
|
-
template
|
48
|
-
end
|
49
|
-
|
50
|
-
def ask_for_framework
|
51
|
-
@@bower_data[:name] = Susanoo::Project.folder_name
|
52
|
-
|
53
|
-
if yes? "Do you need Zurb Foundation? (y/n)"
|
54
|
-
# installing Zurb Foundation
|
55
|
-
@@bower_data[:dependencies][:foundation] = "*"
|
56
|
-
|
57
|
-
@@css_dirs << "foundation/scss"
|
58
|
-
@@js_files.unshift "modernizr/modernizr"
|
59
|
-
@@js_files.unshift "foundation/js/foundation"
|
60
|
-
@@js_dirs << "foundation/js/foundation"
|
61
|
-
@@is_foundation = true
|
62
|
-
return
|
63
|
-
end
|
64
|
-
|
65
|
-
if yes? "What about ionic framework? (y/n)"
|
66
|
-
# Install ionic framework
|
67
|
-
@@bower_data[:dependencies][:ionic] = "*"
|
68
|
-
@@js_files.unshift "ionic/dist/js/ionic"
|
69
|
-
@@js_files << "angular-ui-router"
|
70
|
-
@@js_files << "ionic/dist/js/ionic-angular"
|
71
|
-
@@css_dirs.concat(["ionic/scss"])
|
72
|
-
# Unfortunately angular-ui-router bower package did not provide current
|
73
|
-
# So we have to install it manually
|
74
|
-
template "www/assets/javascripts/lib/angular-ui-router.js", "#{Susanoo::Project.folder_name}/www/assets/javascripts/lib/angular-ui-router.js"
|
75
|
-
@@is_ionic = true
|
76
|
-
end
|
40
|
+
template 'Gemfile', "#{Susanoo::Project.folder_name}/Gemfile"
|
41
|
+
template 'Rakefile', "#{Susanoo::Project.folder_name}/Rakefile"
|
42
|
+
directory 'config', "#{Susanoo::Project.folder_name}/config"
|
43
|
+
template '.gitignore', "#{Susanoo::Project.folder_name}/.gitignore"
|
44
|
+
template 'bin/susanoo', "#{Susanoo::Project.folder_name}/bin/susanoo"
|
77
45
|
end
|
78
46
|
|
79
47
|
def bower_install
|
80
|
-
require
|
48
|
+
require 'json'
|
81
49
|
inside Susanoo::Project.folder_name do
|
82
|
-
inside
|
83
|
-
create_file
|
50
|
+
inside 'src' do
|
51
|
+
create_file 'bower.json' do
|
84
52
|
JSON.pretty_generate(@@bower_data)
|
85
53
|
end
|
86
|
-
system
|
54
|
+
system 'bower install'
|
87
55
|
end
|
88
56
|
end
|
89
57
|
end
|
90
58
|
|
91
59
|
def install_templates
|
92
|
-
copy_file
|
93
|
-
template
|
94
|
-
template
|
95
|
-
template
|
96
|
-
|
97
|
-
|
98
|
-
create_file "#{Susanoo::Project.folder_name}/
|
99
|
-
|
60
|
+
copy_file 'src/index.html.erb', "#{Susanoo::Project.folder_name}/src/index.html.erb"
|
61
|
+
template 'src/views/main.html', "#{Susanoo::Project.folder_name}/src/views/main.html"
|
62
|
+
template 'src/assets/javascripts/application.js', "#{Susanoo::Project.folder_name}/src/assets/javascripts/application.js"
|
63
|
+
template 'src/assets/javascripts/functions.js', "#{Susanoo::Project.folder_name}/src/assets/javascripts/functions.js"
|
64
|
+
copy_file 'src/assets/javascripts/variables.js', "#{Susanoo::Project.folder_name}/src/assets/javascripts/variables.js.erb"
|
65
|
+
|
66
|
+
create_file "#{Susanoo::Project.folder_name}/src/assets/javascripts/modules/.keep" do
|
67
|
+
' '
|
100
68
|
end
|
101
|
-
template
|
102
|
-
template
|
103
|
-
template
|
104
|
-
template
|
69
|
+
template 'src/assets/javascripts/app.js', "#{Susanoo::Project.folder_name}/src/assets/javascripts/app.js"
|
70
|
+
template 'src/assets/javascripts/main.js', "#{Susanoo::Project.folder_name}/src/assets/javascripts/main.js"
|
71
|
+
template 'src/assets/stylesheets/application.css', "#{Susanoo::Project.folder_name}/src/assets/stylesheets/application.css"
|
72
|
+
template 'src/assets/stylesheets/main.scss', "#{Susanoo::Project.folder_name}/src/assets/stylesheets/main.scss"
|
105
73
|
|
106
|
-
@source_paths << File.expand_path("#{Susanoo::Project.folder_name}/
|
74
|
+
@source_paths << File.expand_path("#{Susanoo::Project.folder_name}/src/bower_components/")
|
107
75
|
@@js_files.each do |file|
|
108
|
-
unless file ==
|
109
|
-
copy_file "#{file}.js", "#{Susanoo::Project.folder_name}/
|
76
|
+
unless file == 'angular-ui-router'
|
77
|
+
copy_file "#{file}.js", "#{Susanoo::Project.folder_name}/src/assets/javascripts/lib/#{file}.js"
|
110
78
|
end
|
111
79
|
end
|
112
80
|
|
113
81
|
@@js_dirs.each do |dir|
|
114
|
-
directory dir, "#{Susanoo::Project.folder_name}/
|
82
|
+
directory dir, "#{Susanoo::Project.folder_name}/src/assets/javascripts/lib/#{dir}"
|
115
83
|
end
|
116
84
|
|
117
85
|
@@css_files.each do |file|
|
118
|
-
copy_file "#{file}.scss", "#{Susanoo::Project.folder_name}/
|
86
|
+
copy_file "#{file}.scss", "#{Susanoo::Project.folder_name}/src/assets/stylesheets/lib/#{file}.scss"
|
119
87
|
end
|
120
88
|
|
121
89
|
@@css_dirs.each do |dir|
|
122
|
-
directory dir, "#{Susanoo::Project.folder_name}/
|
90
|
+
directory dir, "#{Susanoo::Project.folder_name}/src/assets/stylesheets/lib/#{dir}"
|
123
91
|
end
|
124
92
|
|
125
93
|
end
|
126
94
|
|
127
95
|
def remove_temp
|
128
|
-
if yes?
|
129
|
-
remove_dir "#{Susanoo::Project.folder_name}/
|
96
|
+
if yes? 'Do want to remove unneccessary files? (y/n)'.colorize(:red)
|
97
|
+
remove_dir "#{Susanoo::Project.folder_name}/src/bower_components"
|
130
98
|
end
|
131
99
|
end
|
132
100
|
|
@@ -136,18 +104,10 @@ module Susanoo
|
|
136
104
|
|
137
105
|
private
|
138
106
|
|
139
|
-
def is_foundation?
|
140
|
-
@@is_foundation
|
141
|
-
end
|
142
|
-
|
143
107
|
def js_dirs
|
144
108
|
@@js_dirs
|
145
109
|
end
|
146
110
|
|
147
|
-
def is_ionic?
|
148
|
-
@@is_ionic
|
149
|
-
end
|
150
|
-
|
151
111
|
def js_files
|
152
112
|
@@js_files
|
153
113
|
end
|
data/lib/susanoo/tasks.rb
CHANGED
@@ -8,3 +8,22 @@ module Susanoo
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
11
|
+
|
12
|
+
require 'rake'
|
13
|
+
require 'rake/sprocketstask'
|
14
|
+
require 'uglifier'
|
15
|
+
require 'yui/compressor'
|
16
|
+
|
17
|
+
assets = Sprockets::Environment.new
|
18
|
+
assets.append_path File.join(Dir.pwd,
|
19
|
+
'src/assets/javascripts')
|
20
|
+
assets.append_path File.join(Dir.pwd,
|
21
|
+
'src/assets/stylesheets')
|
22
|
+
|
23
|
+
Rake::SprocketsTask.new do |t|
|
24
|
+
t.environment = assets
|
25
|
+
t.output = File.join(Dir.pwd, 'www/assets/')
|
26
|
+
t.assets = %w(application.css application.js)
|
27
|
+
t.environment.css_compressor = YUI::CssCompressor.new
|
28
|
+
t.environment.js_compressor = Uglifier.new(:mangle => true)
|
29
|
+
end.define
|
@@ -3,23 +3,34 @@ require "bundler/setup"
|
|
3
3
|
Bundler.require
|
4
4
|
|
5
5
|
desc "Compile assets into statics folder"
|
6
|
-
task :
|
6
|
+
task :assets1 do
|
7
7
|
require "sprockets"
|
8
8
|
#require "rake/sprocketstask"
|
9
9
|
|
10
10
|
assets = Sprockets::Environment.new
|
11
|
-
assets.append_path "
|
12
|
-
assets.append_path "
|
11
|
+
assets.append_path "src/assets/javascripts"
|
12
|
+
assets.append_path "src/assets/stylesheets"
|
13
13
|
|
14
|
-
Susanoo::Assets.path = ""
|
14
|
+
#Susanoo::Assets.path = ""
|
15
15
|
LOOSE_APP_ASSETS = lambda do |path, filename|
|
16
|
+
puts ">>>>>>>>>>>>>>>>>>>> ", filename, filename !~ %r~assets~ && !%w[.js .css].include?(File.extname(path))
|
16
17
|
filename !~ %r~assets~ && !%w[.js .css].include?(File.extname(path))
|
17
18
|
end
|
19
|
+
puts ">>>>>"
|
18
20
|
precompile = [LOOSE_APP_ASSETS, /(?:\/|\\|\A)application\.(css|js)$/]
|
19
21
|
assets.each_logical_path(*precompile).each {|path|
|
20
|
-
|
22
|
+
puts "<$$$$$$ ", File.extname(path)
|
23
|
+
dir = ''
|
24
|
+
case File.extname(path)
|
25
|
+
when '.js'
|
26
|
+
dir = 'javascripts'
|
27
|
+
when '.css'
|
28
|
+
dir = 'stylesheets'
|
29
|
+
end
|
30
|
+
puts "<<<<<<<<<<<<<<<< ", dir
|
31
|
+
assets[path].write_to "www/assets/#{dir}/#{path}"
|
21
32
|
}
|
22
33
|
|
23
|
-
system "cp www/assets/images www/statics/images -rv"
|
24
|
-
system "cp www/assets/fonts www/statics/fonts -rv"
|
34
|
+
#system "cp www/assets/images www/statics/images -rv"
|
35
|
+
#system "cp www/assets/fonts www/statics/fonts -rv"
|
25
36
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// Main Application Module
|
2
2
|
// -----------------------
|
3
3
|
// This module is the start point of application.
|
4
|
-
var App = angular.module("Application", ["ngTouch", "ngAnimate", "ngRoute", "gettext", "angular-gestures"
|
4
|
+
var App = angular.module("Application", ["ngTouch", "ngAnimate", "ngRoute", "gettext", "angular-gestures"]);
|
5
5
|
|
6
6
|
// configuration section ---------------------------
|
7
7
|
App.config(["$routeProvider", function($routeProvider){
|
File without changes
|
File without changes
|
data/lib/susanoo/templates/application/{www → src}/assets/javascripts/lib/angular-ui-router.js
RENAMED
File without changes
|
@@ -4,9 +4,12 @@ document.addEventListener("deviceready", onDeviceReady, false);
|
|
4
4
|
|
5
5
|
// Device Ready event handler
|
6
6
|
function onDeviceReady() {
|
7
|
-
<% if is_foundation? %>
|
8
|
-
$(document).foundation();
|
9
|
-
<% end %>
|
10
7
|
// Bootstrap and run angular application
|
11
8
|
angular.bootstrap(document, ["Application"]);
|
12
9
|
}
|
10
|
+
$(function(){
|
11
|
+
if (window.debug === true) {
|
12
|
+
console.log("Run in debug mode.");
|
13
|
+
onDeviceReady();
|
14
|
+
}
|
15
|
+
});
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/susanoo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: susanoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sameer Rahmani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -196,16 +196,16 @@ dependencies:
|
|
196
196
|
name: sass
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
198
198
|
requirements:
|
199
|
-
- -
|
199
|
+
- - '='
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version:
|
201
|
+
version: 3.2.15
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
|
-
- -
|
206
|
+
- - '='
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
208
|
+
version: 3.2.15
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: tilt
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -243,12 +243,16 @@ files:
|
|
243
243
|
- lib/susanoo/cli/global.rb
|
244
244
|
- lib/susanoo/cli/project.rb
|
245
245
|
- lib/susanoo/controller.rb
|
246
|
+
- lib/susanoo/controllers/assets.rb
|
247
|
+
- lib/susanoo/controllers/index.rb
|
248
|
+
- lib/susanoo/controllers/views.rb
|
246
249
|
- lib/susanoo/generators.rb
|
247
250
|
- lib/susanoo/generators/cordova.rb
|
248
251
|
- lib/susanoo/generators/frameworks.rb
|
249
252
|
- lib/susanoo/generators/ng_module.rb
|
250
253
|
- lib/susanoo/generators/scaffold.rb
|
251
254
|
- lib/susanoo/project.rb
|
255
|
+
- lib/susanoo/static_generator.rb
|
252
256
|
- lib/susanoo/tasks.rb
|
253
257
|
- lib/susanoo/tasks/assets.rake
|
254
258
|
- lib/susanoo/tasks/compile.rake
|
@@ -259,16 +263,16 @@ files:
|
|
259
263
|
- lib/susanoo/templates/application/Rakefile
|
260
264
|
- lib/susanoo/templates/application/bin/susanoo
|
261
265
|
- lib/susanoo/templates/application/config/routes.rb
|
262
|
-
- lib/susanoo/templates/application/
|
263
|
-
- lib/susanoo/templates/application/
|
264
|
-
- lib/susanoo/templates/application/
|
265
|
-
- lib/susanoo/templates/application/
|
266
|
-
- lib/susanoo/templates/application/
|
267
|
-
- lib/susanoo/templates/application/
|
268
|
-
- lib/susanoo/templates/application/
|
269
|
-
- lib/susanoo/templates/application/
|
270
|
-
- lib/susanoo/templates/application/
|
271
|
-
- lib/susanoo/templates/application/
|
266
|
+
- lib/susanoo/templates/application/src/assets/javascripts/app.js
|
267
|
+
- lib/susanoo/templates/application/src/assets/javascripts/application.js
|
268
|
+
- lib/susanoo/templates/application/src/assets/javascripts/functions.js
|
269
|
+
- lib/susanoo/templates/application/src/assets/javascripts/lib/angular-ui-router.js
|
270
|
+
- lib/susanoo/templates/application/src/assets/javascripts/main.js
|
271
|
+
- lib/susanoo/templates/application/src/assets/javascripts/variables.js
|
272
|
+
- lib/susanoo/templates/application/src/assets/stylesheets/application.css
|
273
|
+
- lib/susanoo/templates/application/src/assets/stylesheets/main.scss
|
274
|
+
- lib/susanoo/templates/application/src/index.html.erb
|
275
|
+
- lib/susanoo/templates/application/src/views/main.html
|
272
276
|
- lib/susanoo/version.rb
|
273
277
|
homepage: http://github.com/lxsameer/Susanoo
|
274
278
|
licenses:
|