roger 0.13.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/CHANGELOG.md +10 -0
- data/MIT_LICENSE +4 -4
- data/README.md +8 -1
- data/doc/cli.md +10 -1
- data/doc/images/logo_black-yellow.png +0 -0
- data/doc/images/logo_black-yellow.svg +1 -0
- data/doc/images/logo_plain-square.png +0 -0
- data/doc/images/logo_plain.png +0 -0
- data/doc/images/logo_plain.svg +1 -0
- data/lib/roger/cli.rb +13 -8
- data/lib/roger/cli/command.rb +0 -6
- data/lib/roger/cli/generate.rb +3 -3
- data/lib/roger/cli/serve.rb +15 -12
- data/lib/roger/generators.rb +14 -3
- data/lib/roger/helpers/logging.rb +3 -3
- data/lib/roger/mockupfile.rb +14 -14
- data/lib/roger/project.rb +19 -19
- data/lib/roger/server.rb +53 -40
- data/lib/roger/test.rb +8 -4
- data/roger.gemspec +8 -7
- data/test/helpers/cli.rb +47 -0
- data/test/project/Mockupfile +0 -3
- data/test/project/lib/tests/noop/lib/test.rb +2 -1
- data/test/unit/cli/cli_generate_test.rb +48 -0
- data/test/unit/cli/cli_serve_test.rb +142 -0
- data/test/unit/cli/cli_test_test.rb +36 -43
- data/test/unit/generators_test.rb +15 -2
- data/test/unit/test_test.rb +25 -0
- metadata +38 -11
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZWM0NjJiYjYzYzNmZWFmODdmMDM0MmM5ZmQxMmY1MjgyZDBjZGNkMw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ecc0ec2a17b553bfd87e14cfa37912f871a7dfcf
|
4
|
+
data.tar.gz: b7cfc1af54a97825b5e8e8391229c50e92db462c
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MzMxZTQxOTBhYTI1ZmVkNzQ4YmFlZjAyZDY0OGIzODkyMDBmYmMwZjMyMGQ3
|
11
|
-
ODQ1ZTdiYjliZjczMjEwYmQ4NTlkMTlkNzg4YTcwNWE0ZjllODE=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YTVhYzQyMTg0MzkxM2JmNmU0ZTQ3YjlmYTBkNzUyNGJjZjk0MmVhZDExNmI4
|
14
|
-
MjRhOWJjNWRhMmY2OTg0ODIwODhjYjQyMTQyYTQ5ZDdmNWRiMDAzZGYxMzEw
|
15
|
-
ZTIzMWMzOWE5YjA4YzE1OGE3NjRmMGRkYzgzMTYxNzQ1NTZlMjA=
|
6
|
+
metadata.gz: 6a7c25f086b27be5312061c869ff554521ed5a81ecd284e2311a2a3853d475e31fc51f0ae1d769fd1341df8fa051d7c818008bf57125165da9d5353057064be6
|
7
|
+
data.tar.gz: 4813688ee371de200b8797ee84edf1b5e7076e2cd88dd8663c53452ab1f41bc94cbe38175ba99a82a5216cfde9f9090c708f15f7ea23dd00e27c4700ea4090e7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## Version 1.0.0
|
4
|
+
|
5
|
+
There should be no breaking changes between 0.13.0 and 1.0.0
|
6
|
+
|
7
|
+
* Add support for generators giving themselves names through `self.register`
|
8
|
+
* Add support for setting hostname to listen to
|
9
|
+
* Default listening to 0.0.0.0 instead of localhost only
|
10
|
+
* Added more unittests for different CLI options
|
11
|
+
* Minor fixes
|
12
|
+
|
3
13
|
## Version 0.13.0
|
4
14
|
*Attention* This is the last call version before 1.0.0 (5 years in sub 1.0.0 is more than enough)
|
5
15
|
|
data/MIT_LICENSE
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
Copyright (c)
|
2
|
-
|
1
|
+
Copyright (c) 2015 DigitPaint (http://www.digitpaint.nl)
|
2
|
+
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
a copy of this software and associated documentation files (the
|
5
5
|
"Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@ without limitation the rights to use, copy, modify, merge, publish,
|
|
7
7
|
distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
the following conditions:
|
10
|
-
|
10
|
+
|
11
11
|
The above copyright notice and this permission notice shall be
|
12
12
|
included in all copies or substantial portions of the Software.
|
13
|
-
|
13
|
+
|
14
14
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
data/README.md
CHANGED
@@ -69,11 +69,18 @@ It's not it just does some things differently.
|
|
69
69
|
|
70
70
|
[View contributors](https://github.com/digitpaint/roger/graphs/contributors)
|
71
71
|
|
72
|
+
## Logos
|
73
|
+
|
74
|
+
![Logo Black/Yellow](https://raw.githubusercontent.com/DigitPaint/roger/master/doc/images/logo_black-yellow.png)
|
75
|
+
![Logo Plain](https://raw.githubusercontent.com/DigitPaint/roger/master/doc/images/logo_plain-square.png)
|
76
|
+
|
77
|
+
More logo's [can be found in the doc/images folder](https://github.com/DigitPaint/roger/tree/master/doc/images)
|
78
|
+
|
72
79
|
## License
|
73
80
|
|
74
81
|
(The MIT License)
|
75
82
|
|
76
|
-
Copyright (c)
|
83
|
+
Copyright (c) 2015 Digitpaint
|
77
84
|
|
78
85
|
Permission is hereby granted, free of charge, to any person obtaining
|
79
86
|
a copy of this software and associated documentation files (the
|
data/doc/cli.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Command Line Interface
|
2
2
|
|
3
|
-
The easiest way to get help is through the commandline by running
|
3
|
+
The easiest way to get help is through the commandline by running
|
4
4
|
|
5
5
|
```shell
|
6
6
|
mockup help
|
@@ -35,6 +35,15 @@ mockup release [options]
|
|
35
35
|
|
36
36
|
Releases the project
|
37
37
|
|
38
|
+
## Test
|
39
|
+
|
40
|
+
```shell
|
41
|
+
mockup test [options]
|
42
|
+
```
|
43
|
+
|
44
|
+
Tests the project
|
45
|
+
|
46
|
+
|
38
47
|
## Global options
|
39
48
|
|
40
49
|
All commands accept these options.
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="143.699" height="143.699" viewBox="0 0 143.699 143.699"><path fill="#F8ED43" d="M0 0h143.7v143.7H0z"/><path fill="#262626" d="M71.85 21.064c-22.05 0-39.99 17.938-39.99 39.988s17.94 39.99 39.99 39.99 39.99-17.94 39.99-39.99S93.9 21.064 71.85 21.064z"/><path fill="#F8ED43" d="M93.9 86.887c-4.41 1.97-11.176 3.76-17.96.803-6.22-2.71-7.838-7.71-9.55-13-1.78-5.496-3.796-11.726-11.458-15.015-7.97-3.423-13.563-2.085-17.034-.122.788-18.047 15.712-32.488 33.95-32.488 18.743 0 33.99 15.247 33.99 33.988 0 10.332-4.64 19.595-11.937 25.834z"/><path d="M53.713 119.5v-9.94h4.2c.43 0 .824.092 1.183.273s.67.42.93.714.465.628.61 1c.145.375.217.753.217 1.135 0 .364-.054.712-.16 1.043-.108.332-.258.63-.45.896s-.42.49-.692.68c-.27.18-.57.31-.91.37l2.44 3.84h-1.11l-2.33-3.66H54.7v3.67h-.98zm.98-4.536h3.248c.29 0 .56-.062.8-.188s.44-.297.61-.512c.17-.214.3-.457.39-.728.1-.27.14-.556.14-.854 0-.298-.05-.585-.16-.86-.1-.275-.25-.516-.43-.722-.18-.205-.39-.368-.64-.49-.25-.12-.5-.182-.77-.182H54.7v4.536zm10.865 4.676c-.532 0-1.018-.1-1.456-.3-.44-.2-.82-.475-1.14-.82-.323-.345-.573-.746-.75-1.203-.177-.458-.266-.938-.266-1.442 0-.514.09-1 .273-1.456.18-.46.43-.86.75-1.21s.7-.62 1.14-.83c.44-.21.92-.31 1.44-.31.52 0 1 .1 1.45.31.44.2.82.48 1.14.82.32.34.57.74.75 1.2.18.45.27.94.27 1.45 0 .5-.09.98-.27 1.44-.18.45-.43.85-.75 1.2-.32.34-.71.62-1.15.82-.44.2-.93.3-1.46.3zm-2.646-3.752c0 .41.07.79.21 1.142.14.35.33.657.567.924.23.266.51.474.84.623.32.15.66.224 1.02.224s.7-.07 1.03-.23c.32-.15.6-.36.84-.63.24-.26.43-.57.57-.93.14-.35.21-.73.21-1.14 0-.4-.07-.78-.21-1.14s-.33-.67-.58-.93c-.24-.26-.53-.47-.85-.63-.32-.15-.67-.23-1.03-.23s-.71.08-1.02.23c-.32.16-.6.37-.84.64s-.44.59-.58.95c-.14.36-.21.75-.21 1.16zm10.793 3.71c-.504 0-.963-.104-1.378-.314-.416-.21-.775-.488-1.078-.833-.31-.34-.54-.74-.71-1.19s-.25-.91-.25-1.38c0-.5.08-.98.24-1.45.16-.46.39-.86.69-1.21.3-.34.65-.62 1.07-.82.41-.2.87-.31 1.38-.31.62 0 1.16.16 1.62.47.46.32.85.71 1.17 1.19v-1.52h.85v7.32c0 .51-.1.95-.29 1.34-.19.39-.45.71-.77.97s-.7.46-1.14.59-.9.2-1.38.2c-.84 0-1.52-.15-2.03-.45s-.93-.7-1.25-1.2l.582-.46c.29.47.672.81 1.15 1.03.48.22.99.33 1.54.33.355 0 .69-.05 1.01-.15.316-.09.594-.24.832-.43.233-.19.423-.43.563-.73.14-.29.21-.63.21-1.02v-1.44c-.28.465-.665.834-1.15 1.104s-.99.406-1.524.406zm.266-.798c.28 0 .56-.05.83-.153.27-.104.52-.24.74-.413.22-.173.4-.366.56-.58.15-.216.25-.436.3-.66v-2.253c-.1-.26-.24-.5-.42-.72-.17-.22-.37-.41-.6-.57-.22-.16-.46-.28-.72-.38-.25-.09-.51-.14-.77-.14-.41 0-.78.09-1.1.26-.32.18-.59.4-.82.68-.22.28-.39.6-.51.95-.12.36-.17.72-.17 1.08 0 .39.07.77.21 1.12.14.36.336.67.58.93.25.27.537.48.864.63.33.16.68.23 1.066.23zm8.62.84c-.53 0-1.02-.1-1.46-.3-.44-.2-.83-.477-1.15-.827-.32-.35-.58-.753-.76-1.21-.18-.458-.27-.948-.27-1.47 0-.515.09-.997.27-1.45.19-.452.44-.85.76-1.19.32-.34.71-.61 1.16-.81.45-.2.94-.302 1.46-.302.537 0 1.02.11 1.468.31.44.2.82.48 1.14.82.317.35.565.74.74 1.19.177.45.267.93.267 1.43v.23c0 .08-.007.13-.015.16h-6.25c.027.4.12.76.27 1.09s.354.62.596.86c.24.24.52.43.834.57.31.14.643.2 1 .2.23 0 .464-.03.7-.1s.445-.15.64-.27c.2-.11.377-.25.537-.41.155-.16.28-.34.36-.54l.82.23c-.12.27-.28.514-.48.73-.21.22-.44.41-.71.574-.27.164-.57.29-.9.38-.33.09-.67.133-1.02.133zm2.69-4.172c-.03-.392-.12-.75-.27-1.07-.15-.322-.35-.6-.59-.833s-.51-.416-.82-.547c-.31-.13-.64-.195-1-.195-.35 0-.69.065-1.01.195-.31.13-.59.313-.83.547s-.43.513-.57.84c-.14.326-.23.68-.26 1.063h5.37zm6.02-2.422c-.64.02-1.2.196-1.68.532-.47.336-.81.798-1.01 1.386v4.536h-.95v-7.294h.9v1.75c.27-.56.64-1 1.1-1.316.46-.316.95-.476 1.47-.476.08 0 .14.005.18.014v.868z" fill="#262626"/><path fill="#EDDA11" d="M71.85 95.042c-18.06 0-32.867-14.157-33.923-31.955 2.504-1.94 7.583-4.19 15.822-.656 6.41 2.76 8.05 7.82 9.78 13.19 1.84 5.69 3.75 11.58 11.21 14.83 3.04 1.33 6.05 1.84 8.88 1.84.6 0 1.2-.02 1.78-.07-4.16 1.82-8.75 2.84-13.57 2.84z"/></svg>
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="79.979" height="101.558" viewBox="0 0 79.979 101.558"><path fill="#262626" d="M39.99 0C17.94 0 0 17.938 0 39.988s17.94 39.99 39.99 39.99 39.99-17.94 39.99-39.99S62.04 0 39.99 0z"/><path fill="#F8ED43" d="M62.04 65.822c-4.41 1.97-11.176 3.76-17.96.803-6.22-2.71-7.838-7.71-9.55-13C32.75 48.13 30.734 41.9 23.072 38.61c-7.97-3.423-13.563-2.085-17.034-.122C6.826 20.44 21.75 6 39.988 6c18.743 0 33.99 15.247 33.99 33.988 0 10.332-4.64 19.596-11.937 25.834z"/><path d="M21.853 98.436v-9.94h4.2c.43 0 .824.092 1.183.273s.67.42.93.71.465.63.61 1c.145.37.217.75.217 1.13 0 .36-.054.71-.16 1.04-.108.33-.258.63-.45.89s-.42.49-.692.67c-.27.18-.57.3-.91.37l2.44 3.83h-1.11l-2.33-3.67h-2.94v3.67h-.98zm.98-4.537h3.248c.29 0 .56-.07.8-.19s.44-.3.61-.51c.17-.22.3-.46.39-.73.1-.27.14-.56.14-.86 0-.3-.05-.59-.16-.86-.1-.28-.25-.52-.43-.72-.18-.21-.39-.37-.64-.49s-.5-.18-.77-.18h-3.17v4.54zm10.864 4.67c-.532 0-1.018-.1-1.456-.3-.43-.2-.81-.48-1.14-.82-.32-.35-.57-.75-.75-1.21-.17-.46-.26-.94-.26-1.44 0-.52.09-1 .28-1.46.18-.46.44-.86.76-1.21s.7-.62 1.14-.83c.44-.21.92-.31 1.45-.31.52 0 1.01.1 1.45.31.44.2.83.48 1.15.82.32.34.57.74.76 1.2.19.45.28.94.28 1.45 0 .5-.09.98-.264 1.44-.174.45-.424.86-.75 1.2-.32.35-.7.62-1.144.82-.44.2-.93.3-1.46.3zm-2.647-3.75c0 .41.07.79.21 1.14.14.35.33.65.57.92.24.26.52.47.84.62.32.15.666.22 1.03.22s.707-.08 1.03-.23c.32-.16.603-.37.846-.63.242-.27.434-.58.574-.93.14-.36.21-.74.21-1.15 0-.4-.07-.79-.21-1.15s-.333-.67-.575-.94c-.243-.27-.525-.48-.847-.63-.322-.16-.665-.23-1.03-.23-.363 0-.704.07-1.02.23-.32.15-.6.36-.84.63s-.435.59-.575.95c-.14.36-.21.74-.21 1.15zm10.796 3.71c-.504 0-.963-.11-1.378-.32-.416-.21-.775-.49-1.078-.84-.304-.35-.54-.74-.708-1.19s-.25-.91-.25-1.39c0-.51.08-.99.245-1.45.163-.46.394-.87.693-1.21.298-.35.656-.62 1.07-.83.417-.21.876-.31 1.38-.31.625 0 1.166.15 1.623.47.46.31.85.7 1.178 1.18v-1.52h.86v7.32c0 .5-.09.95-.28 1.33-.19.39-.45.71-.77.97s-.7.454-1.13.59-.89.2-1.38.2c-.84 0-1.51-.15-2.03-.45s-.93-.7-1.24-1.2l.59-.46c.29.462.67.81 1.15 1.03.48.22.99.33 1.54.33.36 0 .69-.05 1.01-.15.32-.1.6-.246.84-.438.24-.19.43-.44.57-.73.14-.297.21-.64.21-1.03V97c-.28.466-.66.835-1.146 1.105s-.996.403-1.53.403zm.267-.8c.28 0 .558-.05.827-.16.27-.11.515-.24.735-.42.22-.18.402-.37.553-.59.148-.22.246-.44.293-.66v-2.25c-.1-.26-.24-.51-.42-.73-.17-.23-.37-.42-.6-.57-.22-.16-.46-.29-.72-.38-.26-.1-.51-.14-.78-.14-.41 0-.77.08-1.1.26-.32.17-.59.4-.82.68-.22.28-.39.59-.51.95-.11.35-.17.71-.17 1.08 0 .39.07.76.21 1.12.14.35.34.66.58.93.25.26.54.47.86.63.33.15.68.23 1.07.23zm8.61.84c-.532 0-1.02-.1-1.463-.3-.444-.2-.83-.48-1.156-.83-.326-.35-.58-.76-.763-1.21-.18-.46-.27-.95-.27-1.47s.09-1 .27-1.45c.18-.45.44-.85.76-1.19.32-.34.71-.61 1.16-.81.45-.2.94-.3 1.46-.3.53 0 1.02.1 1.47.3.45.2.83.47 1.14.82.32.34.57.74.75 1.19.18.44.27.92.27 1.43v.22c0 .07 0 .12-.01.15H48.1c.03.39.12.75.272 1.08s.35.62.594.86.52.43.834.56c.31.13.644.2 1 .2.23 0 .465-.04.7-.1s.446-.16.64-.27c.195-.11.37-.25.53-.41.16-.17.28-.35.36-.54l.83.22c-.112.27-.27.52-.48.73-.2.22-.44.41-.71.575-.27.163-.57.29-.892.38-.323.09-.664.133-1.02.133zm2.69-4.17c-.03-.39-.12-.75-.274-1.07-.16-.32-.35-.6-.59-.83s-.52-.42-.83-.55c-.31-.13-.65-.2-1-.2-.36 0-.69.06-1.01.19-.32.13-.6.31-.83.55s-.43.51-.58.84c-.15.32-.23.68-.26 1.06h5.36zm6.018-2.42c-.64.02-1.2.19-1.68.53-.47.33-.81.8-1 1.38v4.53h-.95v-7.29h.9v1.75c.27-.56.64-1 1.1-1.32.46-.32.95-.48 1.47-.48.08 0 .14 0 .18.01v.87z" fill="#262626"/><path fill="#EDDA11" d="M39.99 73.978c-18.06 0-32.867-14.157-33.923-31.955 2.504-1.94 7.583-4.19 15.822-.656 6.41 2.753 8.05 7.818 9.78 13.182 1.84 5.69 3.75 11.57 11.21 14.82 3.04 1.32 6.05 1.84 8.88 1.84.6 0 1.2-.03 1.78-.07-4.16 1.81-8.75 2.83-13.57 2.83z"/></svg>
|
data/lib/roger/cli.rb
CHANGED
@@ -47,21 +47,26 @@ module Roger
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
class_option :path,
|
50
|
+
class_option :path,
|
51
51
|
:desc => "Project root path",
|
52
|
-
:type => :string,
|
53
|
-
:required => false,
|
52
|
+
:type => :string,
|
53
|
+
:required => false,
|
54
54
|
:default => "."
|
55
55
|
|
56
56
|
class_option :html_path,
|
57
57
|
:desc => 'The document root, defaults to "[directory]/html"',
|
58
58
|
:type => :string
|
59
59
|
|
60
|
-
|
61
60
|
class_option :partial_path,
|
62
61
|
:desc => 'Defaults to [directory]/partials',
|
63
62
|
:type => :string
|
64
|
-
|
63
|
+
|
64
|
+
class_option :verbose,
|
65
|
+
:desc => "Sets verbose output",
|
66
|
+
:aliases => ["-v"],
|
67
|
+
:default => false,
|
68
|
+
:type => :boolean
|
69
|
+
|
65
70
|
desc "test [COMMAND]", "Run one or more tests. Test can be 'all' for all defined tests or a specific test name"
|
66
71
|
subcommand "test", Cli::Test
|
67
72
|
|
@@ -73,7 +78,7 @@ module Roger
|
|
73
78
|
|
74
79
|
register Cli::Release, "release", "release #{Cli::Release.arguments.map{ |arg| arg.banner }.join(" ")}", Cli::Release.desc
|
75
80
|
self.tasks["release"].options = Cli::Release.class_options
|
76
|
-
|
81
|
+
|
77
82
|
protected
|
78
83
|
|
79
84
|
# TODO: handle options
|
@@ -82,10 +87,10 @@ module Roger
|
|
82
87
|
puts "[ERROR]: Don't use the \"html\" path, use the project base path instead"
|
83
88
|
exit(1)
|
84
89
|
end
|
85
|
-
|
90
|
+
|
86
91
|
Project.new(options[:path], {:shell => self.shell}.update(options))
|
87
92
|
end
|
88
|
-
|
93
|
+
|
89
94
|
end
|
90
95
|
|
91
96
|
end
|
data/lib/roger/cli/command.rb
CHANGED
data/lib/roger/cli/generate.rb
CHANGED
data/lib/roger/cli/serve.rb
CHANGED
@@ -5,25 +5,28 @@ module Roger
|
|
5
5
|
desc "Serve the current project"
|
6
6
|
|
7
7
|
class_options :port => :string, # Defaults to 9000
|
8
|
-
|
9
|
-
|
8
|
+
:host => :string, # Defaults to 0.0.0.0
|
9
|
+
:handler => :string # The handler to use (defaults to mongrel)
|
10
10
|
|
11
11
|
def serve
|
12
|
-
|
13
|
-
server_options = {}
|
12
|
+
server_options = {}
|
14
13
|
options.each{|k,v| server_options[k.to_sym] = v }
|
15
14
|
server_options[:server] = {}
|
16
|
-
[:port, :handler, :
|
15
|
+
[:port, :handler, :host].each do |k|
|
17
16
|
server_options[:server][k] = server_options.delete(k) if server_options.has_key?(k)
|
18
17
|
end
|
19
|
-
|
18
|
+
|
20
19
|
server = @project.server
|
21
20
|
server.set_options(server_options[:server])
|
22
|
-
|
23
|
-
puts "Running Roger with #{server.handler.inspect} on
|
24
|
-
puts project_banner(@project)
|
25
|
-
|
26
|
-
|
21
|
+
|
22
|
+
puts "Running Roger with #{server.handler.inspect} on #{server.host}:#{server.port}"
|
23
|
+
puts project_banner(@project)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Hack so we can override it in tests.
|
27
|
+
def start
|
28
|
+
@project.server.run!
|
27
29
|
end
|
28
30
|
end
|
29
|
-
end
|
31
|
+
end
|
32
|
+
|
data/lib/roger/generators.rb
CHANGED
@@ -7,11 +7,22 @@ module Roger
|
|
7
7
|
class Base < Cli::Command
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.register(sub)
|
11
|
-
|
10
|
+
def self.register(name, sub = nil)
|
11
|
+
# Hack to not break old tasks
|
12
|
+
if name.kind_of?(Class)
|
13
|
+
sub = name
|
14
|
+
name = sub.to_s.sub(/Generator$/, "").sub(/^.*Generators::/,"").downcase
|
15
|
+
else
|
16
|
+
raise ArgumentError, "Name must be a symbol" unless name.kind_of?(Symbol)
|
17
|
+
end
|
18
|
+
|
19
|
+
name = name.to_s
|
20
|
+
|
21
|
+
raise ArgumentError, "Another generator has already claimed the name #{name.inspect}" if Cli::Generate.tasks.has_key?(name)
|
22
|
+
|
12
23
|
usage = "#{name} #{sub.arguments.map{ |arg| arg.banner }.join(" ")}"
|
13
24
|
long_desc = sub.desc || "Run #{name} generator"
|
14
|
-
|
25
|
+
|
15
26
|
Cli::Generate.register sub, name, usage, long_desc
|
16
27
|
Cli::Generate.tasks[name].options = sub.class_options if sub.class_options
|
17
28
|
end
|
@@ -15,16 +15,16 @@ module Roger
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def debug(part, msg, &block)
|
20
20
|
self.log(part, msg, true, &block)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
# Write out a warning message
|
24
24
|
def warn(part, msg)
|
25
25
|
self.project.shell.say "\033[37m#{part.class.to_s}\033[0m" + " : " + "\033[31m#{msg.to_s}\033[0m", nil, true
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
data/lib/roger/mockupfile.rb
CHANGED
@@ -1,28 +1,28 @@
|
|
1
1
|
module Roger
|
2
2
|
# Loader for mockupfile
|
3
3
|
class Mockupfile
|
4
|
-
|
4
|
+
|
5
5
|
# This is the context for the mockupfile evaluation. It should be empty except for the
|
6
6
|
# #mockup method.
|
7
7
|
class Context
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(mockupfile)
|
10
10
|
@_mockupfile = mockupfile
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def mockup
|
14
14
|
@_mockupfile
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def binding
|
18
18
|
::Kernel.binding
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
# @attr :path [Pathname] The path of the Mockupfile for this project
|
24
24
|
attr_accessor :path, :project
|
25
|
-
|
25
|
+
|
26
26
|
def initialize(project, path = nil)
|
27
27
|
@project = project
|
28
28
|
@path = (path && Pathname.new(path)) || Pathname.new(project.path + "Mockupfile")
|
@@ -35,26 +35,26 @@ module Roger
|
|
35
35
|
context = Context.new(self)
|
36
36
|
eval @source, context.binding, @path.to_s, 1
|
37
37
|
@loaded = true
|
38
|
-
end
|
38
|
+
end
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
# Wether or not the Mockupfile has been loaded
|
42
42
|
def loaded?
|
43
43
|
@loaded
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
def release
|
47
47
|
if block_given?
|
48
48
|
yield(self.project.release)
|
49
49
|
end
|
50
|
-
self.project.release
|
50
|
+
self.project.release
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
def serve
|
54
54
|
if block_given?
|
55
55
|
yield(self.project.server)
|
56
56
|
end
|
57
|
-
self.project.server
|
57
|
+
self.project.server
|
58
58
|
end
|
59
59
|
|
60
60
|
alias :server :serve
|
@@ -65,6 +65,6 @@ module Roger
|
|
65
65
|
end
|
66
66
|
self.project.test
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
end
|
70
70
|
end
|
data/lib/roger/project.rb
CHANGED
@@ -7,37 +7,37 @@ require File.dirname(__FILE__) + "/mockupfile"
|
|
7
7
|
module Roger
|
8
8
|
# Loader for mockupfile and project dependencies
|
9
9
|
class Project
|
10
|
-
|
10
|
+
|
11
11
|
# @attr :path [Pathname] The project path
|
12
12
|
# @attr :html_path [Pathname] The path of the HTML mockup
|
13
13
|
# @attr :partial_path [Pathname] The path for the partials for this mockup
|
14
14
|
# @attr :mockupfile [Mockupfile] The Mockupfile for this project
|
15
15
|
# @attr :mockupfile_path [Pathname] The path to the Mockupfile
|
16
16
|
attr_accessor :path, :html_path, :partial_path, :layouts_path, :mockupfile, :mockupfile_path
|
17
|
-
|
17
|
+
|
18
18
|
attr_accessor :shell
|
19
|
-
|
19
|
+
|
20
20
|
attr_accessor :options
|
21
|
-
|
21
|
+
|
22
22
|
def initialize(path, options={})
|
23
23
|
@path = Pathname.new(path)
|
24
|
-
|
24
|
+
|
25
25
|
@options = {
|
26
26
|
:html_path => @path + "html",
|
27
27
|
:partial_path => @path + "partials",
|
28
28
|
:layouts_path => @path + "layouts",
|
29
29
|
:mockupfile_path => @path + "Mockupfile"
|
30
30
|
}
|
31
|
-
|
31
|
+
|
32
32
|
# Clumsy string to symbol key conversion
|
33
33
|
options.each{|k,v| @options[k.is_a?(String) ? k.to_sym : k] = v }
|
34
|
-
|
34
|
+
|
35
35
|
self.html_path = @options[:html_path]
|
36
36
|
self.partial_path = @options[:partials_path] || @options[:partial_path] || self.html_path + "../partials/"
|
37
37
|
self.layouts_path = @options[:layouts_path]
|
38
38
|
self.mockupfile_path = @options[:mockupfile_path]
|
39
39
|
self.shell = @options[:shell]
|
40
|
-
|
40
|
+
|
41
41
|
if self.mockupfile_path
|
42
42
|
@mockupfile = Mockupfile.new(self, self.mockupfile_path)
|
43
43
|
@mockupfile.load
|
@@ -46,18 +46,18 @@ module Roger
|
|
46
46
|
end
|
47
47
|
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
def shell
|
51
51
|
@shell ||= Thor::Base.shell.new
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
def server
|
55
55
|
options = @options[:server] || {}
|
56
56
|
@server ||= Server.new(self, options)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
def release
|
60
|
-
options = @options[:release] || {}
|
60
|
+
options = @options[:release] || {}
|
61
61
|
@release ||= Release.new(self, options)
|
62
62
|
end
|
63
63
|
|
@@ -65,21 +65,21 @@ module Roger
|
|
65
65
|
options = @options[:test] || {}
|
66
66
|
@test ||= Test.new(self, options)
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
def html_path=(p)
|
70
70
|
@html_path = self.realpath_or_path(p)
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
def partial_path=(p)
|
74
74
|
@partial_path = self.single_or_multiple_paths(p)
|
75
75
|
end
|
76
76
|
alias :partials_path :partial_path
|
77
77
|
alias :partials_path= :partial_path=
|
78
|
-
|
78
|
+
|
79
79
|
def layouts_path=(p)
|
80
80
|
@layouts_path = self.single_or_multiple_paths(p)
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
protected
|
84
84
|
|
85
85
|
def single_or_multiple_paths(p)
|
@@ -89,15 +89,15 @@ module Roger
|
|
89
89
|
self.realpath_or_path(p)
|
90
90
|
end
|
91
91
|
end
|
92
|
-
|
92
|
+
|
93
93
|
def realpath_or_path(path)
|
94
94
|
path = Pathname.new(path)
|
95
95
|
if path.exist?
|
96
96
|
path.realpath
|
97
97
|
else
|
98
98
|
path
|
99
|
-
end
|
99
|
+
end
|
100
100
|
end
|
101
|
-
|
101
|
+
|
102
102
|
end
|
103
103
|
end
|