pagelime_rails 0.1.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.
- data/Gemfile +13 -0
- data/MIT-LICENSE +20 -0
- data/README +59 -0
- data/Rakefile +53 -0
- data/VERSION +1 -0
- data/config/routes.rb +21 -0
- data/init.rb +2 -0
- data/install.rb +1 -0
- data/lib/app/controllers/pagelime_receiver_controller.rb +95 -0
- data/lib/app/helpers/pagelime_helper.rb +20 -0
- data/lib/engine.rb +10 -0
- data/lib/pagelime_rails.rb +160 -0
- data/lib/routing_extensions.rb +13 -0
- data/lib/tasks/pagelime.rake +19 -0
- data/pagelime_rails.gemspec +66 -0
- data/rails/init.rb +2 -0
- data/test/pagelime_test.rb +8 -0
- data/test/test_helper.rb +3 -0
- data/uninstall.rb +1 -0
- metadata +144 -0
data/Gemfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
|
5
|
+
gem "nokogiri"
|
6
|
+
|
7
|
+
# Add dependencies to develop your gem here.
|
8
|
+
# Include everything needed to run rake, tests, features, etc.
|
9
|
+
group :development do
|
10
|
+
gem "bundler", "~> 1.0.0"
|
11
|
+
gem "jeweler", "~> 1.6.4"
|
12
|
+
gem "rcov", ">= 0"
|
13
|
+
end
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 [name of plugin creator]
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
Pagelime Rails Plugin
|
2
|
+
========
|
3
|
+
|
4
|
+
Easily add the Pagelime CMS to your rails app.
|
5
|
+
|
6
|
+
Pagelime is a simple CMS service that allows you to define editable regions in your content without installing any software on your site or app. Simply add a class="cms-editable" to any HTML element, and log-in to the Pagelime CMS service to edit your content and images with a nice UI. We host all of the code, content, and data until you publish a page. When you publish a page, we push the content to your site/app via secure FTP or web APIs.
|
7
|
+
|
8
|
+
One line example:
|
9
|
+
<div id="my_content" class="cms-editable">This content is now editable in Pagelime... no code... no databases... no fuss</div>
|
10
|
+
|
11
|
+
|
12
|
+
Getting Started
|
13
|
+
=======
|
14
|
+
|
15
|
+
Requirements:
|
16
|
+
* Pagelime account (either a standalone from www.pagelime.com or as a Heroku add-on)
|
17
|
+
* Nokogiri gem
|
18
|
+
|
19
|
+
Step 1.
|
20
|
+
If NOT on Heroku, set up a site for your Rails app in Pagelime. Make sure that the "Integration Method" for your site on the advanced tab is set to "web services"
|
21
|
+
|
22
|
+
Step 2.
|
23
|
+
Install this plugin on your Rails app, or use it as a gem (pagelime-rails)
|
24
|
+
|
25
|
+
Step 3.
|
26
|
+
Add the plugin routes to your routes.rb configuration:
|
27
|
+
|
28
|
+
map.cms_routes
|
29
|
+
|
30
|
+
These routes are used by Pagelime to clear any caches after save and publish events on your files.
|
31
|
+
|
32
|
+
Step 4.
|
33
|
+
For any controller that renders views that you want editable, add the acts_as_cms_editable behavior like so:
|
34
|
+
|
35
|
+
class CmsPagesController < ApplicationController
|
36
|
+
acts_as_cms_editable
|
37
|
+
|
38
|
+
def index
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
You can pass an :except parameter just like with a filter like so:
|
43
|
+
|
44
|
+
acts_as_cms_editable :except => :index
|
45
|
+
|
46
|
+
Step 5.
|
47
|
+
Create some editable regions in your views like so:
|
48
|
+
<div id="my_content" class="cms-editable">...</div>
|
49
|
+
|
50
|
+
The ID is required.
|
51
|
+
|
52
|
+
Step 6. (OPTIONAL)
|
53
|
+
If you don't want to have your entire controller CMS editable for some reason, you can sorround areas in your view with a code block like so:
|
54
|
+
|
55
|
+
<% cms_content do %>
|
56
|
+
<div id="my_content" class="cms-editable">hello world</div>
|
57
|
+
<% end %>
|
58
|
+
|
59
|
+
Copyright (c) 2011 Pagelime LLC, released under the MIT license
|
data/Rakefile
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "pagelime_rails"
|
18
|
+
gem.homepage = "http://github.com/eanticev/pagelime_rails"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = "Pagelime Rails Plugin"
|
21
|
+
gem.description = ""
|
22
|
+
gem.email = "eanticev@gmail.com"
|
23
|
+
gem.authors = ["Emil Anticevic"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/test_*.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
require 'rcov/rcovtask'
|
36
|
+
Rcov::RcovTask.new do |test|
|
37
|
+
test.libs << 'test'
|
38
|
+
test.pattern = 'test/**/test_*.rb'
|
39
|
+
test.verbose = true
|
40
|
+
test.rcov_opts << '--exclude "gems/*"'
|
41
|
+
end
|
42
|
+
|
43
|
+
task :default => :test
|
44
|
+
|
45
|
+
require 'rake/rdoctask'
|
46
|
+
Rake::RDocTask.new do |rdoc|
|
47
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
48
|
+
|
49
|
+
rdoc.rdoc_dir = 'rdoc'
|
50
|
+
rdoc.title = "pagelime-rails #{version}"
|
51
|
+
rdoc.rdoc_files.include('README*')
|
52
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
53
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/config/routes.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
if Rails::VERSION::MAJOR == 2
|
3
|
+
|
4
|
+
ActionController::Routing::Routes.draw do |map|
|
5
|
+
puts "PAGELIME CMS PLUGIN: setting up rails 2 routes"
|
6
|
+
map.connect "pagelime/:action", :controller => :pagelime_receiver_controller
|
7
|
+
end
|
8
|
+
|
9
|
+
elsif Rails::VERSION::MAJOR == 3
|
10
|
+
|
11
|
+
puts "PAGELIME CMS PLUGIN: setting up rails 3 routes"
|
12
|
+
|
13
|
+
Pagelime::Engine.routes.draw do
|
14
|
+
match 'pagelime/:action' => 'pagelime_receiver'
|
15
|
+
end
|
16
|
+
|
17
|
+
Rails.application.routes.draw do
|
18
|
+
mount Pagelime::Engine => "/"
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
data/init.rb
ADDED
data/install.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Install hook code here
|
@@ -0,0 +1,95 @@
|
|
1
|
+
class PagelimeReceiverController < ApplicationController
|
2
|
+
|
3
|
+
def index
|
4
|
+
render :inline => "working", :status => 200
|
5
|
+
end
|
6
|
+
|
7
|
+
def after_publish_callback
|
8
|
+
|
9
|
+
page_key = Base64.encode64(params[:path])
|
10
|
+
Rails.cache.delete("cms:#{page_key}")
|
11
|
+
|
12
|
+
# don't do the prefetch below, as the page isn't done publishing (mySQL transaction hasn't completed) at the point when this gets called
|
13
|
+
=begin
|
14
|
+
begin
|
15
|
+
new_content = fetch_cms_xml(params[:path]);
|
16
|
+
rescue
|
17
|
+
end
|
18
|
+
=end
|
19
|
+
|
20
|
+
render :inline => "cache cleared", :status => 200
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
def after_publish_callback_old
|
25
|
+
|
26
|
+
# the page_id will come from the request
|
27
|
+
page_id = params[:page_id]
|
28
|
+
|
29
|
+
# TODO: use the API to get content
|
30
|
+
uri = URI.parse("http://qa.cms.pagelime.com/API/Account/SOAP/Page.asmx/Get")
|
31
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
32
|
+
# http.use_ssl = true
|
33
|
+
http.open_timeout = 2
|
34
|
+
http.read_timeout = 7
|
35
|
+
# http.set_debug_output $stderr
|
36
|
+
data = {:apiKey => "0fa155c4-9c42-4df6-856a-5cff6e2ff631", :pageId => page_id}.to_json
|
37
|
+
response = http.post(uri.path,data,{"content-type"=>"application/json; charset=utf-8","accept"=>"application/json, text/javascript, */*"})
|
38
|
+
|
39
|
+
page_json = JSON.parse(response.body)
|
40
|
+
page_json = page_json["d"]
|
41
|
+
|
42
|
+
# try to find existing page
|
43
|
+
page = PagelimePage.find_by_page_id(page_id)
|
44
|
+
if (page)
|
45
|
+
# delete existing content
|
46
|
+
page.editable_areas.destroy
|
47
|
+
page.meta_data.destroy
|
48
|
+
else
|
49
|
+
# if no page is found, create a new one
|
50
|
+
page = PagelimePage.new
|
51
|
+
end
|
52
|
+
|
53
|
+
# set the page data
|
54
|
+
page.page_id = page_id
|
55
|
+
page.path = page_json[:Path]
|
56
|
+
page.title = page_json[:Title]
|
57
|
+
page.date_published = DateTime.now
|
58
|
+
|
59
|
+
# save the page
|
60
|
+
page.save
|
61
|
+
|
62
|
+
# for each piece of content
|
63
|
+
for page_content_json in page_json["EditableRegions"]
|
64
|
+
|
65
|
+
# create the content data
|
66
|
+
page_content = PagelimeContent.new
|
67
|
+
page_content.client_id = page_content_json[:ClientID]
|
68
|
+
page_content.page = page
|
69
|
+
page_content.html = page_content_json[:Html]
|
70
|
+
|
71
|
+
# save content
|
72
|
+
page_content.save
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
# for each piece of meta data
|
77
|
+
for metadata_json in page_json["MetaDataJSON"]
|
78
|
+
|
79
|
+
# create the content data
|
80
|
+
page_metadata = PagelimeMetaData.new
|
81
|
+
page_metadata.name = metadata_json[0]
|
82
|
+
page_metadata.content = metadata_json[1]
|
83
|
+
page_metadata.page = page
|
84
|
+
|
85
|
+
# save content
|
86
|
+
page_metadata.save
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
# respond with an OK status or CREATED status
|
91
|
+
render :status => 200
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'openssl'
|
3
|
+
require 'base64'
|
4
|
+
require 'cgi'
|
5
|
+
require 'net/http'
|
6
|
+
|
7
|
+
module PagelimeHelper
|
8
|
+
|
9
|
+
def cms_content(&block)
|
10
|
+
# the block contents loaded into a variable
|
11
|
+
input_content = capture(&block)
|
12
|
+
page_path = request.path
|
13
|
+
html = cms_process_html_block(page_path,input_content)
|
14
|
+
# output the final content
|
15
|
+
concat(html)
|
16
|
+
# raw capture(&block) + "<div>hello world</div>"
|
17
|
+
# raw "BLA!";
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
data/lib/engine.rb
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
# Pagelime
|
2
|
+
|
3
|
+
puts "PAGELIME CMS PLUGIN: included"
|
4
|
+
|
5
|
+
def pagelime_environment_configured?
|
6
|
+
ENV['PAGELIME_ACCOUNT_KEY'] != nil &&
|
7
|
+
ENV['PAGELIME_ACCOUNT_SECRET'] != nil &&
|
8
|
+
ENV['PAGELIME_HEROKU_API_VERSION']
|
9
|
+
end
|
10
|
+
|
11
|
+
def fetch_cms_xml(page_path)
|
12
|
+
|
13
|
+
page_key = Base64.encode64(page_path)
|
14
|
+
xml_content = Rails.cache.fetch("cms:#{page_key}", :expires_in => 15.days) do
|
15
|
+
puts "PAGELIME CMS PLUGIN: NO CACHE... loading xml"
|
16
|
+
# set input values
|
17
|
+
key = ENV['PAGELIME_ACCOUNT_KEY']
|
18
|
+
secret = ENV['PAGELIME_ACCOUNT_SECRET']
|
19
|
+
api_version = ENV['PAGELIME_HEROKU_API_VERSION']
|
20
|
+
req = "apiKey=#{key}&path=#{CGI.escape(page_path)}"
|
21
|
+
|
22
|
+
# generate API signature
|
23
|
+
signature = Base64.encode64("#{OpenSSL::HMAC.digest('sha1',secret,req)}")
|
24
|
+
headers = {'Signature' => signature}
|
25
|
+
|
26
|
+
puts "PAGELIME CMS PLUGIN: SIGNATURE:" + signature
|
27
|
+
|
28
|
+
# get the url that we need to post to
|
29
|
+
http = Net::HTTP::new('qa.cms.pagelime.com',80)
|
30
|
+
|
31
|
+
# send the request
|
32
|
+
response = http.request_post("/api/heroku/#{api_version}/content.asmx/PageContent", req, headers)
|
33
|
+
|
34
|
+
# cache the file
|
35
|
+
# File.open("#{Rails.root}/tmp/test.cms", 'w') {|f| f.write(response.body) }
|
36
|
+
|
37
|
+
xml_content = response.body
|
38
|
+
|
39
|
+
xml_content
|
40
|
+
end
|
41
|
+
|
42
|
+
return xml_content
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
def cms_process_html_block(page_path=nil, html="")
|
47
|
+
|
48
|
+
begin
|
49
|
+
|
50
|
+
unless pagelime_environment_configured?
|
51
|
+
puts "PAGELIME CMS PLUGIN: Environment variables not configured"
|
52
|
+
return html
|
53
|
+
end
|
54
|
+
|
55
|
+
# use nokogiri to replace contents
|
56
|
+
doc = Nokogiri::HTML::DocumentFragment.parse(html)
|
57
|
+
doc.css("div.cms-editable").each do |div|
|
58
|
+
|
59
|
+
# Grab client ID
|
60
|
+
client_id = div["id"]
|
61
|
+
|
62
|
+
# Load pagelime content
|
63
|
+
xml_content = fetch_cms_xml(page_path)
|
64
|
+
|
65
|
+
puts "PAGELIME CMS PLUGIN: parsing xml"
|
66
|
+
soap = Nokogiri::XML::Document.parse(xml_content)
|
67
|
+
puts "PAGELIME CMS PLUGIN: looking for region: #{client_id}"
|
68
|
+
xpathNodes = soap.css("EditableRegion[@ElementID=\"#{client_id}\"]")
|
69
|
+
puts "regions found: #{xpathNodes.count}"
|
70
|
+
if (xpathNodes.count > 0)
|
71
|
+
new_content = xpathNodes[0].css("Html")[0].content()
|
72
|
+
|
73
|
+
puts "PAGELIME CMS PLUGIN: NEW CONTENT:"
|
74
|
+
puts new_content
|
75
|
+
|
76
|
+
if (new_content)
|
77
|
+
# div.content = "Replaced content"
|
78
|
+
div.replace new_content
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
return doc.to_html
|
85
|
+
|
86
|
+
rescue
|
87
|
+
|
88
|
+
# error
|
89
|
+
puts "PAGELIME CMS PLUGIN: Error rendering block"
|
90
|
+
|
91
|
+
# comment below to disable debug
|
92
|
+
raise
|
93
|
+
|
94
|
+
return html
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
module PagelimeControllerExtensions
|
101
|
+
|
102
|
+
def acts_as_cms_editable(opts=Hash.new)
|
103
|
+
after_filter :cms_process_rendered_body, :except => opts[:except]
|
104
|
+
include InstanceMethods
|
105
|
+
end
|
106
|
+
|
107
|
+
module InstanceMethods
|
108
|
+
def cms_process_rendered_body
|
109
|
+
puts "PAGELIME CMS PLUGIN: Processing response body"
|
110
|
+
if pagelime_environment_configured?
|
111
|
+
# response contents loaded into a variable
|
112
|
+
input_content = response.body
|
113
|
+
page_path = request.path
|
114
|
+
html = cms_process_html_block(page_path,input_content)
|
115
|
+
# output the final content
|
116
|
+
response.body = html
|
117
|
+
else
|
118
|
+
puts "PAGELIME CMS PLUGIN: Environment variables not configured"
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
def initialize_pagelime_plugin
|
126
|
+
|
127
|
+
puts "PAGELIME CMS PLUGIN: initializing"
|
128
|
+
|
129
|
+
# add dependencies to load paths
|
130
|
+
%w{ models controllers helpers }.each do |dir|
|
131
|
+
path = File.join(File.dirname(__FILE__), 'app', dir)
|
132
|
+
$LOAD_PATH << path
|
133
|
+
|
134
|
+
if Rails::VERSION::MAJOR == 2
|
135
|
+
ActiveSupport::Dependencies.load_paths << path
|
136
|
+
ActiveSupport::Dependencies.load_once_paths.delete(path)
|
137
|
+
elsif Rails::VERSION::MAJOR == 3
|
138
|
+
ActiveSupport::Dependencies.autoload_paths << path
|
139
|
+
ActiveSupport::Dependencies.autoload_once_paths.delete(path)
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
# wire controller extensions
|
144
|
+
ActionController::Base.extend PagelimeControllerExtensions
|
145
|
+
|
146
|
+
# wire helper
|
147
|
+
require "app/helpers/pagelime_helper"
|
148
|
+
ActionView::Base.send :include, PagelimeHelper
|
149
|
+
|
150
|
+
end
|
151
|
+
|
152
|
+
# start plugin
|
153
|
+
if Rails::VERSION::MAJOR == 2
|
154
|
+
require "routing_extensions"
|
155
|
+
# below is not needed in Rails 2 as you can use the map.cms_routes from the routing_extensions
|
156
|
+
# require File.join(File.dirname(__FILE__), "/../config/routes.rb")
|
157
|
+
initialize_pagelime_plugin
|
158
|
+
elsif Rails::VERSION::MAJOR == 3
|
159
|
+
require "engine"
|
160
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Pagelime #:nodoc:
|
2
|
+
module Routing #:nodoc:
|
3
|
+
module MapperExtensions
|
4
|
+
def cms_routes
|
5
|
+
@set.add_route("/pagelime/:action", {:controller => "pagelime_receiver"})
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
if Rails::VERSION::MAJOR == 2
|
12
|
+
ActionController::Routing::RouteSet::Mapper.send :include, Pagelime::Routing::MapperExtensions
|
13
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# desc "Explaining what the task does"
|
2
|
+
# task :pagelime do
|
3
|
+
# # Task goes here
|
4
|
+
# end
|
5
|
+
|
6
|
+
namespace :db do
|
7
|
+
namespace :migrate do
|
8
|
+
description = "Migrate the database through scripts in vendor/plugins/pagelime/lib/db/migrate"
|
9
|
+
description << "and update db/schema.rb by invoking db:schema:dump."
|
10
|
+
description << "Target specific version with VERSION=x. Turn off output with VERBOSE=false."
|
11
|
+
|
12
|
+
desc description
|
13
|
+
task :pagelime => :environment do
|
14
|
+
ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
|
15
|
+
ActiveRecord::Migrator.migrate("vendor/plugins/pagelime/lib/db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
16
|
+
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{pagelime_rails}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Emil Anticevic"]
|
12
|
+
s.date = %q{2012-01-09}
|
13
|
+
s.description = %q{}
|
14
|
+
s.email = %q{eanticev@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
"Gemfile",
|
20
|
+
"MIT-LICENSE",
|
21
|
+
"README",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION",
|
24
|
+
"config/routes.rb",
|
25
|
+
"init.rb",
|
26
|
+
"install.rb",
|
27
|
+
"lib/app/controllers/pagelime_receiver_controller.rb",
|
28
|
+
"lib/app/helpers/pagelime_helper.rb",
|
29
|
+
"lib/engine.rb",
|
30
|
+
"lib/pagelime_rails.rb",
|
31
|
+
"lib/routing_extensions.rb",
|
32
|
+
"lib/tasks/pagelime.rake",
|
33
|
+
"pagelime_rails.gemspec",
|
34
|
+
"rails/init.rb",
|
35
|
+
"test/pagelime_test.rb",
|
36
|
+
"test/test_helper.rb",
|
37
|
+
"uninstall.rb"
|
38
|
+
]
|
39
|
+
s.homepage = %q{http://github.com/eanticev/pagelime_rails}
|
40
|
+
s.licenses = ["MIT"]
|
41
|
+
s.require_paths = ["lib"]
|
42
|
+
s.rubygems_version = %q{1.5.2}
|
43
|
+
s.summary = %q{Pagelime Rails Plugin}
|
44
|
+
|
45
|
+
if s.respond_to? :specification_version then
|
46
|
+
s.specification_version = 3
|
47
|
+
|
48
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
49
|
+
s.add_runtime_dependency(%q<nokogiri>, [">= 0"])
|
50
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
51
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
52
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
53
|
+
else
|
54
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
55
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
56
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
57
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
58
|
+
end
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<nokogiri>, [">= 0"])
|
61
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
63
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
data/rails/init.rb
ADDED
data/test/test_helper.rb
ADDED
data/uninstall.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Uninstall hook code here
|
metadata
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pagelime_rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Emil Anticevic
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-01-09 00:00:00 -08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
prerelease: false
|
23
|
+
type: :runtime
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
name: nokogiri
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
prerelease: false
|
37
|
+
type: :development
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 23
|
44
|
+
segments:
|
45
|
+
- 1
|
46
|
+
- 0
|
47
|
+
- 0
|
48
|
+
version: 1.0.0
|
49
|
+
name: bundler
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
prerelease: false
|
53
|
+
type: :development
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 7
|
60
|
+
segments:
|
61
|
+
- 1
|
62
|
+
- 6
|
63
|
+
- 4
|
64
|
+
version: 1.6.4
|
65
|
+
name: jeweler
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
prerelease: false
|
69
|
+
type: :development
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
name: rcov
|
80
|
+
version_requirements: *id004
|
81
|
+
description: ""
|
82
|
+
email: eanticev@gmail.com
|
83
|
+
executables: []
|
84
|
+
|
85
|
+
extensions: []
|
86
|
+
|
87
|
+
extra_rdoc_files:
|
88
|
+
- README
|
89
|
+
files:
|
90
|
+
- Gemfile
|
91
|
+
- MIT-LICENSE
|
92
|
+
- README
|
93
|
+
- Rakefile
|
94
|
+
- VERSION
|
95
|
+
- config/routes.rb
|
96
|
+
- init.rb
|
97
|
+
- install.rb
|
98
|
+
- lib/app/controllers/pagelime_receiver_controller.rb
|
99
|
+
- lib/app/helpers/pagelime_helper.rb
|
100
|
+
- lib/engine.rb
|
101
|
+
- lib/pagelime_rails.rb
|
102
|
+
- lib/routing_extensions.rb
|
103
|
+
- lib/tasks/pagelime.rake
|
104
|
+
- pagelime_rails.gemspec
|
105
|
+
- rails/init.rb
|
106
|
+
- test/pagelime_test.rb
|
107
|
+
- test/test_helper.rb
|
108
|
+
- uninstall.rb
|
109
|
+
has_rdoc: true
|
110
|
+
homepage: http://github.com/eanticev/pagelime_rails
|
111
|
+
licenses:
|
112
|
+
- MIT
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options: []
|
115
|
+
|
116
|
+
require_paths:
|
117
|
+
- lib
|
118
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
hash: 3
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
version: "0"
|
127
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
hash: 3
|
133
|
+
segments:
|
134
|
+
- 0
|
135
|
+
version: "0"
|
136
|
+
requirements: []
|
137
|
+
|
138
|
+
rubyforge_project:
|
139
|
+
rubygems_version: 1.5.2
|
140
|
+
signing_key:
|
141
|
+
specification_version: 3
|
142
|
+
summary: Pagelime Rails Plugin
|
143
|
+
test_files: []
|
144
|
+
|