susanoo 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: feb35da8654f6e9da115613dcc34d765ee366e58
4
- data.tar.gz: f352c4939a2caf43e8727813e116aff11d71d638
3
+ metadata.gz: 42930bc6bb2262172a0c6c7b6bc83cdbab6464af
4
+ data.tar.gz: d10a8200f2102779829d6d8626fce76fbae02328
5
5
  SHA512:
6
- metadata.gz: dc95c529977db0c1cd06a5783fe6af6bbebbc170e85d4803aa63b5e6305dc99812984ef5d6724abf25d538a31cc6b26f62c5b9a2dc58cd5fc7a00fe9956905e5
7
- data.tar.gz: b8c5ba8968ca373ee030b66085b6091a55cecd3d946fcfc64477e2855256be81a15866bc7b27788d583de6d92411f4a594db598ad93d72d10178b1450317c4d6
6
+ metadata.gz: a2752adf74a8c0374a3e6e5c6d764eaeece823efa17f2136a471d56ab466b9e29357f5b21b1d34048a8324d086311518b1489ac588ab3da632d551783184dede
7
+ data.tar.gz: 80b20e10c4164319469b6d272fb20a2294afa0d0c643eb03010f0564dd3ec5645cb3353ae5e621cd157641c8628fce90208bf4af05609daaf83c2ebcf62c9690
data/Gemfile CHANGED
@@ -2,5 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in Susanoo.gemspec
4
4
  gemspec
5
-
6
- gem "pry"
@@ -4,23 +4,34 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'susanoo/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "susanoo"
7
+ spec.name = 'susanoo'
8
8
  spec.version = Susanoo::VERSION
9
- spec.authors = ["Sameer Rahmani"]
10
- spec.email = ["lxsameer@gnu.org"]
9
+ spec.authors = ['Sameer Rahmani']
10
+ spec.email = ['lxsameer@gnu.org']
11
11
  spec.description = %q{ Develop mobile application using apache cordova and ruby utilities. }
12
12
  spec.summary = %q{ Develop mobile application using apache cordova and ruby utilities. Take advantage of ruby gems to rapidly develop mobile applications}
13
- spec.homepage = "http://github.com/lxsameer/Susanoo"
14
- spec.license = "GPL-2"
13
+ spec.homepage = 'http://github.com/lxsameer/Susanoo'
14
+ spec.license = 'GPL-2'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
23
- spec.add_dependency "thor"
24
- spec.add_dependency "colorize"
21
+ spec.add_development_dependency 'bundler', '~> 1.3'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'pry'
25
24
 
25
+ spec.add_dependency 'thor'
26
+ spec.add_dependency 'thin'
27
+ spec.add_dependency 'colorize'
28
+ spec.add_dependency 'lotus-router'
29
+ spec.add_dependency 'rack'
30
+ spec.add_dependency 'rack-rewrite'
31
+ spec.add_dependency 'uglifier', '~>2.1.1'
32
+ spec.add_dependency 'yui-compressor', '~>0.9.6'
33
+ spec.add_dependency 'sprockets', '~>2.11.0'
34
+ spec.add_dependency 'sprockets-helpers'
35
+ spec.add_dependency 'sass'
36
+ spec.add_dependency 'tilt'
26
37
  end
@@ -1,9 +1,16 @@
1
- require "susanoo/version"
2
- require "colorize"
1
+ require 'susanoo/version'
2
+ require 'erb'
3
+ require 'sprockets'
4
+ require 'sprockets-helpers'
5
+ require 'rack/rewrite'
6
+ require 'tilt'
7
+ require 'colorize'
8
+ require 'lotus/router'
3
9
 
4
10
  module Susanoo
5
11
  end
6
- require 'susanoo/application'
7
- require 'susanoo/assets'
12
+
13
+ require 'susanoo/controller'
8
14
  require 'susanoo/project'
9
15
  require 'susanoo/cli'
16
+ require 'susanoo/application'
@@ -1,14 +1,33 @@
1
- module Susanoo
2
- class Application
3
- @@debug = false
1
+ require 'rack'
4
2
 
5
- def self.debug?
6
- @@debug
3
+ 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)]]
7
9
  end
10
+ end
8
11
 
9
- def self.debug=(value)
10
- @@debug = value
12
+ class Assets < Susanoo::Controller
13
+ def call(env)
14
+ # [200, {'Content-Type' => 'text/html'}, [environment]]
15
+ run environment
11
16
  end
17
+ end
12
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
13
31
  end
32
+
14
33
  end
@@ -6,16 +6,18 @@ module Susanoo
6
6
  module CLI
7
7
  class Project < Thor
8
8
 
9
- package_name "Susanoo"
9
+ package_name 'Susanoo'
10
+
11
+ map 's' => :server
12
+ map 'g' => :generate
10
13
 
11
14
  def self.root=(path)
12
15
  @@root = path
13
16
  Susanoo::Project.path = path
14
17
  end
15
18
 
16
- method_option :aliases => "g"
17
- desc "generate GENERATOR [options]", "Run the given generator"
18
- def generate(generator_name=nil, *options)
19
+ desc 'generate GENERATOR [options]', 'Run the given generator'
20
+ def generate(generator_name = nil, *options)
19
21
  if generator_name.nil?
20
22
  print_generator_list
21
23
  return
@@ -24,52 +26,24 @@ module Susanoo
24
26
  begin
25
27
  generator = Susanoo::Generators.const_get(camelize(generator_name.downcase))
26
28
  rescue NameError
27
- print "[Error]:".colorize(:red)
29
+ print '[Error]:'.colorize(:red)
28
30
  say "Generator `#{generator}` not found."
29
31
  exit 1
30
32
  end
31
33
  generator.start options
32
34
  end
33
35
 
34
- desc "server", "Run development server."
35
- def server(port=6000)
36
- require 'sprockets'
37
- require 'rack'
38
- require 'rack/rewrite'
39
-
40
- root = Dir.getwd
41
- #Rack::Handler::WEBrick.run :Port => 3000, :DocumentRoot => root
42
- server = Rack::Builder.app do
43
- map "/statics" do
44
- project_root = Dir.getwd
36
+ method_option :debug, default: false
37
+ desc 'server', 'Run development server.'
38
+ def server(port = 3000)
39
+ project_root = Susanoo::Project.path
40
+ require File.join(project_root, 'config/routes')
45
41
 
46
- assets = Sprockets::Environment.new(project_root) do |env|
47
- env.logger = Logger.new(STDOUT)
48
- end
42
+ # Set global debug flag
43
+ Susanoo::Project.debug = options[:debug]
49
44
 
50
- assets.append_path(File.join(project_root, 'www', 'assets'))
51
- assets.append_path(File.join(project_root, 'www', 'assets', 'javascripts'))
52
- assets.append_path(File.join(project_root, 'www', 'assets', 'stylesheets'))
53
- assets.append_path(File.join(project_root, 'www', 'assets', 'images'))
54
-
55
- run assets
56
- end
57
-
58
- map "/" do
59
- use Rack::Static, :urls => [""], :index => "index.html"
60
- run lambda { |env|
61
- [
62
- 200,
63
- {
64
- 'Content-Type' => 'text/html',
65
- 'Cache-Control' => 'public, max-age=86400'
66
- },
67
- File.open('www/index.html', File::RDONLY)
68
- ]
69
- }
70
- end
71
- end
72
- Rack::Handler::WEBrick.run(server, Port: port)
45
+ app = Rack::Server.start(app: ROUTER, server: :thin, Port: port,
46
+ debug: options[:debug])
73
47
  end
74
48
 
75
49
  private
@@ -0,0 +1,26 @@
1
+ module Susanoo
2
+ class Controller
3
+
4
+ include Sprockets::Helpers
5
+
6
+ attr_accessor :environment
7
+ attr_accessor :debug
8
+ attr_accessor :project_root
9
+
10
+ def initialize
11
+ @project_root = Susanoo::Project.path
12
+
13
+ @environment = Sprockets::Environment.new(@project_root) do |env|
14
+ env.logger = Logger.new(STDOUT)
15
+ end
16
+
17
+ @environment.append_path(File.join(@project_root, 'www', 'assets'))
18
+ @environment.append_path(File.join(@project_root, 'www', 'assets', 'javascripts'))
19
+ @environment.append_path(File.join(@project_root, 'www', 'assets', 'stylesheets'))
20
+ @environment.append_path(File.join(@project_root, 'www', 'assets', 'images'))
21
+ @environment.append_path(File.join(@project_root, 'www', 'assets', 'fonts'))
22
+
23
+ end
24
+
25
+ end
26
+ end
@@ -42,7 +42,7 @@ module Susanoo
42
42
  def susanoo_files
43
43
  template "Gemfile", "#{Susanoo::Project.folder_name}/Gemfile"
44
44
  template "Rakefile", "#{Susanoo::Project.folder_name}/Rakefile"
45
- template "config.ru", "#{Susanoo::Project.folder_name}/config.ru"
45
+ directory "config", "#{Susanoo::Project.folder_name}/config"
46
46
  template ".gitignore", "#{Susanoo::Project.folder_name}/.gitignore"
47
47
  template "bin/susanoo", "#{Susanoo::Project.folder_name}/bin/susanoo"
48
48
  end
@@ -89,7 +89,7 @@ module Susanoo
89
89
  end
90
90
 
91
91
  def install_templates
92
- template "www/index.html", "#{Susanoo::Project.folder_name}/www/index.html"
92
+ template "www/index.html.erb", "#{Susanoo::Project.folder_name}/www/index.html.erb"
93
93
  template "www/views/main.html", "#{Susanoo::Project.folder_name}/www/views/main.html"
94
94
  template "www/assets/javascripts/application.js", "#{Susanoo::Project.folder_name}/www/assets/javascripts/application.js"
95
95
  template "www/assets/javascripts/functions.js", "#{Susanoo::Project.folder_name}/www/assets/javascripts/functions.js"
@@ -5,6 +5,7 @@ module Susanoo
5
5
  attr_accessor :project_name
6
6
  attr_accessor :package_name
7
7
  attr_accessor :path
8
+ attr_accessor :debug
8
9
  end
9
10
  end
10
11
  end
@@ -18,7 +18,6 @@ Android/gen/
18
18
  Android/assets/
19
19
 
20
20
  # generated files
21
- bin/
22
21
  gen/
23
22
 
24
23
  # Local configuration file (sdk path, etc)
@@ -1,13 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'susanoo', '~><%= Susanoo::VERSION %>'
4
- gem 'rake'
5
- gem 'rack'
6
- gem 'rack-rewrite'
7
- gem 'thin'
8
- gem 'uglifier', '>=2.1.1'
9
- gem 'yui-compressor', '>=0.9.6'
10
-
11
- gem 'sprockets', '>=2.2.0'
12
- gem 'sass'
3
+ gem 'susanoo', '~>0.5.0', path: '/home/lxsameer/src/Yellowen/Susanoo'
13
4
  gem 'pry'
5
+ gem 'rerun'
6
+ gem 'rack'
@@ -0,0 +1,8 @@
1
+ if ENV.include? "SUSANOO_HOME"
2
+ $:.unshift ENV["SUSANOO_HOME"]
3
+ end
4
+
5
+ require 'susanoo'
6
+
7
+ Susanoo::CLI::Project.root = File.expand_path("../../", __FILE__)
8
+ Susanoo::CLI::Project.start
@@ -0,0 +1,5 @@
1
+ ROUTER = Lotus::Router.new do
2
+ get '/', to: Susanoo::Application::Index
3
+ get '/views/*', to: Susanoo::Application::Views
4
+ get '/assets/*', to: Susanoo::Application::Assets.new.environment
5
+ end
@@ -5,13 +5,16 @@
5
5
  <meta name="format-detection" content="telephone=no" />
6
6
  <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
7
7
  <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
8
- <link href="statics/application.css" rel="stylesheet">
8
+
9
+ <%= stylesheet_tag 'application', expand: Susanoo::Project.debug %>
10
+
9
11
  <title>Hello World</title>
10
12
  </head>
11
13
  <body>
12
14
  <div ng-view>
13
15
  </div>
14
16
  <script type="text/javascript" src="cordova.js"></script>
15
- <script type="text/javascript" src="statics/application.js"></script>
17
+
18
+ <%= javascript_tag 'application', expand: Susanoo::Project.debug %>
16
19
  </body>
17
20
  </html>
@@ -1,3 +1,3 @@
1
1
  module Susanoo
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
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.1
4
+ version: 0.5.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-06-19 00:00:00.000000000 Z
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: thor
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +66,20 @@ dependencies:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: thin
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: colorize
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +94,132 @@ dependencies:
66
94
  - - ">="
67
95
  - !ruby/object:Gem::Version
68
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: lotus-router
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rack
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rack-rewrite
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: uglifier
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 2.1.1
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 2.1.1
153
+ - !ruby/object:Gem::Dependency
154
+ name: yui-compressor
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.9.6
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.9.6
167
+ - !ruby/object:Gem::Dependency
168
+ name: sprockets
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 2.11.0
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 2.11.0
181
+ - !ruby/object:Gem::Dependency
182
+ name: sprockets-helpers
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: sass
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: tilt
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
69
223
  description: " Develop mobile application using apache cordova and ruby utilities. "
70
224
  email:
71
225
  - lxsameer@gnu.org
@@ -88,6 +242,7 @@ files:
88
242
  - lib/susanoo/cli.rb
89
243
  - lib/susanoo/cli/global.rb
90
244
  - lib/susanoo/cli/project.rb
245
+ - lib/susanoo/controller.rb
91
246
  - lib/susanoo/generators.rb
92
247
  - lib/susanoo/generators/cordova.rb
93
248
  - lib/susanoo/generators/frameworks.rb
@@ -103,7 +258,7 @@ files:
103
258
  - lib/susanoo/templates/application/Gemfile
104
259
  - lib/susanoo/templates/application/Rakefile
105
260
  - lib/susanoo/templates/application/bin/susanoo
106
- - lib/susanoo/templates/application/config.ru
261
+ - lib/susanoo/templates/application/config/routes.rb
107
262
  - lib/susanoo/templates/application/www/assets/javascripts/app.js
108
263
  - lib/susanoo/templates/application/www/assets/javascripts/application.js
109
264
  - lib/susanoo/templates/application/www/assets/javascripts/functions.js
@@ -112,7 +267,7 @@ files:
112
267
  - lib/susanoo/templates/application/www/assets/javascripts/variables.js
113
268
  - lib/susanoo/templates/application/www/assets/stylesheets/application.css
114
269
  - lib/susanoo/templates/application/www/assets/stylesheets/main.scss
115
- - lib/susanoo/templates/application/www/index.html
270
+ - lib/susanoo/templates/application/www/index.html.erb
116
271
  - lib/susanoo/templates/application/www/views/main.html
117
272
  - lib/susanoo/version.rb
118
273
  homepage: http://github.com/lxsameer/Susanoo
@@ -1,32 +0,0 @@
1
- require 'sprockets'
2
- require 'rack/rewrite'
3
-
4
- project_root = File.expand_path(File.dirname(__FILE__))
5
-
6
- assets = Sprockets::Environment.new(project_root) do |env|
7
- env.logger = Logger.new(STDOUT)
8
- end
9
-
10
- assets.append_path(File.join(project_root, 'www', 'assets'))
11
- assets.append_path(File.join(project_root, 'www', 'assets', 'javascripts'))
12
- assets.append_path(File.join(project_root, 'www', 'assets', 'stylesheets'))
13
- assets.append_path(File.join(project_root, 'www', 'assets', 'images'))
14
- assets.append_path(File.join(project_root, 'www', 'assets', 'fonts'))
15
-
16
- map "/statics" do
17
- run assets
18
- end
19
-
20
- map "/" do
21
- use Rack::Static, :root => "www", :urls => [""], :index => "index.html"
22
- run lambda { |env|
23
- [
24
- 200,
25
- {
26
- 'Content-Type' => 'text/html',
27
- 'Cache-Control' => 'public, max-age=86400'
28
- },
29
- aFile.open('www/index.html', File::RDONLY)
30
- ]
31
- }
32
- end