camping 2.1.523 → 2.1.531

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.
@@ -50,6 +50,7 @@ module Camping
50
50
  U = Rack::Utils
51
51
  O = {}
52
52
  Apps = []
53
+ SK = :camping #Key for r.session
53
54
  # An object-like Hash.
54
55
  # All Camping query string and cookie variables are loaded as this.
55
56
  #
@@ -389,8 +390,9 @@ module Camping
389
390
  end
390
391
 
391
392
  # Serves the string +c+ with the MIME type of the filename +p+.
393
+ # Default text/html
392
394
  def serve(p, c)
393
- t = Rack::Mime.mime_type(p[/\..*$/], nil) and @headers['Content-Type'] = t
395
+ t = Rack::Mime.mime_type(p[/\..*$/], "text/html") and @headers['Content-Type'] = t
394
396
  c
395
397
  end
396
398
 
@@ -406,7 +408,7 @@ module Camping
406
408
  # end
407
409
  # end
408
410
  def to_a
409
- @env['rack.session'] = Hash[@state]
411
+ @env['rack.session'][SK] = Hash[@state]
410
412
  r = Rack::Response.new(@body, @status, @headers)
411
413
  @cookies._n.each do |k, v|
412
414
  r.set_cookie(k, v)
@@ -419,8 +421,8 @@ module Camping
419
421
  @root, @input, @cookies, @state,
420
422
  @headers, @status, @method =
421
423
  r.script_name.sub(/\/$/,''), n(r.params),
422
- Cookies[r.cookies], H[r.session.to_hash],
423
- {}, m =~ /r(\d+)/ ? $1.to_i : 200, m
424
+ Cookies[r.cookies], H[r.session[SK]||{}],
425
+ {'Content-Type'=>'text/html'}, m =~ /r(\d+)/ ? $1.to_i : 200, m
424
426
  @cookies._p = self/"/"
425
427
  end
426
428
 
@@ -615,11 +617,26 @@ module Camping
615
617
  #
616
618
  # module Nuts::Controllers; ... end
617
619
  # module Nuts::Models; ... end
618
- # module Nuts::Views; ... end
620
+ # module Nuts::Views; ... end
621
+ #
622
+ # Additionally, you can pass a Binding as the second parameter,
623
+ # which enables you to create a Camping-based application within
624
+ # another module, for example to namespace your web interface and
625
+ # code for a worker process together:
626
+ #
627
+ # module YourApplication
628
+ # Camping.goes :Web, binding()
629
+ # module Web
630
+ # ...
631
+ # end
632
+ # module Worker
633
+ # ...
634
+ # end
635
+ # end
619
636
  #
620
637
  # All the applications will be available in Camping::Apps.
621
- def goes(m)
622
- Apps << a = eval(S.gsub(/Camping/,m.to_s), TOPLEVEL_BINDING)
638
+ def goes(m, g=TOPLEVEL_BINDING)
639
+ Apps << a = eval(S.gsub(/Camping/,m.to_s), g)
623
640
  caller[0]=~/:/
624
641
  IO.read(a.set:__FILE__,$`)=~/^__END__/ &&
625
642
  (b=$'.split(/^@@\s*(.+?)\s*\r?\n/m)).shift rescue nil
@@ -1,7 +1,7 @@
1
1
  require "uri";require "rack";class Object;def meta_def m,&b;(class<<self;self
2
2
  end).send:define_method,m,&b end end;module Camping;C=self;S=IO.read(__FILE__
3
- )rescue nil;P="<h1>Cam\ping Problem!</h1><h2>%s</h2>";U=Rack::Utils;O={};Apps=[]
4
- class H<Hash;def method_missing m,*a;m.to_s=~/=$/?self[$`]=a[0]:a==[]?self[m.
3
+ )rescue nil;P="<h1>Cam\ping Problem!</h1><h2>%s</h2>";U=Rack::Utils;O={};Apps=[];
4
+ SK=:camping;class H<Hash;def method_missing m,*a;m.to_s=~/=$/?self[$`]=a[0]:a==[]?self[m.
5
5
  to_s]:super end;undef id,type if ??==63 end;class Cookies<H;attr_accessor :_p;
6
6
  def _n;@n||={}end;alias :_s :[]=;def set k,v,o={};_s(j=k.to_s,v);_n[j]=
7
7
  {:value=>v,:path=>_p}.update o;end;def []=(k,v)set(k,v,v.is_a?(Hash)?v:{})end
@@ -23,12 +23,12 @@ end;end;def mab &b;extend(Mab);mab(&b) end;def r s,b,h={};b,h=
23
23
  h,b if Hash===b;@status=s;@headers.merge!(h);@body=b end;def redirect *a;r 302,
24
24
  '','Location'=>URL(*a).to_s end;def r404 p;P%"#{p} not found"end;def r500 k,m,e
25
25
  raise e end;def r501 m;P%"#{m.upcase} not implemented"end;def serve(p,c)
26
- (t=Rack::Mime.mime_type p[/\..*$/],nil)&&@headers["Content-Type"]=t;c;end;def to_a;@env[
27
- 'rack.session']=Hash[@state];r=Rack::Response.new(@body,@status,@headers)
26
+ (t=Rack::Mime.mime_type p[/\..*$/],"text/html")&&@headers["Content-Type"]=t;c;end;def to_a;@env[
27
+ 'rack.session'][SK]=Hash[@state];r=Rack::Response.new(@body,@status,@headers)
28
28
  @cookies._n.each{|k,v|r.set_cookie k,v};r.to_a end;def initialize env,m
29
29
  r=@request=Rack:: Request.new(@env=env);@root,@input,@cookies,@state,@headers,
30
30
  @status,@method=r.script_name.sub(/\/$/,''),n(r.params),Cookies[r.cookies],
31
- H[r.session.to_hash],{},m=~/r(\d+)/?$1.to_i: 200,m;@cookies._p=self/"/" end
31
+ H[r.session[SK]||{}],{'Content-Type'=>'text/html'},m=~/r(\d+)/?$1.to_i: 200,m;@cookies._p=self/"/" end
32
32
  def n h;Hash===h ?h.inject(H[]){|m,(k,v)|m[k]=
33
33
  n(v);m}: h end;def service *a;r=catch(:halt){send(@method,*a)};@body||=r;self
34
34
  end end;module Controllers;@r=[];class<<self;def R *u;r=@r;Class.
@@ -41,7 +41,7 @@ map{|c|k=const_get(c);k.send:include,C,X,Base,Helpers,Models
41
41
  @r=[k]+@r if @r-[k]==@r;k.meta_def(:urls){["/#{c.to_s.scan(/.[^A-Z]*/).map(&
42
42
  N.method(:[]))*'/'}"]}if !k.respond_to?:urls}end end;I=R()end;X=
43
43
  Controllers;class<<self;def
44
- goes m;Apps<<a=eval(S.gsub(/Camping/,m.to_s),TOPLEVEL_BINDING);caller[0]=~/:/
44
+ goes m,g=TOPLEVEL_BINDING;Apps<<a=eval(S.gsub(/Camping/,m.to_s),g);caller[0]=~/:/
45
45
  IO.read(a.set:__FILE__,$`)=~/^__END__/&&(b=$'.split /^@@\s*(.+?)\s*\r?\n/m).shift rescue nil
46
46
  a.set :_t,H[*b||[]];end;def call e;X.M
47
47
  k,m,*a=X.D e["PATH_INFO"],e['REQUEST_METHOD'].
@@ -59,6 +59,7 @@ class Simple::Test < TestCase
59
59
  def test_index
60
60
  get '/'
61
61
  assert_body "Hello World!"
62
+ assert_equal "text/html", last_response.headers['Content-Type']
62
63
 
63
64
  post '/'
64
65
  assert_body "Hello Post!"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: camping
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.523
4
+ version: 2.1.531
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-10 00:00:00.000000000 Z
12
+ date: 2013-02-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &70274142153900 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '1.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70274142153900
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: mab
27
- requirement: &70274142153120 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70274142153120
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rake
38
- requirement: &70274142152460 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70274142152460
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rack-test
49
- requirement: &70274150145520 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,12 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70274150145520
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  description:
59
79
  email: why@ruby-lang.org
60
80
  executables:
@@ -156,9 +176,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
176
  version: '0'
157
177
  requirements: []
158
178
  rubyforge_project: camping
159
- rubygems_version: 1.8.10
179
+ rubygems_version: 1.8.23
160
180
  signing_key:
161
181
  specification_version: 3
162
182
  summary: minature rails for stay-at-home moms
163
183
  test_files: []
164
- has_rdoc: true