susanoo 0.4.1 → 0.5.0

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.
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