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 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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,2 @@
1
+ # Include hook code here
2
+ require "pagelime_rails"
@@ -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
@@ -0,0 +1,10 @@
1
+
2
+ module Pagelime
3
+ class Engine < Rails::Engine
4
+ engine_name :pagelime
5
+ # paths["config/routes"] << 'config/routes.rb'
6
+ initializer "pagelime.initialize" do |app|
7
+ initialize_pagelime_plugin
8
+ end
9
+ end
10
+ end
@@ -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
+
@@ -0,0 +1,2 @@
1
+ # Include hook code here
2
+ require "pagelime_rails"
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class PagelimeTest < ActiveSupport::TestCase
4
+ # Replace this with your real tests.
5
+ test "the truth" do
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,3 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'active_support/test_case'
@@ -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
+