modularize_sinatra 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
data/README.md
CHANGED
@@ -1,24 +1,78 @@
|
|
1
|
-
#
|
1
|
+
# Modularize Sinatra
|
2
2
|
|
3
|
-
|
3
|
+
Modularized Code Generator for Sinatra. Gem available on [rubygems](https://rubygems.org/gems/modularize_sinatra)
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
7
|
+
$ gem install modularize_sinatra
|
8
8
|
|
9
|
-
|
9
|
+
## Usage
|
10
10
|
|
11
|
-
|
11
|
+
To generate the skeleton structure with custom controller:
|
12
12
|
|
13
|
-
|
13
|
+
modularize_sinatra myapp -C user
|
14
14
|
|
15
|
-
|
15
|
+
To Start the app:
|
16
|
+
|
17
|
+
rackup -p 9000
|
16
18
|
|
17
|
-
|
19
|
+
It will generate a default index page for you, which can be accessed at:
|
20
|
+
|
21
|
+
http://localhost:9292/
|
18
22
|
|
19
|
-
|
23
|
+
You'll get the following directory structure with above command:
|
24
|
+
|
25
|
+
.
|
26
|
+
|-- Gemfile
|
27
|
+
|-- Gemfile.lock
|
28
|
+
|-- Rakefile
|
29
|
+
|-- config
|
30
|
+
| `-- environment.rb
|
31
|
+
|-- config.ru
|
32
|
+
|-- lib
|
33
|
+
| |-- app.rb
|
34
|
+
| |-- controllers
|
35
|
+
| | `-- user.rb
|
36
|
+
| `-- views
|
37
|
+
| `-- users
|
38
|
+
| `-- index.erb
|
39
|
+
|-- my_app.rb
|
40
|
+
|-- public
|
41
|
+
|-- script
|
42
|
+
| |-- destroy
|
43
|
+
| `-- generate
|
44
|
+
|-- spec
|
45
|
+
| |-- controllers
|
46
|
+
| | `-- controller_spec.rb
|
47
|
+
| |-- spec_helper.rb
|
48
|
+
| `-- support
|
49
|
+
`-- tmp
|
50
|
+
|
51
|
+
Without the `-C` paramter( **not recommended** ), it will generate a default controller for you called `Ping` and will create the following route:
|
52
|
+
|
53
|
+
GET http://localhost:9292/ping
|
54
|
+
> Ahoy! from Myapp 2013-04-07 00:33:58 +0530
|
20
55
|
|
21
|
-
|
56
|
+
**You can remove the defult scripts `destroy, generate` generated in script folder.**
|
57
|
+
|
58
|
+
Currently `rspec` is configured by default. Hope to release support for other frameworks in future versions.
|
59
|
+
|
60
|
+
To Run specs:
|
61
|
+
|
62
|
+
bundle exec rake
|
63
|
+
|
64
|
+
## TODO
|
65
|
+
|
66
|
+
1. Support for active record.
|
67
|
+
2. More testing frameworks.
|
68
|
+
3. Remove default scripts generated.
|
69
|
+
4. Refactoring
|
70
|
+
|
71
|
+
## Authors
|
72
|
+
|
73
|
+
* [about.me](http://about.me/goyalankit)
|
74
|
+
* [@_goyalankit](http://twitter.com/_goyalankit)
|
75
|
+
* [more projects](http://goyalankit.com/labs)
|
22
76
|
|
23
77
|
## Contributing
|
24
78
|
|
@@ -27,3 +81,4 @@ TODO: Write usage instructions here
|
|
27
81
|
3. Commit your changes (`git commit -am 'Added some feature'`)
|
28
82
|
4. Push to the branch (`git push origin my-new-feature`)
|
29
83
|
5. Create new Pull Request
|
84
|
+
|
@@ -43,6 +43,8 @@ class ModularizeSinatraGenerator < RubiGen::Base
|
|
43
43
|
else
|
44
44
|
m.template "lib/controllers/controller.rb", "lib/controllers/#{controller_name}.rb"
|
45
45
|
m.template "spec/controllers/controller_spec.rb", "spec/controllers/controller_spec.rb"
|
46
|
+
m.directory "lib/views/#{controller_name.pluralize}"
|
47
|
+
m.template "lib/views/index.erb", "lib/views/#{controller_name.pluralize}/index.erb"
|
46
48
|
end
|
47
49
|
|
48
50
|
m.dependency "install_rubigen_scripts", [destination_root, 'modularize_sinatra'], :shebang => options[:shebang], :collision => :force
|
@@ -79,6 +81,7 @@ EOS
|
|
79
81
|
BASEDIRS = %w(
|
80
82
|
config
|
81
83
|
lib/controllers
|
84
|
+
lib/views
|
82
85
|
public
|
83
86
|
spec/controllers
|
84
87
|
spec/support
|
@@ -1,8 +1,12 @@
|
|
1
1
|
class <%= module_name %>::Controllers::<%= controller_module_name %> < Sinatra::Base
|
2
2
|
|
3
|
-
#
|
4
|
-
|
5
|
-
|
3
|
+
#set view directory as /views/<%= controller_name.pluralize %> for this controller views
|
4
|
+
set :views, File.join(root, '../views/<%= controller_name.pluralize %>' )
|
5
|
+
|
6
|
+
# add your own routes TODO
|
7
|
+
get '/' do
|
8
|
+
erb :index
|
9
|
+
end
|
6
10
|
|
7
11
|
end
|
8
12
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2
|
+
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<style> body { background: #474747 url(bg.png); } h2 { font: 70px Tahoma, Helvetica, Arial, Sans-Serif; text-align: center; color: #222; text-shadow: 0px 2px 3px #555; }
|
7
|
+
|
8
|
+
pre {
|
9
|
+
width: 500px; margin: 0 auto; background: #222; padding: 20px;
|
10
|
+
font-size: 22px; color: #555; text-shadow: 0px 2px 3px #171717;
|
11
|
+
-webkit-box-shadow: 0px 2px 3px #555;
|
12
|
+
-moz-box-shadow: 0px 2px 3px #555;
|
13
|
+
-webkit-border-radius: 10px;
|
14
|
+
-moz-border-radius: 10px;
|
15
|
+
}
|
16
|
+
|
17
|
+
a{
|
18
|
+
text-decoration: none;
|
19
|
+
}
|
20
|
+
|
21
|
+
</style>
|
22
|
+
<title>Modularized Sinatra</title>
|
23
|
+
<a href="http://modularize-sinatra.goyalankit.com"><h2> Modularized Sinatra </h2></a>
|
24
|
+
</head>
|
25
|
+
<body>
|
26
|
+
<pre>
|
27
|
+
Sample Page. Add your own
|
28
|
+
Gem Created by: <a href="http://github.com/goyalankit">Ankit Goyal</a>
|
29
|
+
</pre>
|
30
|
+
</body>
|
31
|
+
|
32
|
+
</html>
|
33
|
+
|
34
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Ankit Goyal
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- lib/modularize_sinatra/templates/lib/app.rb
|
68
68
|
- lib/modularize_sinatra/templates/lib/controllers/controller.rb
|
69
69
|
- lib/modularize_sinatra/templates/lib/controllers/ping.rb
|
70
|
+
- lib/modularize_sinatra/templates/lib/views/index.erb
|
70
71
|
- lib/modularize_sinatra/templates/module.rb
|
71
72
|
- lib/modularize_sinatra/templates/spec/controllers/controller_spec.rb
|
72
73
|
- lib/modularize_sinatra/templates/spec/controllers/ping_spec.rb
|