noe 1.0.0 → 1.1.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.
Files changed (49) hide show
  1. data/CHANGELOG.md +27 -0
  2. data/Gemfile +2 -0
  3. data/LICENCE.md +22 -0
  4. data/README.md +111 -45
  5. data/Rakefile +18 -20
  6. data/bin/noe +1 -1
  7. data/lib/noe.rb +7 -21
  8. data/lib/noe/commons.rb +23 -0
  9. data/lib/noe/config.yaml +2 -2
  10. data/lib/noe/ext/array.rb +18 -0
  11. data/lib/noe/ext/hash.rb +48 -0
  12. data/lib/noe/go.rb +158 -40
  13. data/lib/noe/install.rb +13 -7
  14. data/lib/noe/list.rb +34 -10
  15. data/lib/noe/loader.rb +67 -0
  16. data/lib/noe/main.rb +15 -15
  17. data/lib/noe/prepare.rb +121 -0
  18. data/lib/noe/show_spec.rb +45 -0
  19. data/lib/noe/template.rb +84 -4
  20. data/noe.gemspec +186 -30
  21. data/spec/ext/hash/methodize_spec.rb +30 -0
  22. data/spec/noe_spec.rb +4 -0
  23. data/spec/spec_helper.rb +0 -2
  24. data/spec/template/entry/infer_wlang_dialect_spec.rb +31 -0
  25. data/tasks/gem.rake +44 -0
  26. data/tasks/spec_test.rake +61 -0
  27. data/tasks/unit_test.rake +56 -0
  28. data/tasks/yard.rake +36 -0
  29. data/templates/ruby/CHANGELOG.md +9 -1
  30. data/templates/ruby/README.md +47 -10
  31. data/templates/ruby/noespec.yaml +195 -26
  32. data/templates/ruby/short.yaml +33 -0
  33. data/templates/ruby/src/Gemfile +2 -0
  34. data/templates/ruby/src/LICENCE.md +22 -0
  35. data/templates/ruby/src/Manifest.txt +11 -0
  36. data/templates/ruby/src/README.md +6 -1
  37. data/templates/ruby/src/Rakefile +16 -36
  38. data/templates/ruby/src/__lower__.gemspec +178 -23
  39. data/templates/ruby/src/lib/__lower__.rb +5 -2
  40. data/templates/ruby/src/lib/__lower__/loader.rb +65 -0
  41. data/templates/ruby/src/spec/spec_helper.rb +0 -2
  42. data/templates/ruby/src/tasks/gem.rake +44 -0
  43. data/templates/ruby/src/tasks/spec_test.rake +61 -0
  44. data/templates/ruby/src/tasks/unit_test.rake +56 -0
  45. data/templates/ruby/src/tasks/yard.rake +36 -0
  46. metadata +349 -79
  47. data/LICENCE.txt +0 -20
  48. data/lib/noe/create.rb +0 -77
  49. data/templates/ruby/src/LICENCE.txt +0 -20
@@ -0,0 +1,61 @@
1
+ #
2
+ # Install a rake task for running examples written using rspec.
3
+ #
4
+ # More information about rspec: http://relishapp.com/rspec
5
+ # This file has been written to conform to RSpec v2.4.0
6
+ #
7
+ begin
8
+ require "rspec/core/rake_task"
9
+ desc "Run RSpec code examples"
10
+ RSpec::Core::RakeTask.new(:spec_test) do |t|
11
+ # Glob pattern to match files.
12
+ t.pattern = 'spec/**/*_spec.rb'
13
+
14
+ # By default, if there is a Gemfile, the generated command will include
15
+ # 'bundle exec'. Set this to true to ignore the presence of a Gemfile,
16
+ # and not add 'bundle exec' to the command.
17
+ t.skip_bundler = false
18
+
19
+ # Name of Gemfile to use
20
+ t.gemfile = 'Gemfile'
21
+
22
+ # Whether or not to fail Rake when an error occurs (typically when
23
+ # examples fail).
24
+ t.fail_on_error = true
25
+
26
+ # A message to print to stderr when there are failures.
27
+ t.failure_message = nil
28
+
29
+ # Use verbose output. If this is set to true, the task will print the
30
+ # executed spec command to stdout.
31
+ t.verbose = true
32
+
33
+ # Use rcov for code coverage?
34
+ t.rcov = false
35
+
36
+ # Path to rcov.
37
+ t.rcov_path = 'rcov'
38
+
39
+ # Command line options to pass to rcov.
40
+ # See 'rcov --help' about this
41
+ t.rcov_opts = %w{}
42
+
43
+ # Command line options to pass to ruby.
44
+ # See 'ruby --help' about this
45
+ t.ruby_opts = %w{}
46
+
47
+ # Path to rspec
48
+ t.rspec_path = 'rspec'
49
+
50
+ # Command line options to pass to rspec.
51
+ # See 'rspec --help' about this
52
+ t.rspec_opts = %w{--color --backtrace}
53
+ end
54
+ rescue LoadError => ex
55
+ task :spec_test do
56
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
57
+ end
58
+ ensure
59
+ task :spec => [:spec_test]
60
+ task :test => [:spec_test]
61
+ end
@@ -0,0 +1,56 @@
1
+ #
2
+ # Install a rake task for running examples written using rspec.
3
+ #
4
+ # More information about rspec: http://relishapp.com/rspec
5
+ # This file has been written to conform to RSpec v2.4.0
6
+ #
7
+ begin
8
+ desc "Lauches unit tests"
9
+ require 'rake/testtask'
10
+ Rake::TestTask.new(:unit_test) do |t|
11
+
12
+ # List of directories to added to $LOAD_PATH before running the
13
+ # tests. (default is 'lib')
14
+ t.libs = %w{ lib }
15
+
16
+ # True if verbose test output desired. (default is false)
17
+ t.verbose = false
18
+
19
+ # Test options passed to the test suite. An explicit TESTOPTS=opts
20
+ # on the command line will override this. (default is NONE)
21
+ t.options = []
22
+
23
+ # Request that the tests be run with the warning flag set.
24
+ # E.g. warning=true implies "ruby -w" used to run the tests.
25
+ t.warning = false
26
+
27
+ # Glob pattern to match test files. (default is 'test/test*.rb')
28
+ t.pattern = 'test/test*.rb'
29
+
30
+ # Style of test loader to use. Options are:
31
+ #
32
+ # * :rake -- Rake provided test loading script (default).
33
+ # * :testrb -- Ruby provided test loading script.
34
+ # * :direct -- Load tests using command line loader.
35
+ #
36
+ t.loader = :rake
37
+
38
+ # Array of commandline options to pass to ruby when running test
39
+ # loader.
40
+ t.ruby_opts = []
41
+
42
+ # Explicitly define the list of test files to be included in a
43
+ # test. +list+ is expected to be an array of file names (a
44
+ # FileList is acceptable). If both +pattern+ and +test_files+ are
45
+ # used, then the list of test files is the union of the two.
46
+ t.test_files = nil
47
+
48
+ end
49
+ rescue LoadError => ex
50
+ task :unit_test do
51
+ abort 'rspec is not available. In order to run spec, you must: gem install rspec'
52
+ end
53
+ ensure
54
+ task :test => [:unit_test]
55
+ end
56
+
@@ -0,0 +1,36 @@
1
+ #
2
+ # Install a rake task to generate API documentation using
3
+ # yard.
4
+ #
5
+ # More information about yard: http://yardoc.org/
6
+ # This file has been written to conform to yard v0.6.4
7
+ #
8
+ # About project documentation
9
+ begin
10
+ require "yard"
11
+ desc "Generate yard documentation"
12
+ YARD::Rake::YardocTask.new(:yard) do |t|
13
+ # Array of options passed to the commandline utility
14
+ # See 'yardoc --help' about this
15
+ t.options = %w{--output-dir doc/api - README.md CHANGELOG.md LICENCE.md}
16
+
17
+ # Array of ruby source files (and any extra documentation files
18
+ # separated by '-')
19
+ t.files = ['lib/**/*.rb']
20
+
21
+ # A proc to call before running the task
22
+ # t.before = proc{ }
23
+
24
+ # A proc to call after running the task
25
+ # r.after = proc{ }
26
+
27
+ # An optional lambda to run against all objects being generated.
28
+ # Any object that the lambda returns false for will be excluded
29
+ # from documentation.
30
+ # t.verifier = lambda{|obj| true}
31
+ end
32
+ rescue LoadError
33
+ task :yard do
34
+ abort 'yard is not available. In order to run yard, you must: gem install yard'
35
+ end
36
+ end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noe
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 19
5
+ prerelease:
5
6
  segments:
6
7
  - 1
8
+ - 1
7
9
  - 0
8
- - 0
9
- version: 1.0.0
10
+ version: 1.1.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Bernard Lambeau
@@ -14,99 +15,323 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2011-01-10 00:00:00 +01:00
18
+ date: 2011-01-15 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- name: wlang
22
22
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ name: rake
24
+ type: :development
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
26
  none: false
25
27
  requirements:
26
- - - ">="
28
+ - - ~>
27
29
  - !ruby/object:Gem::Version
30
+ hash: 49
28
31
  segments:
29
32
  - 0
30
- - 9
31
- - 2
32
- version: 0.9.2
33
- type: :runtime
34
- version_requirements: *id001
33
+ - 8
34
+ - 7
35
+ version: 0.8.7
36
+ requirement: *id001
35
37
  - !ruby/object:Gem::Dependency
36
- name: quickl
37
38
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
+ name: bundler
40
+ type: :development
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
42
  none: false
40
43
  requirements:
41
- - - ">="
44
+ - - ~>
42
45
  - !ruby/object:Gem::Version
46
+ hash: 15
43
47
  segments:
48
+ - 1
44
49
  - 0
50
+ version: "1.0"
51
+ requirement: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ prerelease: false
54
+ name: rspec
55
+ type: :development
56
+ version_requirements: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 31
62
+ segments:
45
63
  - 2
64
+ - 4
46
65
  - 0
47
- version: 0.2.0
48
- type: :runtime
49
- version_requirements: *id002
66
+ version: 2.4.0
67
+ requirement: *id003
50
68
  - !ruby/object:Gem::Dependency
51
- name: rake
52
69
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
70
+ name: yard
71
+ type: :development
72
+ version_requirements: &id004 !ruby/object:Gem::Requirement
54
73
  none: false
55
74
  requirements:
56
- - - ">="
75
+ - - ~>
57
76
  - !ruby/object:Gem::Version
77
+ hash: 15
58
78
  segments:
59
79
  - 0
60
- version: "0"
61
- type: :development
62
- version_requirements: *id003
80
+ - 6
81
+ - 4
82
+ version: 0.6.4
83
+ requirement: *id004
63
84
  - !ruby/object:Gem::Dependency
64
- name: rspec
65
85
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
86
+ name: bluecloth
87
+ type: :development
88
+ version_requirements: &id005 !ruby/object:Gem::Requirement
67
89
  none: false
68
90
  requirements:
69
- - - ">="
91
+ - - ~>
70
92
  - !ruby/object:Gem::Version
93
+ hash: 29
71
94
  segments:
72
95
  - 2
73
- - 4
74
96
  - 0
75
- version: 2.4.0
76
- type: :development
77
- version_requirements: *id004
97
+ - 9
98
+ version: 2.0.9
99
+ requirement: *id005
78
100
  - !ruby/object:Gem::Dependency
79
- name: yard
80
101
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
102
+ name: wlang
103
+ type: :runtime
104
+ version_requirements: &id006 !ruby/object:Gem::Requirement
82
105
  none: false
83
106
  requirements:
84
- - - ">="
107
+ - - ~>
85
108
  - !ruby/object:Gem::Version
109
+ hash: 55
86
110
  segments:
87
111
  - 0
88
- - 6
89
- - 4
90
- version: 0.6.4
91
- type: :development
92
- version_requirements: *id005
112
+ - 10
113
+ - 0
114
+ version: 0.10.0
115
+ requirement: *id006
93
116
  - !ruby/object:Gem::Dependency
94
- name: bluecloth
95
117
  prerelease: false
96
- requirement: &id006 !ruby/object:Gem::Requirement
118
+ name: quickl
119
+ type: :runtime
120
+ version_requirements: &id007 !ruby/object:Gem::Requirement
97
121
  none: false
98
122
  requirements:
99
- - - ">="
123
+ - - ~>
100
124
  - !ruby/object:Gem::Version
125
+ hash: 23
101
126
  segments:
102
127
  - 0
128
+ - 2
129
+ - 0
130
+ version: 0.2.0
131
+ requirement: *id007
132
+ - !ruby/object:Gem::Dependency
133
+ prerelease: false
134
+ name: highline
135
+ type: :runtime
136
+ version_requirements: &id008 !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ hash: 15
142
+ segments:
143
+ - 1
103
144
  - 6
104
- - 4
105
- version: 0.6.4
106
- type: :development
107
- version_requirements: *id006
108
- description: A simple and extensible project generator
109
- email: blambeau@gmail.com
145
+ - 0
146
+ version: 1.6.0
147
+ requirement: *id008
148
+ description: |
149
+ # Noe - A simple and extensible project generator
150
+
151
+ Noe is a tool that generates projects from predefined skeletons (aka project/application
152
+ templates). Skeletons are designed for building specific products (a ruby library, a static
153
+ or dynamic web site, ...). Noe instantiates them and helps you maintaining your product
154
+ via meta-information provided by a .noespec yaml file.
155
+
156
+ Noe comes bundled with a skeleton for creating and maintaining a ruby gem. This skeleton
157
+ is written and maintained to follow ruby best practices and may also be tuned for your own
158
+ needs. Read more about it and related projects as well as the underlying philosophy in the
159
+ sections below.
160
+
161
+ ## Getting started
162
+
163
+ [sudo] gem install noe
164
+ [noe --help]
165
+ [noe help install]
166
+ noe install
167
+
168
+ Have a loot at ~/.noerc and ~/.noe for configuration and a default ruby template. To
169
+ instantiate a ruby project simply execute the following commands in turn:
170
+
171
+ # Given a template ruby under ~/.noe/ruby, install by default
172
+ noe prepare --template=ruby foo
173
+ cd foo
174
+
175
+ # Edit the template configuration foo/foo.noespec
176
+ edit foo/foo.noespec
177
+
178
+ # Launch template instantiation
179
+ noe go
180
+
181
+ That's it! But also have a look at 'noe help prepare' and 'not help go' for additional
182
+ options.
183
+
184
+ ## Philosophy
185
+
186
+ Noe is designed to follow a certain number of good principles and helps you following
187
+ them as well.
188
+
189
+ ### Separation of concerns
190
+
191
+ Noe maintains a strong separation of concerns. In particular one has to make the distinction
192
+ between a) Noe itself, b) a skeleton and c) an instantiated product. This fact has two
193
+ main consequences:
194
+
195
+ * Noe itself **is not dedicated to specific products** (like a ruby library). Even if Noe
196
+ comes bundled with a default skeleton for ruby projects, writing skeletons for something
197
+ else should not be a problem. In other words, Noe itself is agnostic: the semantics of
198
+ generated products is the secret of the skeleton, under the responsibility of it's
199
+ maintainer.
200
+
201
+ * Noe **should not be a runtime dependency** of the product. Good skeletons maintain this
202
+ separation. As an example the default ruby skeleton is strictly independent of Noe itself.
203
+ Principles discussed below explain why this is important.
204
+
205
+ ### Master the tools YOU use
206
+
207
+ The separation of concerns described previously also drives what you have to learn and what
208
+ tools you have to master:
209
+
210
+ * As an ordinary Noe user (vs. skeleton maintainer) and because Noe itself (unlike skeletons
211
+ is project agnostic, you only have to know **basic Noe commands** (see 'noe --help') and
212
+ should never have to study Noe's API and internals. In contrast, you have to **master the
213
+ tools and best practices of your product's ecosystem**. A good skeleton should help you
214
+ along this task. As an example, the default ruby skeleton is fully documented to help you
215
+ gaining understanding of ***rake*, *spec*, *yard*, *bundler*** and so on but **not noe
216
+ itself**.
217
+
218
+ * This explains why Noe itself is not a runtime dependency. Using a particular skeleton
219
+ already means learning a lot, at least in the long run (see the section about Magic below).
220
+ Noe avoids interfering with generated products to avoid making the learning curve even
221
+ worse.
222
+
223
+ * Being a skeleton creator/maintainer is another story of course. To write a skeleton you'll
224
+ also have to learn **Noe's API and internals**. To write a good/reusable one, you'll
225
+ certainly have to **master the full ecosystem and best practices of the targetted product**,
226
+ which is a good opportunity for learning and sharing it!
227
+
228
+ ### Magic Only If Flexible
229
+
230
+ "Don't Repeat Yourself" and "Convention over Configuration" are certainly good principles.
231
+ However tuning, configuration and options exist, are useful and should certainly not be
232
+ hidden to the user. Instead configuration and options should come with default values,
233
+ and should be fully documented. Providing magic is great if there is a user-centric way
234
+ (in contrast to a developer one) of understanding and controlling the magic and underlying
235
+ assumptions.
236
+
237
+ As an example, the default ruby template comes with some magic: you can create a project
238
+ and immediately invoke 'rake test', 'rake yard', ... and not investigating further. You
239
+ can also have a look at the _tasks_ folder to understand and control the rake tasks that
240
+ your project will use... In fact, you **must** investigate: the generated product is yours,
241
+ not mine and YOU have to master your build chain!
242
+
243
+ ## Ruby skeleton and Related projects
244
+
245
+ Noe is inspired by existing projects, mostly from the ruby community. In particular, the
246
+ default ruby template has been heavily influenced by the projects below as well as feedback
247
+ of their authors:
248
+
249
+ * [hoe](http://seattlerb.rubyforge.org/hoe/), Ryan Davis and Eric Hodel
250
+ * [echoe](https://github.com/fauna/echoe), Evan Weaver
251
+ * [bones](https://github.com/TwP/bones), Tim Pease
252
+
253
+ These projects help you generating and maintaining ruby projects (generally gem libraries,
254
+ in fact). All provide powerful tools that supports you along the different steps of your
255
+ ruby software lifecycle (creating, testing, releasing, announcing, and so on.). They mostly
256
+ differ in the way you can tune/configure the generated project for specific needs.
257
+
258
+ These projects differ from the Ruby skeleton proposed by Noe in that they use a control
259
+ approach (rake tasks installed in your project via a development/runtime dependency) while
260
+ Noe uses a generative approach (the generated ruby project and rake tasks do not depend on
261
+ Noe at all).
262
+
263
+ You'll find more information about the Noe's ruby skeleton in it's own
264
+ [README](https://github.com/blambeau/noe/blob/master/templates/ruby/README.md).
265
+
266
+ ## Short guide for template maintainers
267
+
268
+ Under ~/.noe, a valid template folder (say xxx) has the following structure
269
+
270
+ xxx # Template name
271
+ README(.md|.txt|...) # Information about the template and it's usage
272
+ CHANGELOG(.md|.txt|...) # Change information
273
+ noespec.yaml # Template specification
274
+ src # Source folder, contains files to be instantiated
275
+ ... # [everything that will be instantiated]
276
+
277
+ ### noespec.yaml
278
+
279
+ The noespec.yaml file of a template is used to formally describe the template. When a
280
+ project (say foo) is created (see 'noe prepare') using a template (say ruby) the file
281
+ ~/.noe/ruby/noespec.yaml is used to generate foo/foo.noespec. The later is then used
282
+ by 'noe go' to instantiate the project.
283
+
284
+ The noespec.yaml file should ressemble something like this:
285
+
286
+ # DO NOT TOUCH 'name' entry and specify the other
287
+ template-info:
288
+ name: !{template_name}
289
+ summary: ...
290
+ description: ...
291
+ version: ...
292
+ author: ...
293
+
294
+ #
295
+ # The following is a hash of template-related variables. They are
296
+ # used to provide dynamic file names and instantiate file contents.
297
+ #
298
+ # Current version of Noe only supports variable names matching /[a-z]+/
299
+ #
300
+ variables:
301
+ ...
302
+
303
+ Have a look at ~/.noe/ruby/noespec.yaml and ~/.noe/ruby/src for an example.
304
+
305
+ ### Instantiation process
306
+
307
+ The instantiation process is really simple. Given the variables described in the
308
+ noespec.yaml file (for which values are specified in your .noespec file) templates
309
+ can use the following meta-constructions:
310
+
311
+ * Template files and directories containing `__variable__` in their name are automatically
312
+ renamed (`__variable__` is replaced by the corresponding value).
313
+ * All template files are instantiated by [wlang](https://github.com/blambeau/wlang). You
314
+ don't have to know wlang in depth. You simply have to know that `!{ruby_expression}` in
315
+ a file is replaced by the expression evaluation. Variables are automatically in scope
316
+ of such expressions, so that `!{variable}` is replaced by its value.
317
+
318
+ ## Contributing
319
+
320
+ Fork Noe on github! I'm particularly interested in the following enhancements:
321
+
322
+ * Extend test coverage, which is ugly so far.
323
+ * Enhance the default ruby template, but remember "documentation matters, not magic!"
324
+ * Add support for other generators than _wlang_
325
+ * Add support for multi-generated files from arrays in .noespec files
326
+ * ...
327
+
328
+ If you think that your template is worth considering for (ruby, rails, js, latex, or
329
+ anything else) please let me known and I'll add it to the list below.
330
+
331
+ * ...
332
+
333
+ email:
334
+ - blambeau@gmail.com
110
335
  executables:
111
336
  - noe
112
337
  extensions: []
@@ -114,44 +339,82 @@ extensions: []
114
339
  extra_rdoc_files:
115
340
  - README.md
116
341
  - CHANGELOG.md
342
+ - LICENCE.md
117
343
  files:
118
- - bin/noe
119
- - lib/noe/commons.rb
120
- - lib/noe/config.rb
121
- - lib/noe/config.yaml
122
- - lib/noe/create.rb
123
- - lib/noe/go.rb
124
- - lib/noe/help.rb
125
- - lib/noe/install.rb
126
- - lib/noe/list.rb
127
- - lib/noe/main.rb
128
- - lib/noe/template.rb
129
- - lib/noe.rb
344
+ - ./noe.gemspec
345
+ - ./CHANGELOG.md
346
+ - ./Gemfile
347
+ - ./bin/noe
348
+ - ./lib/noe/commons.rb
349
+ - ./lib/noe/config.rb
350
+ - ./lib/noe/config.yaml
351
+ - ./lib/noe/ext/array.rb
352
+ - ./lib/noe/ext/hash.rb
353
+ - ./lib/noe/go.rb
354
+ - ./lib/noe/help.rb
355
+ - ./lib/noe/install.rb
356
+ - ./lib/noe/list.rb
357
+ - ./lib/noe/loader.rb
358
+ - ./lib/noe/main.rb
359
+ - ./lib/noe/prepare.rb
360
+ - ./lib/noe/show_spec.rb
361
+ - ./lib/noe/template.rb
362
+ - ./lib/noe.rb
363
+ - ./LICENCE.md
364
+ - ./Rakefile
365
+ - ./README.md
366
+ - ./spec/ext/hash/methodize_spec.rb
367
+ - ./spec/noe_spec.rb
368
+ - ./spec/spec_helper.rb
369
+ - ./spec/template/entry/infer_wlang_dialect_spec.rb
370
+ - ./spec/template/entry/relocate_spec.rb
371
+ - ./spec/template/entry/rename_one_spec.rb
372
+ - ./tasks/gem.rake
373
+ - ./tasks/spec_test.rake
374
+ - ./tasks/unit_test.rake
375
+ - ./tasks/yard.rake
376
+ - ./templates/ruby/CHANGELOG.md
377
+ - ./templates/ruby/noespec.yaml
378
+ - ./templates/ruby/README.md
379
+ - ./templates/ruby/short.yaml
380
+ - ./templates/ruby/src/__lower__.gemspec
381
+ - ./templates/ruby/src/CHANGELOG.md
382
+ - ./templates/ruby/src/Gemfile
383
+ - ./templates/ruby/src/lib/__lower__/loader.rb
384
+ - ./templates/ruby/src/lib/__lower__.rb
385
+ - ./templates/ruby/src/LICENCE.md
386
+ - ./templates/ruby/src/Manifest.txt
387
+ - ./templates/ruby/src/Rakefile
388
+ - ./templates/ruby/src/README.md
389
+ - ./templates/ruby/src/spec/__lower___spec.rb
390
+ - ./templates/ruby/src/spec/spec_helper.rb
391
+ - ./templates/ruby/src/tasks/gem.rake
392
+ - ./templates/ruby/src/tasks/spec_test.rake
393
+ - ./templates/ruby/src/tasks/unit_test.rake
394
+ - ./templates/ruby/src/tasks/yard.rake
395
+ - spec/ext/hash/methodize_spec.rb
130
396
  - spec/noe_spec.rb
131
397
  - spec/spec_helper.rb
398
+ - spec/template/entry/infer_wlang_dialect_spec.rb
132
399
  - spec/template/entry/relocate_spec.rb
133
400
  - spec/template/entry/rename_one_spec.rb
134
- - templates/ruby/CHANGELOG.md
135
- - templates/ruby/noespec.yaml
136
- - templates/ruby/README.md
137
- - templates/ruby/src/__lower__.gemspec
138
- - templates/ruby/src/CHANGELOG.md
139
- - templates/ruby/src/lib/__lower__.rb
140
- - templates/ruby/src/LICENCE.txt
141
- - templates/ruby/src/Rakefile
142
- - templates/ruby/src/README.md
143
- - templates/ruby/src/spec/__lower___spec.rb
144
- - templates/ruby/src/spec/spec_helper.rb
145
- - noe.gemspec
146
- - Rakefile
401
+ - bin/noe
147
402
  - README.md
148
403
  - CHANGELOG.md
149
- - LICENCE.txt
404
+ - LICENCE.md
150
405
  has_rdoc: true
151
406
  homepage: http://github.com/blambeau/noe
152
407
  licenses: []
153
408
 
154
- post_install_message:
409
+ post_install_message: |
410
+ Noe successfully installed!
411
+
412
+ What's next?
413
+ - 'noe help install' for configuration and default templates
414
+ - 'noe prepare --template=ruby hello_world'
415
+
416
+ Thank you for using Noe, enjoy!
417
+
155
418
  rdoc_options: []
156
419
 
157
420
  require_paths:
@@ -161,6 +424,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
424
  requirements:
162
425
  - - ">="
163
426
  - !ruby/object:Gem::Version
427
+ hash: 3
164
428
  segments:
165
429
  - 0
166
430
  version: "0"
@@ -169,15 +433,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
433
  requirements:
170
434
  - - ">="
171
435
  - !ruby/object:Gem::Version
436
+ hash: 3
172
437
  segments:
173
438
  - 0
174
439
  version: "0"
175
440
  requirements: []
176
441
 
177
442
  rubyforge_project:
178
- rubygems_version: 1.3.7
443
+ rubygems_version: 1.4.2
179
444
  signing_key:
180
445
  specification_version: 3
181
- summary: Noe helps development by providing support for project templates and instantiation.
182
- test_files: []
183
-
446
+ summary: Noe is a tool that generates projects from predefined skeletons (aka project/application templates). Skeletons are designed for building specific products (a ruby library, a static or dynamic web site, ...). Noe instantiates them and helps you maintaining your product via meta-information provided by a .noespec yaml file.
447
+ test_files:
448
+ - spec/ext/hash/methodize_spec.rb
449
+ - spec/noe_spec.rb
450
+ - spec/spec_helper.rb
451
+ - spec/template/entry/infer_wlang_dialect_spec.rb
452
+ - spec/template/entry/relocate_spec.rb
453
+ - spec/template/entry/rename_one_spec.rb