georgia 0.7.5 → 0.7.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -2
- data/app/controllers/georgia/dashboard_controller.rb +2 -2
- data/app/controllers/georgia/revisions_controller.rb +2 -0
- data/app/decorators/georgia/application_decorator.rb +15 -0
- data/app/models/acts_as_taggable_on/tag.rb +0 -4
- data/app/models/ckeditor/asset.rb +0 -4
- data/app/models/georgia/concerns/contentable.rb +5 -2
- data/app/models/georgia/page.rb +0 -5
- data/app/views/georgia/pages/_page.html.erb +1 -1
- data/app/views/georgia/revisions/fields/_slides.html.erb +2 -2
- data/app/views/georgia/slides/new.html.erb +1 -1
- data/lib/generators/georgia/install/install_generator.rb +10 -2
- data/lib/generators/georgia/views/templates/app/views/pages/show.html.erb +7 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_default.html.erb +1 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_one-column.html.erb +1 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-left.html.erb +24 -0
- data/lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-right.html.erb +24 -0
- data/lib/generators/georgia/views/views_generator.rb +17 -0
- data/lib/georgia/engine.rb +1 -0
- data/lib/georgia/indexer.rb +32 -13
- data/lib/georgia/indexer/extensions/solr_adapter/{acts_as_taggable_on_tag.rb → acts_as_taggable_on/tag.rb} +1 -1
- data/lib/georgia/indexer/extensions/solr_adapter/{ckeditor_asset.rb → ckeditor/asset.rb} +1 -1
- data/lib/georgia/indexer/extensions/solr_adapter/{georgia_page.rb → georgia/page.rb} +1 -1
- data/lib/georgia/indexer/solr_adapter.rb +4 -5
- data/lib/georgia/indexer/tire_adapter.rb +4 -2
- data/lib/georgia/version.rb +1 -1
- data/lib/tasks/georgia.rake +0 -15
- metadata +11 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3e6ad208668a7070cb8265fbac2fd21e2216df43
|
4
|
+
data.tar.gz: e003d41f4e19d141fcfcb5629335744a5b9eb205
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c54848250467dc0896fe3be6077a8082e586c4f69bd262f40891d3eb08a811674fff7bb879407895f4baddb0999ae9e63215c0b99977429ca574030b6d03ab3
|
7
|
+
data.tar.gz: 15734547e9bfa5631ef996570349ce563b2fe70c36ff6ad31fc1770403c614a0b7cb7532649905e977ca52809a5659c13d11d686194b52c32c846554f1f95234
|
data/README.md
CHANGED
@@ -29,7 +29,6 @@ Rails. Engine. CMS. Plug-and-play content management system for Ruby on Rails. H
|
|
29
29
|
* Because it's prettier.
|
30
30
|
* Because the guys on refinerycms did a great job and you should check them out.
|
31
31
|
* Because it's easy to start a website and push to Heroku.
|
32
|
-
* Rails 4 compatible.. almost.
|
33
32
|
|
34
33
|
### Getting started
|
35
34
|
|
@@ -43,6 +42,10 @@ Then run the generator to mount routes, run migrations & setup initial instances
|
|
43
42
|
|
44
43
|
rails generate georgia:install
|
45
44
|
|
45
|
+
We built Georgia to help you quickly develop an application with a CMS (Content Management System). However, we don't want to be in your way when you need to customize it.
|
46
|
+
|
47
|
+
rails generate georgia:views
|
48
|
+
|
46
49
|
Start your server (`rails server`) and go to [http://localhost:3000/admin](http://localhost:3000/admin) to get started.
|
47
50
|
|
48
51
|
### Heroku
|
@@ -56,9 +59,13 @@ Add `config/initializers/bonsai.rb` with:
|
|
56
59
|
|
57
60
|
ENV['ELASTICSEARCH_URL'] = ENV['BONSAI_URL']
|
58
61
|
|
59
|
-
|
62
|
+
Create your indices with these commands:
|
60
63
|
|
61
64
|
heroku run rake environment tire:import CLASS=Georgia::Page FORCE=true
|
62
65
|
heroku run rake environment tire:import CLASS=Ckeditor::Asset FORCE=true
|
63
66
|
|
67
|
+
Finally, create your first admin user to access to web panel:
|
68
|
+
|
69
|
+
heroku run rake georgia:seed
|
70
|
+
|
64
71
|
For more information, you can also follow these [instructions](https://gist.github.com/nz/2041121) to setup bonsai.io. More [here](https://devcenter.heroku.com/articles/bonsai) on heroku.com
|
@@ -6,8 +6,8 @@ module Georgia
|
|
6
6
|
@awaiting_revisions = Georgia::Revision.reviews.select{|r| r.revisionable.present?}
|
7
7
|
end
|
8
8
|
if defined? GeorgiaMailer::Message
|
9
|
-
if can?(:index,
|
10
|
-
@messages =
|
9
|
+
if can?(:index, GeorgiaMailer::Message)
|
10
|
+
@messages = GeorgiaMailer::Message.ham.latest.limit(5).decorate
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -2,5 +2,20 @@ module Georgia
|
|
2
2
|
class ApplicationDecorator < Draper::Decorator
|
3
3
|
delegate_all
|
4
4
|
|
5
|
+
|
6
|
+
def pretty_created_at
|
7
|
+
prettify_date(created_at)
|
8
|
+
end
|
9
|
+
|
10
|
+
def pretty_updated_at
|
11
|
+
prettify_date(updated_at)
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def prettify_date date
|
17
|
+
date.is_a?(String) ? date : date.try(:strftime, '%F')
|
18
|
+
end
|
19
|
+
|
5
20
|
end
|
6
21
|
end
|
@@ -1,10 +1,6 @@
|
|
1
1
|
class Ckeditor::Asset < ActiveRecord::Base
|
2
2
|
|
3
3
|
include Georgia::Indexer::Adapter
|
4
|
-
is_searchable({
|
5
|
-
solr: Georgia::Indexer::SolrAdapter::CkeditorAssetExtension,
|
6
|
-
tire: Georgia::Indexer::TireAdapter::CkeditorAssetExtension,
|
7
|
-
})
|
8
4
|
|
9
5
|
# to allow media_path in to_jq_upload
|
10
6
|
include Georgia::Engine.routes.url_helpers
|
@@ -10,8 +10,11 @@ module Georgia
|
|
10
10
|
accepts_nested_attributes_for :contents
|
11
11
|
attr_accessible :contents_attributes
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
scope :with_locale, lambda {|locale| joins(:contents).where(georgia_contents: {locale: locale})}
|
14
|
+
|
15
|
+
def content(locale=nil)
|
16
|
+
locale ||= I18n.locale.to_s
|
17
|
+
@content ||= contents.select{|c| c.locale == locale}.first || Georgia::Content.new
|
15
18
|
end
|
16
19
|
|
17
20
|
delegate :title, :text, :excerpt, :keywords, :keyword_list, :image, :locale, to: :content
|
data/app/models/georgia/page.rb
CHANGED
@@ -2,11 +2,6 @@ module Georgia
|
|
2
2
|
class Page < ActiveRecord::Base
|
3
3
|
|
4
4
|
include Georgia::Indexer::Adapter
|
5
|
-
is_searchable({
|
6
|
-
solr: Georgia::Indexer::SolrAdapter::GeorgiaPageExtension,
|
7
|
-
tire: Georgia::Indexer::TireAdapter::GeorgiaPageExtension
|
8
|
-
})
|
9
|
-
|
10
5
|
include Georgia::Concerns::Taggable
|
11
6
|
include Georgia::Concerns::Orderable
|
12
7
|
include Georgia::Concerns::Slugable
|
@@ -9,8 +9,8 @@
|
|
9
9
|
<div class="control-group">
|
10
10
|
<div class="slides js-slides">
|
11
11
|
<ul class="nav-list js-sortable">
|
12
|
-
<% @
|
13
|
-
<%= slide_portlet_tag(slide) %>
|
12
|
+
<% @slides.each do |slide| %>
|
13
|
+
<%= slide_portlet_tag(slide, content: slide.content(params[:locale])) %>
|
14
14
|
<% end -%>
|
15
15
|
</ul>
|
16
16
|
</div>
|
@@ -1 +1 @@
|
|
1
|
-
<%= slide_portlet_tag(@slide, content: @slide.
|
1
|
+
<%= slide_portlet_tag(@slide, content: @slide.content(params[:locale])) %>
|
@@ -39,8 +39,16 @@ module Georgia
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def copy_templates
|
42
|
-
|
43
|
-
|
42
|
+
copy_file "config/initializers/georgia.rb"
|
43
|
+
copy_file "app/controllers/pages_controller.rb"
|
44
|
+
end
|
45
|
+
|
46
|
+
def create_indices
|
47
|
+
if defined? Tire
|
48
|
+
say("Creating elasticsearch indices", :yellow)
|
49
|
+
rake "environment tire:import CLASS=Georgia::Page FORCE=true"
|
50
|
+
rake "environment tire:import CLASS=Ckeditor::Asset FORCE=true"
|
51
|
+
end
|
44
52
|
end
|
45
53
|
|
46
54
|
def show_readme
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render 'pages/templates/one-column' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @page.text.html_safe %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<section id="main">
|
2
|
+
<div class='container'>
|
3
|
+
|
4
|
+
<div class="row">
|
5
|
+
|
6
|
+
<aside id="sidebar-left" class="col-md-3">
|
7
|
+
<% @page.widgets.each do |widget| %>
|
8
|
+
<div class="widget">
|
9
|
+
<h4><%= widget.title %></h4>
|
10
|
+
<p>
|
11
|
+
<%= widget.text.html_safe %>
|
12
|
+
</p>
|
13
|
+
</div>
|
14
|
+
<% end -%>
|
15
|
+
</aside>
|
16
|
+
|
17
|
+
<div id='content' class="col-md-9">
|
18
|
+
<%= @page.text.html_safe %>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
</section>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<section id="main">
|
2
|
+
<div class='container'>
|
3
|
+
|
4
|
+
<div class="row">
|
5
|
+
|
6
|
+
<div id='content' class="col-md-9">
|
7
|
+
<%= @page.text.html_safe %>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<aside id="sidebar-right" class="col-md-3">
|
11
|
+
<% @page.widgets.each do |widget| %>
|
12
|
+
<div class="widget">
|
13
|
+
<h4><%= widget.title %></h4>
|
14
|
+
<p>
|
15
|
+
<%= widget.text.html_safe %>
|
16
|
+
</p>
|
17
|
+
</div>
|
18
|
+
<% end -%>
|
19
|
+
</aside>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
</section>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Georgia
|
2
|
+
module Generators
|
3
|
+
class ViewsGenerator < ::Rails::Generators::Base
|
4
|
+
source_root File.expand_path('../templates', __FILE__)
|
5
|
+
|
6
|
+
def copy_pages_views
|
7
|
+
copy_file "app/views/pages/show.html.erb"
|
8
|
+
copy_file "app/views/pages/templates/_default.html.erb"
|
9
|
+
copy_file "app/views/pages/templates/_one-column.html.erb"
|
10
|
+
copy_file "app/views/pages/templates/_sidebar-left.html.erb"
|
11
|
+
copy_file "app/views/pages/templates/_sidebar-right.html.erb"
|
12
|
+
say("Successfully copied Georgia default templates to your application views.", :green)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/georgia/engine.rb
CHANGED
data/lib/georgia/indexer.rb
CHANGED
@@ -14,28 +14,47 @@ module Georgia
|
|
14
14
|
adapter.search model, params
|
15
15
|
end
|
16
16
|
|
17
|
-
def self.searching model, extension
|
18
|
-
adapter.searching model, extension
|
19
|
-
end
|
20
|
-
|
21
17
|
private
|
22
18
|
|
23
19
|
def self.adapter_lookup
|
24
|
-
(case Georgia.indexer
|
25
|
-
when :solr then SolrAdapter
|
26
|
-
when :tire then TireAdapter
|
20
|
+
@adapter_lookup ||= (case Georgia.indexer
|
21
|
+
when :solr then SolrAdapter
|
22
|
+
when :tire then TireAdapter
|
27
23
|
else
|
28
|
-
TireAdapter
|
24
|
+
TireAdapter
|
29
25
|
end)
|
30
26
|
end
|
31
27
|
|
32
28
|
module Adapter
|
33
|
-
extend ActiveSupport::Concern
|
34
29
|
|
35
|
-
|
36
|
-
def
|
37
|
-
|
38
|
-
|
30
|
+
class << self
|
31
|
+
def included(klass)
|
32
|
+
extension = Extension.new(klass)
|
33
|
+
begin
|
34
|
+
require extension.path
|
35
|
+
klass.send(:include, extension.name)
|
36
|
+
rescue => ex
|
37
|
+
raise "No extension for the #{Georgia.indexer} indexer: #{ex.message}"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class Extension
|
42
|
+
def initialize klass
|
43
|
+
@klass = klass
|
44
|
+
end
|
45
|
+
|
46
|
+
def name
|
47
|
+
name = @klass.to_s.gsub('::', '') + 'Extension'
|
48
|
+
"#{Georgia::Indexer.adapter}::#{name}".constantize
|
49
|
+
end
|
50
|
+
|
51
|
+
def path
|
52
|
+
"georgia/indexer/extensions/#{Georgia.indexer}_adapter/#{filename}"
|
53
|
+
end
|
54
|
+
|
55
|
+
def filename
|
56
|
+
@klass.to_s.underscore
|
57
|
+
end
|
39
58
|
end
|
40
59
|
end
|
41
60
|
end
|
@@ -1,13 +1,12 @@
|
|
1
|
-
require 'sunspot_rails' if defined?(Sunspot)
|
2
|
-
Dir[File.join(File.dirname(__FILE__), 'extensions', 'solr_adapter', '*.rb')].each {|file| require file }
|
3
|
-
|
4
1
|
module Georgia
|
5
2
|
module Indexer
|
6
|
-
|
3
|
+
module SolrAdapter
|
4
|
+
|
5
|
+
require 'sunspot_rails' if defined?(Sunspot)
|
7
6
|
|
8
7
|
# Delegate search_index to the model
|
9
8
|
# Search method is taken by Sunspot
|
10
|
-
def search model, params
|
9
|
+
def self.search model, params
|
11
10
|
model.search_index model, params
|
12
11
|
end
|
13
12
|
|
@@ -1,5 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
if defined?(Tire)
|
2
|
+
require 'tire'
|
3
|
+
Dir[File.join(File.dirname(__FILE__), 'extensions', 'tire_adapter', '*.rb')].each {|file| require file }
|
4
|
+
end
|
3
5
|
|
4
6
|
module Georgia
|
5
7
|
module Indexer
|
data/lib/georgia/version.rb
CHANGED
data/lib/tasks/georgia.rake
CHANGED
@@ -11,19 +11,4 @@ namespace :georgia do
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
namespace :messages do
|
15
|
-
|
16
|
-
desc "Send to Akismet all unverified messages"
|
17
|
-
task verify: :environment do
|
18
|
-
puts "Check for spam. Currently have #{Georgia::Message.spam.count} spam and #{Georgia::Message.ham.count} ham messages."
|
19
|
-
puts "Checking #{Georgia::Message.where(verified_at: nil).count} unverified messages."
|
20
|
-
Georgia::Message.where(verified_at: nil).find_each do |message|
|
21
|
-
message.update_attributes(spam: message.spam?, verified_at: Time.zone.now)
|
22
|
-
end
|
23
|
-
puts "Check completed. #{Georgia::Message.spam.count} spam. #{Georgia::Message.ham.count} ham."
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
|
29
14
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: georgia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mathieu Gagné
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -719,6 +719,12 @@ files:
|
|
719
719
|
- lib/tasks/georgia.rake
|
720
720
|
- lib/tasks/upgrade.rake
|
721
721
|
- lib/tasks/assets.rake
|
722
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_one-column.html.erb
|
723
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_default.html.erb
|
724
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-right.html.erb
|
725
|
+
- lib/generators/georgia/views/templates/app/views/pages/templates/_sidebar-left.html.erb
|
726
|
+
- lib/generators/georgia/views/templates/app/views/pages/show.html.erb
|
727
|
+
- lib/generators/georgia/views/views_generator.rb
|
722
728
|
- lib/generators/georgia/install/templates/Procfile
|
723
729
|
- lib/generators/georgia/install/templates/app/controllers/pages_controller.rb
|
724
730
|
- lib/generators/georgia/install/templates/config/initializers/georgia.rb
|
@@ -735,9 +741,9 @@ files:
|
|
735
741
|
- lib/georgia/assets.rb
|
736
742
|
- lib/georgia/indexer/tire_adapter.rb
|
737
743
|
- lib/georgia/indexer/solr_adapter.rb
|
738
|
-
- lib/georgia/indexer/extensions/solr_adapter/
|
739
|
-
- lib/georgia/indexer/extensions/solr_adapter/
|
740
|
-
- lib/georgia/indexer/extensions/solr_adapter/
|
744
|
+
- lib/georgia/indexer/extensions/solr_adapter/georgia/page.rb
|
745
|
+
- lib/georgia/indexer/extensions/solr_adapter/acts_as_taggable_on/tag.rb
|
746
|
+
- lib/georgia/indexer/extensions/solr_adapter/ckeditor/asset.rb
|
741
747
|
- lib/georgia/indexer/extensions/tire_adapter/georgia_page.rb
|
742
748
|
- lib/georgia/indexer/extensions/tire_adapter/ckeditor_asset.rb
|
743
749
|
- lib/georgia/indexer/extensions/tire_adapter/acts_as_taggable_on_tag.rb
|