bmarzolf-picnic 0.8.0.20090420

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 (45) hide show
  1. data/CHANGELOG.txt +1 -0
  2. data/History.txt +78 -0
  3. data/LICENSE.txt +165 -0
  4. data/Manifest.txt +45 -0
  5. data/README.txt +31 -0
  6. data/Rakefile +64 -0
  7. data/lib/picnic/authentication.rb +254 -0
  8. data/lib/picnic/cli.rb +165 -0
  9. data/lib/picnic/conf.rb +135 -0
  10. data/lib/picnic/controllers.rb +4 -0
  11. data/lib/picnic/logger.rb +41 -0
  12. data/lib/picnic/server.rb +99 -0
  13. data/lib/picnic/service_control.rb +274 -0
  14. data/lib/picnic/version.rb +9 -0
  15. data/lib/picnic.rb +11 -0
  16. data/setup.rb +1585 -0
  17. data/test/picnic_test.rb +11 -0
  18. data/test/test_helper.rb +2 -0
  19. data/vendor/camping-2.0.20090420/CHANGELOG +118 -0
  20. data/vendor/camping-2.0.20090420/COPYING +18 -0
  21. data/vendor/camping-2.0.20090420/README +82 -0
  22. data/vendor/camping-2.0.20090420/Rakefile +180 -0
  23. data/vendor/camping-2.0.20090420/bin/camping +97 -0
  24. data/vendor/camping-2.0.20090420/doc/camping.1.gz +0 -0
  25. data/vendor/camping-2.0.20090420/examples/README +5 -0
  26. data/vendor/camping-2.0.20090420/examples/blog.rb +375 -0
  27. data/vendor/camping-2.0.20090420/examples/campsh.rb +629 -0
  28. data/vendor/camping-2.0.20090420/examples/tepee.rb +242 -0
  29. data/vendor/camping-2.0.20090420/extras/Camping.gif +0 -0
  30. data/vendor/camping-2.0.20090420/extras/permalink.gif +0 -0
  31. data/vendor/camping-2.0.20090420/lib/camping/ar/session.rb +132 -0
  32. data/vendor/camping-2.0.20090420/lib/camping/ar.rb +78 -0
  33. data/vendor/camping-2.0.20090420/lib/camping/mab.rb +26 -0
  34. data/vendor/camping-2.0.20090420/lib/camping/reloader.rb +184 -0
  35. data/vendor/camping-2.0.20090420/lib/camping/server.rb +159 -0
  36. data/vendor/camping-2.0.20090420/lib/camping/session.rb +75 -0
  37. data/vendor/camping-2.0.20090420/lib/camping-unabridged.rb +630 -0
  38. data/vendor/camping-2.0.20090420/lib/camping.rb +52 -0
  39. data/vendor/camping-2.0.20090420/setup.rb +1551 -0
  40. data/vendor/camping-2.0.20090420/test/apps/env_debug.rb +65 -0
  41. data/vendor/camping-2.0.20090420/test/apps/forms.rb +95 -0
  42. data/vendor/camping-2.0.20090420/test/apps/misc.rb +86 -0
  43. data/vendor/camping-2.0.20090420/test/apps/sessions.rb +38 -0
  44. data/vendor/camping-2.0.20090420/test/test_camping.rb +54 -0
  45. metadata +140 -0
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin require "rubygems" rescue LoadError end
4
+ require "camping"
5
+
6
+ Camping.goes :EnvDebug
7
+
8
+ module EnvDebug
9
+ module Controllers
10
+ class ShowEnv < R '/', '/(.*)'
11
+ def get(extra = nil)
12
+ @extra = extra
13
+ render :show_env
14
+ end
15
+ alias post get
16
+ end
17
+ end
18
+
19
+ module Views
20
+ def layout
21
+ html do
22
+ head{ title C }
23
+ body do
24
+ ul do
25
+ li{ a "show env", :href=>R(ShowEnv)}
26
+ end
27
+ p { yield }
28
+ end
29
+ end
30
+ end
31
+
32
+ def _print_hash(hash)
33
+ hash.keys.sort.each do |key|
34
+ value = hash[key]
35
+ pre "%30s: %s" % [key.inspect, value.inspect]
36
+ end
37
+ end
38
+
39
+ def show_env
40
+ b "extra: #{@extra.inspect}"
41
+ h2 "@status : #{@status.inspect}"
42
+ h2 "@method : #{@method.inspect}"
43
+ h2 "@root : #{@root.inspect}"
44
+ h2 "@env :"
45
+ _print_hash @env
46
+ h2 "@input : "
47
+ _print_hash @input
48
+ h2 "@headers :"
49
+ _print_hash @headers
50
+ end
51
+
52
+ end
53
+ end
54
+
55
+ # For CGI
56
+ if $0 == __FILE__
57
+ EnvDebug.create if EnvDebug.respond_to? :create
58
+ if ARGV.any?
59
+ require 'camping/fastcgi'
60
+ #Dir.chdir('/var/camping/blog/')
61
+ Camping::FastCGI.start(EnvDebug)
62
+ else
63
+ puts EnvDebug.run
64
+ end
65
+ end
@@ -0,0 +1,95 @@
1
+ require "camping"
2
+
3
+ Camping.goes :Forms
4
+
5
+ module Forms
6
+ module Controllers
7
+ class Index < R '/'
8
+ def get; render :index end
9
+ end
10
+ class GetForm
11
+ def get; render :get_form; end
12
+ end
13
+ class GetFormResult
14
+ def get; render :form_result; end
15
+ end
16
+ class PostForm
17
+ def get; render :post_form; end
18
+ def post; render :form_result; end
19
+ end
20
+ class FileForm
21
+ def get; render :file_form; end
22
+ def post; render :form_result; end
23
+ end
24
+ end
25
+
26
+ module Views
27
+ def layout
28
+ html do
29
+ head{ title C }
30
+ body do
31
+ ul do
32
+ li{ a "index", :href=>R(Index)}
33
+ li{ a "get form", :href=>R(GetForm)}
34
+ li{ a "post form", :href=>R(PostForm)}
35
+ li{ a "file form", :href=>R(FileForm)}
36
+ end
37
+ p { yield }
38
+ end
39
+ end
40
+ end
41
+
42
+ def form_result
43
+ p @input.inspect
44
+ end
45
+
46
+ def index
47
+ h1 "Welcome on the Camping test app"
48
+ end
49
+
50
+ def get_form
51
+ form :action=>R(GetFormResult), :method=>:get do
52
+ label "Give me your name!", :for=>:name
53
+ input :type=>:text, :name=>:name; br
54
+ input :type=>:text, :name=>"arr[]"; br
55
+ input :type=>:text, :name=>"arr[]"; br
56
+ input :type=>:text, :name=>"hash[x]"; br
57
+ input :type=>:text, :name=>"hash[y]"; br
58
+
59
+ input :type=>:submit
60
+ end
61
+ end
62
+
63
+ def post_form
64
+ form :action=>R(PostForm), :method=>:post do
65
+ label "Give me your name!", :for=>:name
66
+ input :type=>:text, :name=>:name; br
67
+ input :type=>:text, :name=>"arr[]"; br
68
+ input :type=>:text, :name=>"arr[]"; br
69
+ input :type=>:text, :name=>"hash[x]"; br
70
+ input :type=>:text, :name=>"hash[y]"; br
71
+
72
+ input :type=>:submit
73
+ end
74
+ end
75
+
76
+ def file_form
77
+ form :action=>R(FileForm), :method=>:post, :enctype=>"multipart/form-data" do
78
+ input :type=>:text, :name=>"arr"
79
+ input :type=>:text, :name=>"arr"; br
80
+ input :type=>:file, :name=>"first_file"; br
81
+ input :type=>:file, :name=>"files[]"; br
82
+ input :type=>:file, :name=>"files[]"; br
83
+ input :type=>:submit
84
+ end
85
+ end
86
+
87
+
88
+ end
89
+ end
90
+
91
+ # For CGI
92
+ if $0 == __FILE__
93
+ Forms.create
94
+ Forms.run
95
+ end
@@ -0,0 +1,86 @@
1
+ require "camping"
2
+
3
+ Camping.goes :Misc
4
+
5
+ module Misc
6
+ module Controllers
7
+ class Index < R '/'
8
+ def get; render :index end
9
+ end
10
+ class RenderPartial
11
+ def get; render :_partial; end
12
+ end
13
+ class Xsendfile
14
+ def get
15
+ @headers["X-Sendfile"] = File.expand_path(__FILE__)
16
+ "You shouldn't get this text"
17
+ end
18
+ end
19
+ class Links < R '/links', '/links/(\w+)/with/(\d+)/args'
20
+ def get(*args); render :links; end
21
+ end
22
+ class Redirect
23
+ def get; redirect(RR) end
24
+ end
25
+ class RR
26
+ def get; render :rr; end
27
+ end
28
+ class BadLinks
29
+ def get; render :bad_links; end
30
+ end
31
+ class BadMethod; end
32
+ end
33
+
34
+ module Views
35
+ def layout
36
+ html do
37
+ head{ title C }
38
+ body do
39
+ ul do
40
+ li{ a "index", :href=>R(Index)}
41
+ li{ a "render partial", :href=>R(RenderPartial)}
42
+ li{ a "X-Sendfile", :href=>R(Xsendfile)}
43
+ li{ a "Links", :href=>R(Links)}
44
+ li{ a "BadLinks", :href=>R(BadLinks)}
45
+ li{ a "Redirect", :href=>R(Redirect)}
46
+ li{ a "BadMethod", :href=>R(BadMethod)}
47
+ end
48
+ p { yield }
49
+ end
50
+ end
51
+ end
52
+
53
+ def _partial
54
+ a "go back to index", :href=>R(Index)
55
+ end
56
+
57
+ def index
58
+ h1 "Welcome on the Camping test app"
59
+ end
60
+
61
+ def links
62
+ a "plain", :href=>R(Links); br
63
+ a "with args and hash", :href=>R(Links, "moo", 3, :with=>"Hash"); br
64
+ a "with args and mult. hash", :href=>R(Links, "hoi", 8, :with=>"multiple", 3=>"hash"); br
65
+ # TODO : with <AR::Base object
66
+ end
67
+
68
+ def bad_links
69
+ a "null controller", :href=>R(nil)
70
+ a "bad arity", :href=>R(RR, :moo)
71
+ a "bad args", :href=>R(Links, 3, "moo")
72
+ end
73
+
74
+ def rr
75
+ p "got redirected"
76
+ end
77
+
78
+
79
+ end
80
+ end
81
+
82
+ # For CGI
83
+ if $0 == __FILE__
84
+ Misc.create
85
+ Misc.run
86
+ end
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rubygems"
4
+ require "camping"
5
+
6
+ Camping.goes :Sessions
7
+ require 'camping/session'
8
+
9
+ module Sessions
10
+ include Camping::Session
11
+ module Controllers
12
+ class One < R('/')
13
+ def get
14
+ @state = C::H['one',rand(100)]
15
+ puts "1:" + @state.inspect
16
+ redirect R(Two)
17
+ end
18
+ end
19
+
20
+ class Two < R('/steptwo')
21
+ def get
22
+ @state['two'] = "This is in two"
23
+ puts "2:" + @state.inspect
24
+ redirect R(Three)
25
+ end
26
+ end
27
+
28
+ class Three < R('/stepthree')
29
+ def get
30
+ @state['three'] = "This is in three"
31
+ puts "3:" + @state.inspect
32
+ return "Accumulated state across redirects: #{@state.inspect}"
33
+ redirect R(Three)
34
+ end
35
+ end
36
+ end
37
+ end
38
+
@@ -0,0 +1,54 @@
1
+ require "test/unit"
2
+ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
3
+ require "camping"
4
+
5
+ class Test_Camping_class_methods < Test::Unit::TestCase
6
+ def test_escape_from_the_doc
7
+ assert_equal "I%27d+go+to+the+museum+straightway%21", Camping.escape("I'd go to the museum straightway!")
8
+ end
9
+
10
+ def test_utf8_escape
11
+ assert_equal "%E6%97%A5%E6%9C%AC%E5%9B%BD", Camping.escape("\346\227\245\346\234\254\345\233\275")
12
+ end
13
+
14
+ def test_unescape_from_the_doc
15
+ assert_equal "I'd go to the museum straightway!", Camping.un("I%27d+go+to+the+museum+straightway%21")
16
+ end
17
+
18
+ def test_utf8_unescape
19
+ assert_equal "\346\227\245\346\234\254\345\233\275", Camping.un("%E6%97%A5%E6%9C%AC%E5%9B%BD")
20
+ end
21
+
22
+ def test_qsp_from_the_doc
23
+ input = Camping.qsp("name=Philarp+Tremain&hair=sandy+blonde")
24
+ assert_equal "Philarp Tremain", input.name
25
+ assert_equal "sandy blonde", input.hair
26
+ end
27
+
28
+ def test_qsp_with_array
29
+ input = Camping.qsp("users[]=why&users[]=rambo")
30
+ assert_equal ["why", "rambo"], input.users
31
+ end
32
+
33
+ def test_qsp_with_hash
34
+ input = Camping.qsp("post[id]=1&post[user]=_why")
35
+ hash = {'post' => {'id' => '1', 'user' => '_why'}}
36
+ assert_equal hash, input
37
+ end
38
+
39
+ def test_qsp_malformed1
40
+ input = Camping.qsp("name=Philarp+Tremain&&hair=sandy+blonde")
41
+ assert_equal "Philarp Tremain", input.name
42
+ assert_equal "sandy blonde", input.hair
43
+ end
44
+
45
+ def test_qsp_malformed2
46
+ input = Camping.qsp("morta==del")
47
+ assert_equal "=del", input.morta
48
+ end
49
+
50
+ # TODO : Test Camping.kp
51
+ # TODO : Test Camping.run
52
+
53
+ end
54
+
metadata ADDED
@@ -0,0 +1,140 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bmarzolf-picnic
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0.20090420
5
+ platform: ruby
6
+ authors:
7
+ - Matt Zukowski
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-04-20 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rack
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0"
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: markaby
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: activesupport
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: hoe
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: 1.8.2
54
+ version:
55
+ description: Camping for sissies
56
+ email: matt@roughest.net
57
+ executables: []
58
+
59
+ extensions: []
60
+
61
+ extra_rdoc_files:
62
+ - CHANGELOG.txt
63
+ - History.txt
64
+ - LICENSE.txt
65
+ - Manifest.txt
66
+ - README.txt
67
+ files:
68
+ - CHANGELOG.txt
69
+ - History.txt
70
+ - LICENSE.txt
71
+ - Manifest.txt
72
+ - README.txt
73
+ - Rakefile
74
+ - lib/picnic.rb
75
+ - lib/picnic/authentication.rb
76
+ - lib/picnic/cli.rb
77
+ - lib/picnic/conf.rb
78
+ - lib/picnic/controllers.rb
79
+ - lib/picnic/logger.rb
80
+ - lib/picnic/server.rb
81
+ - lib/picnic/service_control.rb
82
+ - lib/picnic/version.rb
83
+ - setup.rb
84
+ - test/picnic_test.rb
85
+ - test/test_helper.rb
86
+ - vendor/camping-2.0.20090420/CHANGELOG
87
+ - vendor/camping-2.0.20090420/COPYING
88
+ - vendor/camping-2.0.20090420/README
89
+ - vendor/camping-2.0.20090420/Rakefile
90
+ - vendor/camping-2.0.20090420/bin/camping
91
+ - vendor/camping-2.0.20090420/doc/camping.1.gz
92
+ - vendor/camping-2.0.20090420/examples/README
93
+ - vendor/camping-2.0.20090420/examples/blog.rb
94
+ - vendor/camping-2.0.20090420/examples/campsh.rb
95
+ - vendor/camping-2.0.20090420/examples/tepee.rb
96
+ - vendor/camping-2.0.20090420/extras/Camping.gif
97
+ - vendor/camping-2.0.20090420/extras/permalink.gif
98
+ - vendor/camping-2.0.20090420/lib/camping-unabridged.rb
99
+ - vendor/camping-2.0.20090420/lib/camping.rb
100
+ - vendor/camping-2.0.20090420/lib/camping/ar.rb
101
+ - vendor/camping-2.0.20090420/lib/camping/ar/session.rb
102
+ - vendor/camping-2.0.20090420/lib/camping/mab.rb
103
+ - vendor/camping-2.0.20090420/lib/camping/reloader.rb
104
+ - vendor/camping-2.0.20090420/lib/camping/server.rb
105
+ - vendor/camping-2.0.20090420/lib/camping/session.rb
106
+ - vendor/camping-2.0.20090420/setup.rb
107
+ - vendor/camping-2.0.20090420/test/apps/env_debug.rb
108
+ - vendor/camping-2.0.20090420/test/apps/forms.rb
109
+ - vendor/camping-2.0.20090420/test/apps/misc.rb
110
+ - vendor/camping-2.0.20090420/test/apps/sessions.rb
111
+ - vendor/camping-2.0.20090420/test/test_camping.rb
112
+ has_rdoc: true
113
+ homepage: http://picnic.rubyforge.org
114
+ post_install_message:
115
+ rdoc_options:
116
+ - --main
117
+ - README.txt
118
+ require_paths:
119
+ - lib
120
+ required_ruby_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: "0"
125
+ version:
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: "0"
131
+ version:
132
+ requirements: []
133
+
134
+ rubyforge_project: picnic
135
+ rubygems_version: 1.2.0
136
+ signing_key:
137
+ specification_version: 2
138
+ summary: Camping for sissies
139
+ test_files:
140
+ - test/picnic_test.rb