cartoonist-nginxtra 0.0.19.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "cartoonist-nginxtra"
3
+ raise "Cannot find version file!" unless File.exists?(File.join(File.dirname(__FILE__), "../CARTOONIST_VERSION"))
4
+ s.version = File.read File.join(File.dirname(__FILE__), "../CARTOONIST_VERSION")
5
+ s.date = Time.now.strftime "%Y-%m-%d"
6
+ s.summary = "Cartoonist Nginxtra Plugin"
7
+ s.description = "This gives Nginxtra plugins for Cartoonist sites."
8
+ s.license = "MIT"
9
+ s.authors = ["Mike Virata-Stone"]
10
+ s.email = "reasonnumber@gmail.com"
11
+ s.files = `git ls-files`.split("\n")
12
+ s.require_paths = ["lib"]
13
+ s.homepage = "https://github.com/mikestone/cartoonist"
14
+ s.add_dependency "nginxtra", ">= 1.4.2.9"
15
+ end
@@ -0,0 +1,103 @@
1
+ Nginxtra::Config::Extension.partial "nginx.conf", "cartoonist_rails" do |args, block|
2
+ rails_server = args[:server] || :passenger
3
+ ssl_details = args[:ssl]
4
+ ruby_version = args[:ruby]
5
+
6
+ if ssl_details
7
+ default_port = 443
8
+ else
9
+ default_port = 80
10
+ end
11
+
12
+ if rails_server == :passenger && !@passenger_requirements_done
13
+ @config.require_passenger!
14
+ passenger_root!
15
+ passenger_ruby! unless ruby_version
16
+ @passenger_requirements_done = true
17
+ end
18
+
19
+ server do
20
+ listen(args[:port] || default_port)
21
+ server_name(args[:server_name] || "localhost")
22
+ root File.join(File.absolute_path(File.expand_path(args[:root] || ".")), "public")
23
+ gzip_static "on"
24
+ passenger_ruby ruby_version if ruby_version
25
+ passenger_on! if rails_server == :passenger
26
+ rails_env(args[:environment] || "production")
27
+
28
+ if ssl_details
29
+ ssl "on"
30
+ ssl_certificate ssl_details[:ssl_cert]
31
+ ssl_certificate_key ssl_details[:ssl_key]
32
+ @config.compile_option "--with-http_ssl_module"
33
+ end
34
+
35
+ block.call
36
+ end
37
+ end
38
+
39
+ Nginxtra::Config::Extension.partial "nginx.conf", "cartoonist" do |args, block|
40
+ if !@passenger_requirements_done
41
+ @config.require_passenger!
42
+ passenger_root!
43
+ passenger_ruby!
44
+ @passenger_requirements_done = true
45
+ end
46
+
47
+ cartoonist_type = args[:type] || "www"
48
+ server_name = args[:server_name]
49
+ root_path = args[:root]
50
+ ssl_details = args[:ssl]
51
+ ssl_details = { :ssl => ssl_details } if ssl_details
52
+ short_expiration = args[:short_expiration] || "2h"
53
+ long_expiration = args[:long_expiration] || "7d"
54
+ ruby_version = args[:ruby]
55
+
56
+ [{}, ssl_details].compact.each do |additional_options|
57
+ options = { :server => :custom, :server_name => server_name, :root => root_path, :ruby => ruby_version }.merge additional_options
58
+
59
+ cartoonist_rails options do
60
+ location "~*", "^/_long_expiration_/#{cartoonist_type}(/.*?)(?:\\.html)?$" do
61
+ expires long_expiration
62
+ add_header "Cache-Control", "public"
63
+ try_files "$1", "$1.html", "/cache/static$1", "@passenger"
64
+ end
65
+
66
+ ["/cache/static$uri", "$uri", "$uri.html"].each do |condition|
67
+ _if "-f #{root_path}/public#{condition}" do
68
+ rewrite "^(.*)$", "/_long_expiration_/#{cartoonist_type}$1", "last"
69
+ end
70
+ end
71
+
72
+ ["html", "json", "rss"].each do |extension|
73
+ location "~*", "^/_short_#{extension}_expiration_/#{cartoonist_type}(/.*?)(?:\\.#{extension})?$" do
74
+ expires short_expiration
75
+ add_header "Cache-Control", "public"
76
+ try_files "/cache$1.#{cartoonist_type}.tmp.#{extension}", "@passenger"
77
+ end
78
+
79
+ location "~*", "^/_long_#{extension}_expiration_/#{cartoonist_type}(/.*?)(?:\\.#{extension})?$" do
80
+ expires long_expiration
81
+ add_header "Cache-Control", "public"
82
+ try_files "/cache$1.#{cartoonist_type}.#{extension}", "@passenger"
83
+ end
84
+
85
+ _if "-f #{root_path}/public/cache$uri.#{cartoonist_type}.tmp.#{extension}" do
86
+ rewrite "^(.*)$", "/_short_#{extension}_expiration_/#{cartoonist_type}$1", "last"
87
+ end
88
+
89
+ _if "-f #{root_path}/public/cache$uri.#{cartoonist_type}.#{extension}" do
90
+ rewrite "^(.*)$", "/_long_#{extension}_expiration_/#{cartoonist_type}$1", "last"
91
+ end
92
+ end
93
+
94
+ location "/" do
95
+ try_files "/_jump_to_passenger_", "@passenger"
96
+ end
97
+
98
+ location "@passenger" do
99
+ passenger_on!
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,9 @@
1
+ module CartoonistNginxtra
2
+ class Version
3
+ class << self
4
+ def to_s
5
+ "0.0.19.4"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1 @@
1
+ require "cartoonist-nginxtra/version"
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cartoonist-nginxtra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.19.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Mike Virata-Stone
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-09-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: nginxtra
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.4.2.9
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 1.4.2.9
30
+ description: This gives Nginxtra plugins for Cartoonist sites.
31
+ email: reasonnumber@gmail.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - cartoonist-nginxtra.gemspec
37
+ - lib/cartoonist-nginxtra.rb
38
+ - lib/cartoonist-nginxtra/version.rb
39
+ - lib/cartoonist/nginxtra.rb
40
+ homepage: https://github.com/mikestone/cartoonist
41
+ licenses:
42
+ - MIT
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project:
61
+ rubygems_version: 1.8.25
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Cartoonist Nginxtra Plugin
65
+ test_files: []
66
+ has_rdoc: