roger 0.13.0 → 1.0.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 +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
|
+

|
75
|
+

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