camping 2.1.532 → 3.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.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +72 -53
  3. data/Rakefile +25 -20
  4. data/bin/camping +1 -0
  5. data/book/01_introduction.md +6 -6
  6. data/book/02_getting_started.md +348 -267
  7. data/book/03_more_about_controllers.md +124 -0
  8. data/book/04_more_about_views.md +118 -0
  9. data/book/05_more_about_markaby.md +173 -0
  10. data/book/06_more_about_models.md +58 -0
  11. data/book/06_rules_of_thumb.md +143 -0
  12. data/book/07_philosophy.md +23 -0
  13. data/book/08_publishing_an_app.md +118 -0
  14. data/book/09_upgrade_notes.md +96 -0
  15. data/book/10_middleware.md +69 -0
  16. data/book/11_gear.md +50 -0
  17. data/examples/blog.rb +38 -38
  18. data/lib/camping/ar.rb +20 -5
  19. data/lib/camping/commands.rb +388 -0
  20. data/lib/camping/gear/filters.rb +48 -0
  21. data/lib/camping/gear/inspection.rb +32 -0
  22. data/lib/camping/gear/kuddly.rb +178 -0
  23. data/lib/camping/gear/nancy.rb +170 -0
  24. data/lib/camping/loads.rb +15 -0
  25. data/lib/camping/mab.rb +1 -1
  26. data/lib/camping/reloader.rb +22 -17
  27. data/lib/camping/server.rb +145 -70
  28. data/lib/camping/session.rb +8 -5
  29. data/lib/camping/template.rb +1 -2
  30. data/lib/camping/tools.rb +43 -0
  31. data/lib/camping/version.rb +6 -0
  32. data/lib/camping-unabridged.rb +360 -133
  33. data/lib/camping.rb +78 -47
  34. data/lib/campingtrip.md +341 -0
  35. data/test/app_camping_gear.rb +121 -0
  36. data/test/app_camping_tools.rb +1 -0
  37. data/test/app_config.rb +30 -0
  38. data/test/app_cookies.rb +1 -1
  39. data/test/app_file.rb +3 -3
  40. data/test/app_goes_meta.rb +23 -0
  41. data/test/app_inception.rb +39 -0
  42. data/test/app_markup.rb +5 -20
  43. data/test/app_migrations.rb +16 -0
  44. data/test/app_partials.rb +1 -1
  45. data/test/app_prefixed.rb +88 -0
  46. data/test/app_reloader.rb +1 -2
  47. data/test/app_route_generating.rb +69 -2
  48. data/test/app_sessions.rb +24 -2
  49. data/test/app_simple.rb +18 -18
  50. data/test/apps/migrations.rb +82 -82
  51. data/test/apps/misc.rb +1 -1
  52. data/test/gear/gear_nancy.rb +129 -0
  53. data/test/test_helper.rb +69 -12
  54. metadata +152 -92
  55. data/CHANGELOG +0 -145
  56. data/book/51_upgrading.md +0 -110
data/CHANGELOG DELETED
@@ -1,145 +0,0 @@
1
- = 2.1
2
- === 19th Aug, 2010 (whyday)
3
- * Helpers#R now calls to_param on any object it passes in
4
- * Fix route generation issue with routes including "." (#22)
5
- * Improved tests
6
- * Improved 1.9 support
7
- * Camping::Server is now built upon Rack::Server
8
- * Add support for ERB, Haml etc through Tilt
9
- * Introducing Camping.options and Camping#set
10
- * Camping::Server only loads ActiveRecord when needed
11
-
12
- = 2.0
13
- === 9th Apr, 2010
14
- * Speed-up of Camping::Mab (thanks zimbatm!)
15
- * @state is now an alias of @env['rack.session']
16
- * Camping.use injects a Rack middleware.
17
- * Update Flipbook to RDoc 2.4
18
- * Removed old examples.
19
- * Updated examples/blog.rb
20
- * Camping::Apps returns!
21
- * Session-cookies now timeout naturally (thanks jenna!)
22
- * You can now `throw :halt` to halt the response in a helper.
23
- * Camping::H#u is gone (was an alias to merge!)
24
- * Camping::Session now uses session-cookies. The AR-backend is gone for now.
25
- * camping/db.rb has been renamed to camping/ar.rb.
26
- * Camping now uses Rack internally. Every app responds to #call.
27
-
28
- = 1.6
29
- === Never released
30
-
31
- * Camping::Apps removed, it wasn't reliable.
32
- * bin/camping server kinds splitted in various files.
33
- * NotFound and ServerError controllers changed to methods :
34
-
35
- r404 : called when a controller was not found
36
- r500 : called on uncaught exception
37
- r501 : called on undefined method
38
-
39
- All of those can be overridden at your taste.
40
-
41
- * Markaby no longer required. Like AR, is it autoloaded on (Mab) usage.
42
- * Camping::H is now inheriting from Hash instead of HashWithIndifferentAccess.
43
- * Which made possible to remove the last strict dependency : active_support
44
- * #errors_for removed, it wasn't really used
45
- * Bug fixes !
46
-
47
- = 1.5
48
- === 3rd Oct, 2006
49
-
50
- * Camping::Apps stores an array of classes for all loaded apps.
51
- * bin/camping can be given a directory. Like: <tt>camping examples/</tt>
52
- * Console mode -- thank zimbatm. Use: camping -C yourapp.rb
53
- * Call controllers with Camping.method_missing.
54
-
55
- Tepee.get(:Index) #=> (Response)
56
- Blog.post(:Delete, id) #=> (Response)
57
-
58
- Blog.post(:Login, :input => {'username' => 'admin', 'password' => 'camping'})
59
- #=> #<Blog::Controllers::Login @user=... >
60
-
61
- Blog.get(:Info, :env => {:HTTP_HOST => 'wagon'})
62
- #=> #<Blog::Controllers::Info @env={'HTTP_HOST'=>'wagon'} ...>
63
-
64
- * Using \r\n instead of \n on output. FastCGI has these needs.
65
- * ActiveRecord no longer required or installed.
66
- * If you refer to Models::Base, however, ActiveRecord will be loaded with autoload. (see lib/camping/db.rb)
67
- * new Camping::FastCGI.serve which will serve a whole directory of apps
68
- (see http://code.whytheluckystiff.net/camping/wiki/TheCampingServer)
69
- * ~/.campingrc can contain database connection info if you want your default to be something other than SQLite.
70
-
71
- database:
72
- adapter: mysql
73
- username: camping
74
- socket: /tmp/mysql.sock
75
- password: NOFORESTFIRES
76
- database: camping
77
-
78
- * controllers are now *ordered*. uses the inherited hook to keep track of all
79
- classes created with R. those classes are scanned, in order, when a request is
80
- made. any other controllers are handled first. so if you plan on overriding the
81
- urls method, be sure to subclass from R().
82
- * Console mode will load .irbrc in the working directory, if present.
83
- (for example, in my ~/git/balloon directory, i have this in the .irbrc:
84
- include Balloon::Models
85
- when camping -C balloon.rb gets run, the models all get included in main.)
86
- * And, of course, many other bugfixes from myself and the loyal+kind zimbatm...
87
- * Markaby updated to 0.5. (See its CHANGELOG.)
88
-
89
- = 1.4.2
90
- === 18th May, 2006
91
-
92
- * Efficient file uploads for multipart/form-data POSTs.
93
- * Camping tool now uses Mongrel, if available. If not, sticks with WEBrick.
94
- * Multiple apps can be loaded with the camping tool, each mounted according to their file name.
95
-
96
- = 1.4.1
97
- === 3rd May, 2006
98
-
99
- * Streaming HTTP support. If body is IO, will simply pass to the controller. Mongrel, in particular, supports this nicely.
100
-
101
- = 1.4
102
- === 11th April, 2006
103
-
104
- * Moved Camping::Controllers::Base to Camping::Base.
105
- * Moved Camping::Controllers::R to Camping::R.
106
- * New session library (lib/camping/session.rb).
107
- * WEBrick handler (lib/camping/webrick.rb) and Mongrel handler (lib/camping/mongrel.rb).
108
- * Helpers#URL, builds a complete URL for a route. Returns a URI object. This way relative links could just return self.URL.path.
109
- * Base#initialize takes over some of Base#service's duties.
110
- * ENV now available as @env in controllers and views.
111
- * Beautiful multi-page docs without frames!
112
-
113
- = 1.3
114
- === 28th January, 2006
115
-
116
- * bin/camping: an application launcher.
117
- * <tt>Camping.run(request, response)</tt> now changed to <tt>controller = Camping.run(request, env)</tt>
118
- * This means outputting the response is the wrapper/server's job. See bin/camping, you can do a controller.to_s at the least.
119
- * <tt>Controllers::Base.env</tt> is the new thread-safe home for <tt>ENV</tt>.
120
- * The input hash now works more like Rails params. You can call keys
121
- like methods or with symbols or strings.
122
- * Queries are now parsed more like PHP/Rails, in that you can denote
123
- structure with brackets: post[user]=_why;post[id]=2
124
- * Auto-prefix table names, to help prevent name clash.
125
- * Helpers.errors_for simple validation.
126
- * Lots of empty :href and :action attributes, a bug.
127
- * New single-page flipbook RDoc template.
128
-
129
- = 1.2
130
- === 23rd January, 2006
131
-
132
- * Camping.goes allows fresh modules build from all Camping parts.
133
- * File uploads now supported (multipart/form-data).
134
- * Helpers.R can rebuild routes.
135
- * Helpers./ for tracing paths from the root.
136
-
137
- = 1.1
138
- === 19th January, 2006
139
-
140
- * Allowed request and response streams to be passed in, to allow WEBrick and FastCGI support.
141
-
142
- = 1.0
143
- === 17th January, 2006
144
-
145
- * Initial checkin, see announcement at http://redhanded.hobix.com/bits/campingAMicroframework.html.
data/book/51_upgrading.md DELETED
@@ -1,110 +0,0 @@
1
- # Appendix I: Upgrade Notes
2
-
3
- This document includes everything needed in order to *upgrade* your
4
- applications. If you're looking for all the new features in a version, please
5
- have a look at the CHANGELOG in the Camping source.
6
-
7
-
8
- ##From 2.0 to 2.1
9
- ###Options
10
-
11
- In Camping 2.1 there is now a built-in way to store options and settings. If
12
- you use cookie session, it means that you'll now have to change to:
13
-
14
- module Nuts
15
- set :secret, "Very secret text, which no-one else should know!"
16
- include Camping::Session
17
- end
18
-
19
-
20
- ##From 1.5 to 2.0
21
- ###Rack
22
-
23
- The biggest change in 2.0 is that it now uses [Rack](http://rack.rubyforge.org/)
24
- internally. This means that you'll now have to deploy Camping differently, but
25
- hopefully more easily too. Now every Camping application is also a Rack
26
- application, so simply check out the documentation to the server of your
27
- choice.
28
-
29
- ###`require 'camping/db'`
30
-
31
- In earlier versions of Camping, you loaded database support by:
32
-
33
- require 'camping/db'
34
-
35
- Actually, this loaded a very thin layer on top of ActiveRecord, and in the
36
- future we want to experiment with other libraries. Therefore you should now
37
- simply remove the line, and instead just inherit from Base right away. This
38
- also means you'll have to place your migrations *after* the models.
39
-
40
- We also encourage you to use <tt>Model.table_name</tt> instead of
41
- <tt>:appname_model</tt>, just to make sure it's named correctly.
42
-
43
- ## Don't require anything:
44
- # require 'camping/db'
45
-
46
- module Nuts::Models
47
- ## Just inherit Base:
48
- class Page < Base; end
49
-
50
- ## Migrations have to come *after* the models:
51
- class CreateTheBasics < V 0.1
52
- def self.up
53
- create_table Page.table_name do |t|
54
- ...
55
- end
56
- end
57
-
58
- def self.down
59
- drop_table Page.table_name
60
- end
61
- end
62
- end
63
-
64
- ###Cookie Sessions
65
-
66
- Camping 2.0 now uses a cookie-based session system, which means you now longer
67
- need a database in order to use sessions. The disadvantage of this is that
68
- you are restricted to only around 4k of data. See below for the changes
69
- required, and see Camping::Session more details.
70
-
71
- module Nuts
72
- ## Include Camping::Session as before:
73
- include Camping::Session
74
-
75
- ## But also define a secret:
76
- secret "Very secret text, which no-one else should know!"
77
- end
78
-
79
- def Nuts.create
80
- ## And remove the following line:
81
- # Camping::Models::Session.create_schema
82
- end
83
-
84
- ###Error handling
85
-
86
- Camping now uses three methods in order to handle errors. These replaces the
87
- old classes NotFound and ServerError.
88
-
89
- * Camping::Base#r404 is called when a route can't be found.
90
- * Camping::Base#r501 is called when a route is found, but doesn't respond to
91
- the method.
92
- * Camping::Base#r500 is called when an error happens.
93
-
94
- You can override these in your application:
95
-
96
- module Nuts
97
- def r404(path)
98
- "Sorry, but I can't find #{path}."
99
- end
100
-
101
- def r501(method)
102
- "Sorry, but I can't respond to #{method}."
103
- end
104
-
105
- def r500(klass, method, ex)
106
- "Sorry, but #{klass}##{method} failed with #{ex}."
107
- end
108
- end
109
-
110
- It should be noted that this might change in the future.