middleman-php 0.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 271f40ca44968c945214e6326ef44b3ae3460dc3
4
+ data.tar.gz: f3677f60ff7356b6b6e371435fa94e360627ccfb
5
+ SHA512:
6
+ metadata.gz: 0abdf98107fd488ff0cb38bb5a21145425149740878c51a7bab52f7b91fbcb95fe4397756e33a0bf1b80851c41e0f5ceaa7f4bed24dc23c1d731d38162190083
7
+ data.tar.gz: 59950186010e88c02226e04f61ea06b0d030c4ec45cbad029de2226347f7dabe58a8fbc46f24aa89fa01da14583043ec4862a67f23b5908b97549b7867fd713e
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ # Ignore bundler lock file
2
+ /Gemfile.lock
3
+
4
+ # Ignore pkg folder
5
+ /pkg
data/Gemfile ADDED
@@ -0,0 +1,12 @@
1
+ # If you have OpenSSL installed, we recommend updating
2
+ # the following line to use "https"
3
+ source 'http://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in middleman-php.gemspec
6
+ gemspec
7
+
8
+ group :development do
9
+ gem "rake"
10
+ gem "rdoc"
11
+ gem "yard"
12
+ end
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rake/clean'
@@ -0,0 +1,17 @@
1
+ module Middleman
2
+ class PhpExtension < Extension
3
+ # option :set_blah, "default", "An example option"
4
+
5
+ def initialize(app, options_hash={}, &block)
6
+ # Call super to build options from the options_hash
7
+ super
8
+
9
+ require 'shellwords'
10
+ app.use Middleman::PhpMiddleware
11
+
12
+ app.before do
13
+ template_extensions :php => :html
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ module Middleman
2
+ class PhpMiddleware
3
+
4
+ def initialize(app)
5
+ @app = app
6
+ end
7
+
8
+ def call(env)
9
+ status, headers, response = @app.call(env)
10
+
11
+ if env['REQUEST_PATH'] =~ /\.php$/
12
+ response.body.map! do |item|
13
+ `echo #{Shellwords.escape(item)} | php`
14
+ end
15
+ headers['Content-Length'] = response.body.join.length.to_s
16
+ headers['Content-Type'] = 'text/html'
17
+ end
18
+
19
+ [status, headers, response]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,4 @@
1
+ require 'middleman-php/middleware'
2
+ require 'middleman-php/extension'
3
+
4
+ Middleman::PhpExtension.register(:php)
@@ -0,0 +1 @@
1
+ require "middleman-php"
@@ -0,0 +1,21 @@
1
+ class PhpMiddleware
2
+
3
+ def initialize(app)
4
+ @app = app
5
+ end
6
+
7
+ def call(env)
8
+ status, headers, response = @app.call(env)
9
+
10
+ if env['REQUEST_PATH'] =~ /\.php$/
11
+ response.body.map! do |item|
12
+ `echo #{Shellwords.escape(item)} | php`
13
+ end
14
+ headers['Content-Length'] = response.body.join.length.to_s
15
+ headers['Content-Type'] = 'text/html'
16
+ end
17
+
18
+ [status, headers, response]
19
+ end
20
+
21
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "middleman-php"
6
+ s.version = "0.0.1"
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Robert Lord"]
9
+ s.email = ["robert@lord.io"]
10
+ s.homepage = "https://github.com/lord/middleman-php"
11
+ s.summary = %q{Use Middleman to build PHP files}
12
+ # s.description = %q{A longer description of your extension}
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ # The version of middleman-core your extension depends on
20
+ s.add_runtime_dependency("middleman-core", [">= 3.2.1"])
21
+
22
+ # Additional dependencies
23
+ # s.add_runtime_dependency("gem-name", "gem-version")
24
+ end
data/readme.md ADDED
@@ -0,0 +1,41 @@
1
+ # middleman-php
2
+
3
+ ## Installation
4
+
5
+ In your Middleman project's `Gemfile`, add:
6
+
7
+ ```ruby
8
+ gem "middleman-php"
9
+ ```
10
+
11
+ and in your `config.rb`, add:
12
+
13
+ ```ruby
14
+ configure :development do
15
+ activate :php
16
+ end
17
+ ```
18
+
19
+ If you want the php to be parsed on builds, too (instead of left for your server to parse), just omit the `configure` block:
20
+
21
+ ```ruby
22
+ activate :php
23
+ ```
24
+
25
+ ## FAQ
26
+
27
+ ### So wait, what does this do?
28
+
29
+ It lets [Middleman](https://github.com/middleman/middleman)'s server render PHP. So your `source/kittens.php` file will actually render kittens, and not a mess of `<?php` open tags.
30
+
31
+ ### Oh lord, why?? Why would you want that???
32
+
33
+ Sometimes I have clients who want little bits of PHP interactivity on their site, but I still want to use Middleman to generate the PHP pages. This makes it so you don't have to `middleman build` and then upload to your site just to get a preview.
34
+
35
+ ### Are there any limitations?
36
+
37
+ It will only render on pages where the URL ends in `.php`...so if you want to see `index.php`, you'll have to actually stick `index.php` in your browser.
38
+
39
+ Also, right now the rendering is done through PHP's command line interface, which has [some limitations](http://www.php.net/manual/en/features.commandline.differences.php)...including no $_GET or $_POST. Hopefully this will be fixed in the future.
40
+
41
+ There are probably also bugs I haven't found, so if you find one, feel free to submit an issue!
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-php
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Robert Lord
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: middleman-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.2.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.1
27
+ description:
28
+ email:
29
+ - robert@lord.io
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - .gitignore
35
+ - Gemfile
36
+ - Rakefile
37
+ - lib/middleman-php.rb
38
+ - lib/middleman-php/extension.rb
39
+ - lib/middleman-php/middleware.rb
40
+ - lib/middleman_extension.rb
41
+ - lib/php_middleware.rb
42
+ - middleman-php.gemspec
43
+ - readme.md
44
+ homepage: https://github.com/lord/middleman-php
45
+ licenses: []
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - '>='
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project:
63
+ rubygems_version: 2.2.1
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: Use Middleman to build PHP files
67
+ test_files: []