sinatra_more 0.3.0 → 0.3.1
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.
- data/README.rdoc +12 -2
- data/TODO +2 -6
- data/VERSION +1 -1
- data/bin/sinatra_gen +2 -1
- data/generators/generator_actions.rb +3 -2
- data/generators/skeleton_generator.rb +8 -5
- data/sinatra_more.gemspec +1 -1
- metadata +1 -1
data/README.rdoc
CHANGED
@@ -45,13 +45,13 @@ of tools, helpers and components that will make Sinatra suitable for more comple
|
|
45
45
|
|
46
46
|
Here is a small list of what sinatra_more contains:
|
47
47
|
|
48
|
+
* Code generators for creating new sinatra applications (using <tt>sinatra_gen</tt> on command line)
|
48
49
|
* Generic view and tag helpers (<tt>tag</tt>, <tt>content_tag</tt>, <tt>input_tag</tt>, ...)
|
49
50
|
* Asset tag helpers (<tt>link_to</tt>, <tt>image_tag</tt>, <tt>javascript_include_tag</tt>, ...)
|
50
51
|
* Full form helpers and builders support (<tt>form_tag</tt>, <tt>form_for</tt>, <tt>field_set_tag</tt>, <tt>text_field</tt>, ...)
|
51
52
|
* Generally useful formatting extensions (<tt>relative_time_ago</tt>, <tt>js_escape_html</tt>, <tt>sanitize_html</tt>)
|
52
53
|
* Simple 'mailer' support for sinatra (akin to <tt>ActionMailer</tt> but simpler and powered by <tt>pony</tt>)
|
53
54
|
* Plug and play setup for the excellent Warden authentication system
|
54
|
-
* Code generators for creating new sinatra applications (COMING SOON)
|
55
55
|
|
56
56
|
Keep in mind, the user will be able to pull in these components seperately and leave out those that are not required.
|
57
57
|
|
@@ -347,6 +347,8 @@ I hope to create or merge in an even better 'default' form_builder in the near f
|
|
347
347
|
* Escapes html to allow passing information to javascript. Used for passing data inside an ajax .js.erb template
|
348
348
|
* <tt>escape_javascript("<h1>Hey</h1>")</tt>
|
349
349
|
|
350
|
+
See the wiki article for additional information: <http://wiki.github.com/nesquena/sinatra_more/markupplugin>
|
351
|
+
|
350
352
|
=== RenderPlugin
|
351
353
|
|
352
354
|
This component provides a number of rendering helpers for sinatra, making the process
|
@@ -398,6 +400,8 @@ This works as you would expect and also supports the collection counter inside t
|
|
398
400
|
|
399
401
|
And that concludes the render plugin for now but I am open to adding more methods as time progresses.
|
400
402
|
|
403
|
+
See the wiki article for additional information: <http://wiki.github.com/nesquena/sinatra_more/renderplugin>
|
404
|
+
|
401
405
|
=== WardenPlugin
|
402
406
|
|
403
407
|
This component provides out-of-the-box support for Warden authentication. With this
|
@@ -467,6 +471,8 @@ Eventually I plan to vendor that gem or just remove support for this piece of my
|
|
467
471
|
If anybody has any thoughts on this or the warden integration in general, please let me know.
|
468
472
|
Nonetheless, there is a certain convenience for me having access to a plug-and-play warden solution directly from this gem.
|
469
473
|
|
474
|
+
See the wiki article for additional information: <http://wiki.github.com/nesquena/sinatra_more/wardenplugin>
|
475
|
+
|
470
476
|
=== MailerPlugin
|
471
477
|
|
472
478
|
This component uses an enhanced version of the excellent <tt>pony</tt> library (vendored) for a powerful but simple
|
@@ -540,6 +546,8 @@ or perhaps we want to have a short body without the need for a template file:
|
|
540
546
|
body "This is a short body defined right in the mailer itself"
|
541
547
|
end
|
542
548
|
end
|
549
|
+
|
550
|
+
See the wiki article for additional information: <http://wiki.github.com/nesquena/sinatra_more/mailerplugin>
|
543
551
|
|
544
552
|
== Sinatra Generators
|
545
553
|
|
@@ -568,7 +576,7 @@ There is also support for aliases for each component within the command:
|
|
568
576
|
|
569
577
|
The available components and their default options are listed below:
|
570
578
|
|
571
|
-
* test: <tt>bacon</tt> (default), <tt>shoulda</tt>, <tt>rspec</tt>, <tt>testspec</tt
|
579
|
+
* test: <tt>bacon</tt> (default), <tt>shoulda</tt>, <tt>rspec</tt>, <tt>testspec</tt>, <tt>riot</tt>
|
572
580
|
* renderer: <tt>erb</tt> (default), <tt>haml</tt>
|
573
581
|
* mock: <tt>mocha</tt> (default), <tt>rr</tt>
|
574
582
|
* script: <tt>jquery</tt> (default), <tt>prototype</tt>, <tt>rightjs</tt>
|
@@ -584,6 +592,8 @@ We are planning to add additional generator actions such as:
|
|
584
592
|
* Model generator (working for any of the available orms listed)
|
585
593
|
* Routes generator
|
586
594
|
* Migrations generator
|
595
|
+
|
596
|
+
See the wiki article for additional information: <http://wiki.github.com/nesquena/sinatra_more/generator>
|
587
597
|
|
588
598
|
== Acknowledgements
|
589
599
|
|
data/TODO
CHANGED
@@ -1,20 +1,16 @@
|
|
1
1
|
= UNFINISHED
|
2
2
|
|
3
|
+
* Add support for model, routes, migration generator types based on components
|
3
4
|
* Add support for fields_for tag in formbuilder
|
4
5
|
* Add support for button tag method, mail_to helper
|
5
6
|
* Add support for check_box_group, radio_button_group which create a set of checkboxes or radio buttons
|
6
|
-
* Look into creating sinatra generators using rubigen (http://github.com/drnic/rubigen)
|
7
|
-
* http://github.com/quirkey/sinatra-gen
|
8
|
-
* test generators
|
9
|
-
* add support for model, routes, migration generator types
|
10
7
|
* Become total warden solution (basically just require warden gem installed, do everything else)
|
11
8
|
* Look into removing overlapping methods and simply leverage sinatra_warden
|
12
9
|
* Take advantage of shared strategies: http://github.com/hassox/warden_strategies/tree/master/lib/
|
13
|
-
* Make warden password strategy support a callback which explains what to do with username, password
|
14
|
-
* WardenPlugin.authenticate_callback { |username, password| User.authenticate(username, password) }
|
15
10
|
|
16
11
|
= COMPLETED
|
17
12
|
|
13
|
+
* Created application generator using thor
|
18
14
|
* Add support for a MailerPlugin which will make sending emails a breeze (http://github.com/hiroshi/pony)
|
19
15
|
* Add support for missing formbuilder fields (select, and standard_form_builder methods i.e check_box_group)
|
20
16
|
* Add support for missing formhelpers/fields (radio_button_tag, select_tag)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
data/bin/sinatra_gen
CHANGED
@@ -58,9 +58,10 @@ module SinatraMore
|
|
58
58
|
# Defines a class option to allow a component to be chosen and add to component type list
|
59
59
|
# Also builds the available_choices hash of which component choices are supported
|
60
60
|
# component_option :test, "Testing framework", :aliases => '-t', :choices => [:bacon, :shoulda]
|
61
|
-
def component_option(name,
|
61
|
+
def component_option(name, caption, options = {})
|
62
62
|
(@available_choices ||= Hash.new({}))[name] = options[:choices]
|
63
|
-
|
63
|
+
description = "The #{caption} component (#{options[:choices].join(', ')})"
|
64
|
+
class_option name, :default => options[:choices].first, :aliases => options[:aliases], :desc => description
|
64
65
|
end
|
65
66
|
|
66
67
|
# Returns the compiled list of component types which can be specified
|
@@ -6,21 +6,24 @@ module SinatraMore
|
|
6
6
|
class SkeletonGenerator < Thor::Group
|
7
7
|
# Define the source template root
|
8
8
|
def self.source_root; File.dirname(__FILE__); end
|
9
|
+
def self.banner; "sinatra_gen [app_name] [path] [options]"; end
|
9
10
|
|
10
11
|
# Include related modules
|
11
12
|
include Thor::Actions
|
12
13
|
include SinatraMore::GeneratorActions
|
13
14
|
include SinatraMore::ComponentActions
|
15
|
+
|
16
|
+
desc "Description:\n\n\tsinatra_gen is the sinatra_more generators which generate or build on Sinatra applications."
|
14
17
|
|
15
18
|
argument :name, :desc => "The name of your sinatra app"
|
16
19
|
argument :path, :desc => "The path to create your app"
|
17
20
|
|
18
21
|
# Definitions for the available customizable components
|
19
|
-
component_option :orm, "
|
20
|
-
component_option :test, "
|
21
|
-
component_option :mock, "
|
22
|
-
component_option :script, "
|
23
|
-
component_option :renderer, "
|
22
|
+
component_option :orm, "database engine", :aliases => '-d', :choices => [:sequel, :datamapper, :mongomapper, :activerecord]
|
23
|
+
component_option :test, "testing framework", :aliases => '-t', :choices => [:bacon, :shoulda, :rspec, :testspec, :riot]
|
24
|
+
component_option :mock, "mocking library", :aliases => '-m', :choices => [:mocha, :rr]
|
25
|
+
component_option :script, "javascript library", :aliases => '-s', :choices => [:jquery, :prototype, :rightjs]
|
26
|
+
component_option :renderer, "template engine", :aliases => '-r', :choices => [:erb, :haml]
|
24
27
|
|
25
28
|
# Copies over the base sinatra starting application
|
26
29
|
def setup_skeleton
|
data/sinatra_more.gemspec
CHANGED