monologue 0.4.1 → 0.5.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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Yzk3MGNhZDY5ZmIzMDkxYzk5NGVjMTU5NGM0ZmQ1MGQ0MjJmZjI4MA==
5
- data.tar.gz: !binary |-
6
- NTY3MjY5OTE2OTJjNTgwZTdjMmQxNTBiMjY2MDJkMmYwOWFlNmVmMw==
2
+ SHA1:
3
+ metadata.gz: 13b62c70625552ac739c2cafbe6da15e4a75c850
4
+ data.tar.gz: c49b7d6db9a629fec6c67f303613669e9474ad42
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YmJjMzNkZjJhYzQ1OWFhOGZlYjJmMWUwYTY4YmU4MTk1NDU1NjI1MjRiOGI4
10
- YjVjZDhmZDAxZWNhMGJmNGU5ZmRmNjljYTM1MjUxM2YzNjc2YThhOTUyNTNk
11
- ZjAzNmI5MTJmMWVmMTcxZDZjMTNiMzE4NGRjNTQ0MTg3YmM3YmU=
12
- data.tar.gz: !binary |-
13
- OTBlOGFhNDA4OGFlYzg3MTg2NjhmNzBkN2U0OWQzZDNlMTM1NzNjNDBmYmNl
14
- MmNiZmE4NWNiOGU5M2IyYTBiYmNmODk5ODZhMDI0ODZmNmUwNGEwMzE1ZGU3
15
- ZDQzZTM3YzAzMmVkMjVkYjJjNmQ4ZTU4MTA4OWI2ZmM1MGZmYmI=
6
+ metadata.gz: ecc8bbb9ef1d248be441017189247190f059a42ab9dc44b2da55a67847a21816ec4a3b9f91400ca9a903de2843fb7a1fd5c6590a68cfa719fb3bb9670ca9123d
7
+ data.tar.gz: 9e3d8e84fb732740ddf355bc9578830006f0544229d3f39e2a57e30e26d201ff24c6de1cfecc76cdbb63d2eb3399f291f54cbf4573b85c986ce89e17a90f06f1
data/README.md CHANGED
@@ -8,15 +8,15 @@
8
8
 
9
9
  -
10
10
 
11
- Monologue is a basic mountable blogging engine in Rails built to be easily mounted in an already existing Rails app, but it can also be used alone.
11
+ Monologue is a basic, mountable blogging engine in Rails built to be easily mounted in an already existing Rails app, but it can also be used alone.
12
12
 
13
13
  ## Version
14
14
 
15
- This README is for a future Monologue version, that will be 0.4.X and be Rails 4 specific. See other branches for other versions (0-3-stable being the latest stable version).
15
+ This README is for the latest version of Monologue (0-5-stable being the latest stable version).
16
16
 
17
17
  ## Upgrade and changes
18
18
 
19
- To know how to upgrade, see [UPGRADE.md](https://github.com/jipiboily/monologue/blob/master/UPGRADE.md) file. If you want to know what changed since the last versions, see [CHANGELOG.md](https://github.com/jipiboily/monologue/blob/master/CHANGELOG.md).
19
+ To learn how to upgrade, see [UPGRADE.md](https://github.com/jipiboily/monologue/blob/master/UPGRADE.md) file. If you want to learn what changed since the last versions, see [CHANGELOG.md](https://github.com/jipiboily/monologue/blob/master/CHANGELOG.md).
20
20
 
21
21
  ## Questions? Problems? Documentation?
22
22
 
@@ -26,7 +26,7 @@ To know how to upgrade, see [UPGRADE.md](https://github.com/jipiboily/monologue/
26
26
  - IRC channel (on Freenode): #monologue.
27
27
 
28
28
  ## Some features
29
- - Rails mountable engine (fully named spaced and mountable in an already existing app)
29
+ - Rails mountable engine (fully namespaced and mountable in an already existing app)
30
30
  - tested
31
31
  - back to basics: few features
32
32
  - tags (or categories)
@@ -46,15 +46,15 @@ To know how to upgrade, see [UPGRADE.md](https://github.com/jipiboily/monologue/
46
46
 
47
47
 
48
48
  ## Installation
49
- ### 1. Add the gem to your `Gemfile`. This will get the latest version compatible with Rails 4 until we release a gem
49
+ ### 1. Add the gem to your `Gemfile`.
50
50
  ```ruby
51
- gem 'monologue', github: 'jipiboily/monologue'
51
+ gem 'monologue'
52
52
  ```
53
53
  And run `bundle install` to fetch the gem and update your 'Gemfile.lock'.
54
54
 
55
55
  ### 2. Route to Monologue
56
56
 
57
- Add this to your route file (`config/route.rb`)
57
+ Add this to your route file (`config/routes.rb`)
58
58
  ```ruby
59
59
  # This line mounts Monologue's routes at the root of your application.
60
60
  # This means, any requests to URLs such as /my-post, will go to Monologue::PostsController.
@@ -70,33 +70,37 @@ be available at `/monologue`.
70
70
  ### 3. Migrate Monologue's database tables
71
71
  Run these commands:
72
72
 
73
- 1. $`bundle exec rake monologue:install:migrations`
74
- 2. $`bundle exec rake db:create` (only if this is a new project)
75
- 3. $`bundle exec rake db:migrate`
73
+ 1. $`bin/rake monologue:install:migrations`
74
+ 2. $`bin/rake db:create` (only if this is a new project)
75
+ 3. $`bin/rake db:migrate`
76
76
 
77
77
 
78
78
  ### 4. Create a user
79
- Open your development console with `rails c`, then:
79
+ Open your development console with `bin/rails c`, then:
80
80
  ```ruby
81
81
  Monologue::User.create(name: "monologue", email:"monologue@example.com", password:"my-password", password_confirmation: "my-password")
82
82
  ```
83
83
 
84
84
  ### 5. Configure Monologue.
85
- This is all done in an initializer file, say `config/initializers/monologue.rb`. More on this in the [Wiki - Configuration](https://github.com/jipiboily/monologue/wiki/Configuration).
85
+ This is all done in an initializer file, typically `config/initializers/monologue.rb`. More on this in the [Wiki - Configuration](https://github.com/jipiboily/monologue/wiki/Configuration).
86
86
 
87
87
  ### 6. Ready
88
- Start your server and head on [http://localhost:3000/monologue](http://localhost:3000/monologue) to log in the admin section.
88
+ Start your server and go to [http://localhost:3000/monologue](http://localhost:3000/monologue) to log in the admin section.
89
89
 
90
90
 
91
91
  ### Note to users
92
- Monologue is using his own tables. If you want to use your own tables with monologue (for example the User table)
93
- this might help you to monkey patch [Monkey Patch](https://gist.github.com/jipiboily/776d907fc932640ac59a)
92
+ Monologue is using its own tables. If you want to use your own tables with monologue (for example the User table)
93
+ this might help you to [monkey patch](https://gist.github.com/jipiboily/776d907fc932640ac59a).
94
94
 
95
95
  ## Customization
96
96
  See the [Wiki - Customizations](https://github.com/jipiboily/monologue/wiki/Customizations).
97
97
 
98
+ ## Copy views
99
+ copy views like devise `rails g monologue:views`
100
+ or use scope: `rails g monologue:views blog`
101
+
98
102
  ## Requirements
99
- - Rails 4.0.4 +
103
+ - Rails 4.2.1 +
100
104
  - Database: MySQL & Postgres are supported but other databases might work too.
101
105
 
102
106
  ## Authors
@@ -124,9 +128,10 @@ Starting point:
124
128
  * Fork the repo
125
129
  * Clone your repo
126
130
  * Run `bundle install`
127
- * Run `bundle exec rake test_app` to create the test application in `spec/dummy`
131
+ * Run `bundle exec rake db:migrate`
132
+ * Run `bundle exec rake db:setup`
128
133
  * Make your changes
129
- * Ensure specs pass by running `bundle exec rspec spec`
134
+ * Ensure specs pass by running `bin/rspec spec`
130
135
  * Submit your pull request
131
136
 
132
137
 
@@ -11,7 +11,6 @@
11
11
  //= require monologue/bootstrap/bootstrap-datepicker-fr
12
12
  //= require monologue/bootstrap/bootstrap-datepicker-pt
13
13
  //= require monologue/bootstrap/bootstrap-datepicker-es
14
- //= require ckeditor/override
15
14
  //= require ckeditor/init
16
15
  //= require monologue/admin/ckeditor-config
17
16
  //= require monologue/admin/posts
@@ -3,7 +3,8 @@ class Monologue::Admin::PostsController < Monologue::Admin::BaseController
3
3
  before_filter :load_post, only: [:edit, :update]
4
4
 
5
5
  def index
6
- @posts = Monologue::Post.default
6
+ @page = params[:page].nil? ? 1 : params[:page]
7
+ @posts = Monologue::Post.listing_page(@page).includes(:user)
7
8
  end
8
9
 
9
10
  def new
@@ -1,7 +1,7 @@
1
1
  class Monologue::PostsController < Monologue::ApplicationController
2
2
  def index
3
3
  @page = params[:page].nil? ? 1 : params[:page]
4
- @posts = Monologue::Post.page(@page).published
4
+ @posts = Monologue::Post.page(@page).includes(:user).published
5
5
  end
6
6
 
7
7
  def show
@@ -17,5 +17,10 @@ class Monologue::PostsController < Monologue::ApplicationController
17
17
 
18
18
  def feed
19
19
  @posts = Monologue::Post.published.limit(25)
20
+ if params[:tags].present?
21
+ tags = Monologue::Tag.where(name: params[:tags].split(",")).pluck(:id)
22
+ @posts = @posts.joins(:taggings).where("monologue_taggings.tag_id in (?)", tags)
23
+ end
24
+ render 'feed', layout: false
20
25
  end
21
26
  end
@@ -37,11 +37,11 @@ class Monologue::Post < ActiveRecord::Base
37
37
  end
38
38
 
39
39
  def self.page p
40
- per_page = Monologue::Config.posts_per_page || 10
41
- set_total_pages(per_page)
42
- p = (p.nil? ? 0 : p.to_i - 1)
43
- offset = p * per_page
44
- self.limit(per_page).offset(offset)
40
+ paged_results(p, Monologue::Config.posts_per_page || 10, false)
41
+ end
42
+
43
+ def self.listing_page(p)
44
+ paged_results(p, Monologue::Config.admin_posts_per_page || 50, true)
45
45
  end
46
46
 
47
47
  def self.total_pages
@@ -54,6 +54,17 @@ class Monologue::Post < ActiveRecord::Base
54
54
 
55
55
  private
56
56
 
57
+ def self.paged_results(p, per_page, admin)
58
+ set_total_pages(per_page)
59
+ p = (p.nil? ? 0 : p.to_i - 1)
60
+ offset = p * per_page
61
+ if admin
62
+ default.limit(per_page).offset(offset)
63
+ else
64
+ limit(per_page).offset(offset)
65
+ end
66
+ end
67
+
57
68
  def generate_url
58
69
  return unless self.url.blank?
59
70
  year = self.published_at.class == ActiveSupport::TimeWithZone ? self.published_at.year : DateTime.now.year
@@ -63,5 +74,4 @@ class Monologue::Post < ActiveRecord::Base
63
74
  def url_do_not_start_with_slash
64
75
  errors.add(:url, I18n.t("activerecord.errors.models.monologue/post.attributes.url.start_with_slash")) if self.url.start_with?("/")
65
76
  end
66
-
67
77
  end
@@ -12,7 +12,7 @@
12
12
  <% end %>
13
13
  <div class="container">
14
14
  <% flash.each do |name, msg| %>
15
- <%= content_tag :div, msg, id: "flash_#{name}", class: (name == :notice ? "alert alert-info" : "alert alert-error") %>
15
+ <%= content_tag :div, msg, id: "flash_#{name}", class: (name == 'notice' ? "alert alert-info" : "alert alert-error") %>
16
16
  <% end %>
17
17
 
18
18
  <%= yield %>
@@ -35,4 +35,4 @@
35
35
  <%= render 'layouts/monologue/application/disqus' %>
36
36
  <%= render 'layouts/monologue/application/gauge_analytics' %>
37
37
  </body>
38
- </html>
38
+ </html>
@@ -0,0 +1,9 @@
1
+ <div id="pagination">
2
+ <% if @posts.total_pages > 1 && @posts.total_pages != @page.to_i %>
3
+ <%= link_to t(".older_posts"), admin_posts_page_path(@page.to_i+1), class: "older_posts" %>
4
+ <% end %>
5
+
6
+ <% if @posts.total_pages > 1 && @page.to_i > 1 %>
7
+ <%= link_to t(".newer_posts"), admin_posts_page_path(@page.to_i-1), class: "newer_posts" %>
8
+ <% end %>
9
+ </div>
@@ -20,3 +20,7 @@
20
20
  <% end %>
21
21
  </tbody>
22
22
  </table>
23
+
24
+ <% if @page %>
25
+ <%= render partial: "pagination" %>
26
+ <% end %>
@@ -1,12 +1,12 @@
1
- <section>
1
+ <section data-tags="<%= post.tags.map(&:name).join(' ') %>">
2
2
  <%= render partial: 'monologue/posts/post_header', locals: {post: post} %>
3
3
 
4
4
  <div class="content" data-monologue="content">
5
- <%= truncate_html(post.content, length: 1000, omission: '...') %>
5
+ <%= truncate_html(post.content, length: Monologue::Config.preview_size, omission: '...') %>
6
6
  </div>
7
7
 
8
8
  <div class="tags" data-monologue="tags">
9
9
  <%= render post.tags %>
10
10
  </div>
11
11
  <%= link_to t(".readmore"), post.full_url, class: "button" %>
12
- </section>
12
+ </section>
@@ -1,51 +1,17 @@
1
- <footer class="monologue-social-sharing" data-monologue="monologue-social-sharing">
2
- <span class="social-tagline"><%= t(".tagline") %></span>
3
- <div id="social-share">
4
- <div id="google-plus">
5
- <!-- GOOGLE +1 -->
6
- <!-- Placez cette balise là où vous souhaitez positionner le bouton +1. -->
7
- <g:plusone size="medium"></g:plusone>
8
-
9
- <!-- Placez cet appel d'affichage à l'endroit approprié. -->
10
- <script type="text/javascript">
11
- window.___gcfg = {lang: '<%=Monologue::Config.google_plusone_locale || "en" %>'};
12
-
13
- (function() {
14
- var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
15
- po.src = 'https://apis.google.com/js/plusone.js';
16
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
17
- })();
18
- </script>
19
- <!-- /GOOGLE +1 -->
20
- </div>
21
- <div id="twitter">
22
- <!-- TWITTER -->
23
- <a href="https://twitter.com/share" class="twitter-share-button"
24
- data-lang="<%= Monologue::Config.twitter_locale || "en" %>"
25
- data-url="<%= request.protocol %><%= request.host_with_port %><%= request.path.gsub("//","/") %>"
26
- data-via="<%=Monologue::Config.twitter_username%>"
27
- data-text="<%=@post.title%>"
28
- data-count="horizontal">Tweet</a>
29
-
30
- <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
31
- <!-- /TWITTER -->
32
- </div>
33
-
34
-
35
- <div id="facebook">
36
- <!-- FACEBOOK LIKE -->
37
- <div id="fb-root"></div>
38
- <script>(function(d, s, id) {
39
- var js, fjs = d.getElementsByTagName(s)[0];
40
- if (d.getElementById(id)) return;
41
- js = d.createElement(s); js.id = id;
42
- js.src = "//connect.facebook.net/<%= Monologue::Config.facebook_like_locale || "en_US" %>/all.js#xfbml=1&appId=288133081204194";
43
- fjs.parentNode.insertBefore(js, fjs);
44
- }(document, 'script', 'facebook-jssdk'));</script>
45
- <div class="fb-like" data-send="false" data-width="450" data-show-faces="false"></div>
46
- <!-- /FACEBOOK LIKE -->
47
- </div>
48
-
49
-
50
- </div>
51
- </footer>
1
+ <div class="monologue-social-sharing" data-monologue="monologue-social-sharing">
2
+ <span class="social-tagline"><%= t('.tagline') %></span>
3
+ <ul id="social-share">
4
+ <li id="google-plus">
5
+ <%= render :partial => 'monologue/posts/social/pinterest' %>
6
+ </li>
7
+ <li id="twitter">
8
+ <%= render :partial => 'monologue/posts/social/twitter' %>
9
+ </li>
10
+ <li id="google-plus">
11
+ <%= render :partial => 'monologue/posts/social/gplus' %>
12
+ </li>
13
+ <li id="facebook">
14
+ <%= render :partial => 'monologue/posts/social/facebook' %>
15
+ </li>
16
+ </ul>
17
+ </div>
@@ -0,0 +1,12 @@
1
+ <% if Monologue::Config.facebook_app_id.present? %>
2
+ <div id="fb-root"></div>
3
+ <script>(function (d, s, id) {
4
+ var js, fjs = d.getElementsByTagName(s)[0];
5
+ if (d.getElementById(id)) return;
6
+ js = d.createElement(s);
7
+ js.id = id;
8
+ js.src = "//connect.facebook.net/<%= Monologue::Config.facebook_like_locale || "en_US" %>/all.js#xfbml=1&appId=<%= Monologue::Config.facebook_app_id %>";
9
+ fjs.parentNode.insertBefore(js, fjs);
10
+ }(document, 'script', 'facebook-jssdk'));</script>
11
+ <div class="fb-like" data-send="false" data-width="450" data-show-faces="false"></div>
12
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <div id="google-plus">
2
+ <g:plusone size="medium"></g:plusone>
3
+
4
+ <script type="text/javascript">
5
+ window.___gcfg = {lang: '<%=Monologue::Config.google_plusone_locale || "en" %>'};
6
+
7
+ (function () {
8
+ var po = document.createElement('script');
9
+ po.type = 'text/javascript';
10
+ po.async = true;
11
+ po.src = 'https://apis.google.com/js/plusone.js';
12
+ var s = document.getElementsByTagName('script')[0];
13
+ s.parentNode.insertBefore(po, s);
14
+ })();
15
+ </script>
16
+ </div>
@@ -0,0 +1,16 @@
1
+ <% if Monologue::Config.use_pinterest.presence %>
2
+ <%= link_to"Pin It",
3
+ "http://pinterest.com/pin/create/button/?url=#{@post.url}",
4
+ :class => "pin-it-button",
5
+ "count-layout" => "none" %>
6
+
7
+ <script type="text/javascript">
8
+ (function (d) {
9
+ var f = d.getElementsByTagName('SCRIPT')[0], p = d.createElement('SCRIPT');
10
+ p.type = 'text/javascript';
11
+ p.async = true;
12
+ p.src = '//assets.pinterest.com/js/pinit.js';
13
+ f.parentNode.insertBefore(p, f);
14
+ }(document));
15
+ </script>
16
+ <% end %>
@@ -0,0 +1,18 @@
1
+ <% if Monologue::Config.twitter_username.present? %>
2
+ <a href="https://twitter.com/share" class="twitter-share-button"
3
+ data-lang="<%= Monologue::Config.twitter_locale || "en" %>"
4
+ data-url="<%= request.protocol %><%= request.host_with_port %><%= request.path.gsub("//", "/") %>"
5
+ data-via="<%= Monologue::Config.twitter_username %>"
6
+ data-text="<%= @post.title %>"
7
+ data-count="horizontal">Tweet</a>
8
+
9
+ <script>!function (d, s, id) {
10
+ var js, fjs = d.getElementsByTagName(s)[0];
11
+ if (!d.getElementById(id)) {
12
+ js = d.createElement(s);
13
+ js.id = id;
14
+ js.src = "//platform.twitter.com/widgets.js";
15
+ fjs.parentNode.insertBefore(js, fjs);
16
+ }
17
+ }(document, "script", "twitter-wjs");</script>
18
+ <% end %>
@@ -1 +1 @@
1
- <span class='tag'><%=link_to tag.name, tag_url(tag) %></span>
1
+ <span class='tag tag-<%= tag.name.parameterize %>'><%=link_to tag.name, tag_url(tag) %></span>
@@ -58,6 +58,7 @@ de:
58
58
  published: "Yes"
59
59
  not_published: "Nicht veröffentlicht"
60
60
  status: "Veröffentlichen ?"
61
+ author: "Autor"
61
62
  new:
62
63
  header: "Neuer Monologue"
63
64
  create:
@@ -127,7 +128,6 @@ de:
127
128
  blank: "'Veröffentlichen am' wird benötigt"
128
129
  url:
129
130
  start_with_slash: "URL darf nicht mit einem Schrägstrich anfangen ('/')"
130
-
131
131
  monologue/user:
132
132
  blank: "%{attribute} wird benötigt"
133
133
  taken: "%{attribute} wurde schon benutzt"
@@ -58,6 +58,7 @@ en:
58
58
  published: "Yes"
59
59
  not_published: "Not published"
60
60
  status: "Published ?"
61
+ author: "Author"
61
62
  new:
62
63
  header: "New monologue"
63
64
  create:
@@ -127,7 +128,6 @@ en:
127
128
  blank: "'Published at' is required"
128
129
  url:
129
130
  start_with_slash: "URL can't start with a slash ('/')"
130
-
131
131
  monologue/user:
132
132
  blank: "%{attribute} is required"
133
133
  taken: "%{attribute} has already been taken"
@@ -58,6 +58,7 @@ es:
58
58
  published: "Sí"
59
59
  not_published: "No publicado"
60
60
  status: "Publicado?"
61
+ author: "Autor"
61
62
  new:
62
63
  header: "Nuevo artículo"
63
64
  create:
@@ -139,7 +140,6 @@ es:
139
140
  blank: "'Publicado en' es obligatorio"
140
141
  url:
141
142
  start_with_slash: "URL no puede empezar con '/'"
142
-
143
143
  monologue/user:
144
144
  blank: "%{attribute} es obligatorio"
145
145
  taken: "%{attribute} ya está en uso"
@@ -56,6 +56,7 @@ fr:
56
56
  published: "Oui"
57
57
  not_published: "Non publié"
58
58
  status: "Publié ?"
59
+ author: "Auteur"
59
60
  new:
60
61
  header: "Nouveau monologue"
61
62
  create:
@@ -58,6 +58,7 @@ it:
58
58
  published: "Sì"
59
59
  not_published: "Non pubblicato"
60
60
  status: "Pubblicato ?"
61
+ author: "Autore"
61
62
  new:
62
63
  header: "Nuovo monologue"
63
64
  create:
@@ -1,4 +1,4 @@
1
- pt_BR:
1
+ pt-BR:
2
2
  monologue:
3
3
  posts:
4
4
  pagination:
@@ -58,6 +58,7 @@ pt_BR:
58
58
  published: "Sim"
59
59
  not_published: "Não publicado"
60
60
  status: "Publicado?"
61
+ author: "Autor"
61
62
  new:
62
63
  header: "Novo blog post"
63
64
  create:
@@ -58,6 +58,7 @@ ro:
58
58
  published: "Da"
59
59
  not_published: "Nu e publicat"
60
60
  status: "Publicat ?"
61
+ author: "Autor"
61
62
  new:
62
63
  header: "Articol nou"
63
64
  create:
@@ -58,6 +58,7 @@ tr:
58
58
  published: "Evet"
59
59
  not_published: "Yayınlanmadı"
60
60
  status: "Yayınlandı mı?"
61
+ author: "Yazar"
61
62
  new:
62
63
  header: "Yeni monolog"
63
64
  create:
@@ -7,6 +7,7 @@ Monologue::Engine.routes.draw do
7
7
 
8
8
  namespace :admin, path: "monologue" do
9
9
  get "/" => "posts#index", as: "" # responds to admin_url and admin_path
10
+ get "/page/:page", to: "posts#index", as: "posts_page"
10
11
  get "logout" => "sessions#destroy"
11
12
  get "login" => "sessions#new"
12
13
  resources :sessions
@@ -0,0 +1,27 @@
1
+ require "rails/generators/base"
2
+
3
+ module Monologue
4
+ module Generators
5
+ class ViewsGenerator < Rails::Generators::Base
6
+ desc "Copies Monologue views to your application."
7
+ argument :scope, required: false, default: nil,
8
+ desc: "The scope to copy views to"
9
+ source_root File.expand_path("../../../../app/views", __FILE__)
10
+
11
+ def copy_views
12
+ view_directory :layouts
13
+ view_directory :monologue
14
+ end
15
+
16
+ protected
17
+
18
+ def view_directory(name)
19
+ directory name.to_s, "#{target_path}/#{name}"
20
+ end
21
+
22
+ def target_path
23
+ @target_path ||= "app/views/#{scope || ''}"
24
+ end
25
+ end
26
+ end
27
+ end
@@ -3,34 +3,43 @@ module Monologue
3
3
  include ConfigurationExtensions
4
4
 
5
5
  attr_accessor :disqus_shortname,
6
- :site_name,
7
- :site_subtitle,
8
- :site_url,
9
- :meta_description,
10
- :meta_keyword,
6
+ :site_name,
7
+ :site_subtitle,
8
+ :site_url,
9
+ :meta_description,
10
+ :meta_keyword,
11
11
 
12
- :show_rss_icon,
12
+ :show_rss_icon,
13
13
 
14
- :twitter_username,
15
- :twitter_locale,
14
+ :twitter_username,
15
+ :twitter_locale,
16
16
 
17
- :facebook_like_locale,
18
- :facebook_url,
19
- :facebook_logo, #used in the open graph protocol to display an image when a post is liked
17
+ :facebook_like_locale,
18
+ :facebook_url,
19
+ :facebook_logo, #used in the open graph protocol to display an image when a post is liked
20
+ :facebook_app_id,
20
21
 
21
- :google_plus_account_url,
22
- :google_plusone_locale,
22
+ :google_plus_account_url,
23
+ :google_plusone_locale,
23
24
 
24
- :linkedin_url,
25
+ :use_pinterest, #display pinterest?
25
26
 
26
- :github_username,
27
+ :linkedin_url,
27
28
 
28
- :admin_force_ssl,
29
- :posts_per_page,
30
- :google_analytics_id,
31
- :gauge_analytics_site_id,
32
- :layout,
33
- :sidebar
29
+ :github_username,
30
+
31
+ :admin_force_ssl,
32
+ :posts_per_page,
33
+ :admin_posts_per_page,
34
+ :google_analytics_id,
35
+ :gauge_analytics_site_id,
36
+ :layout,
37
+ :sidebar,
38
+ :preview_size
39
+
40
+ def initialize
41
+ @preview_size = 1000;
42
+ end
34
43
 
35
44
  end
36
45
 
@@ -4,6 +4,7 @@ require "select2-rails"
4
4
  require "jquery-rails"
5
5
  require "sass-rails"
6
6
  require "coffee-rails"
7
+ require "responders"
7
8
 
8
9
  module Monologue
9
10
  class Engine < Rails::Engine
@@ -20,6 +21,7 @@ module Monologue
20
21
  app.config.assets.precompile += %w[
21
22
  monologue/admin/ckeditor-config.js
22
23
  ckeditor/*
24
+ *.eot* *.woff *.ttf
23
25
  ]
24
26
  end
25
27
 
@@ -1,3 +1,3 @@
1
1
  module Monologue
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,251 +1,279 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monologue
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Philippe Boily | @jipiboily
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-30 00:00:00.000000000 Z
11
+ date: 2015-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 4.0.4
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.0.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bcrypt
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 3.1.7
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.1.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: coffee-rails
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 4.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 4.0.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: sass-rails
56
+ name: truncate_html
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 4.0.0
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 4.0.0
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: truncate_html
70
+ name: jquery-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: jquery-rails
84
+ name: rails-i18n
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: ckeditor
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 4.0.11
103
+ version: 4.1.1
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 4.0.11
110
+ version: 4.1.1
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: select2-rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '3.2'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '3.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sass-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 5.0.0
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 5.0.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: responders
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 2.1.0
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 2.1.0
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: rspec-rails
127
155
  requirement: !ruby/object:Gem::Requirement
128
156
  requirements:
129
- - - ~>
157
+ - - "~>"
130
158
  - !ruby/object:Gem::Version
131
159
  version: '2.8'
132
160
  type: :development
133
161
  prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
- - - ~>
164
+ - - "~>"
137
165
  - !ruby/object:Gem::Version
138
166
  version: '2.8'
139
167
  - !ruby/object:Gem::Dependency
140
168
  name: factory_girl_rails
141
169
  requirement: !ruby/object:Gem::Requirement
142
170
  requirements:
143
- - - ~>
171
+ - - "~>"
144
172
  - !ruby/object:Gem::Version
145
173
  version: 1.4.0
146
174
  type: :development
147
175
  prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
- - - ~>
178
+ - - "~>"
151
179
  - !ruby/object:Gem::Version
152
180
  version: 1.4.0
153
181
  - !ruby/object:Gem::Dependency
154
182
  name: capybara
155
183
  requirement: !ruby/object:Gem::Requirement
156
184
  requirements:
157
- - - ~>
185
+ - - "~>"
158
186
  - !ruby/object:Gem::Version
159
187
  version: 1.1.4
160
188
  type: :development
161
189
  prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
- - - ~>
192
+ - - "~>"
165
193
  - !ruby/object:Gem::Version
166
194
  version: 1.1.4
167
195
  - !ruby/object:Gem::Dependency
168
196
  name: capybara-webkit
169
197
  requirement: !ruby/object:Gem::Requirement
170
198
  requirements:
171
- - - ! '>='
199
+ - - ">="
172
200
  - !ruby/object:Gem::Version
173
201
  version: '0'
174
202
  type: :development
175
203
  prerelease: false
176
204
  version_requirements: !ruby/object:Gem::Requirement
177
205
  requirements:
178
- - - ! '>='
206
+ - - ">="
179
207
  - !ruby/object:Gem::Version
180
208
  version: '0'
181
209
  - !ruby/object:Gem::Dependency
182
210
  name: shoulda
183
211
  requirement: !ruby/object:Gem::Requirement
184
212
  requirements:
185
- - - ! '>='
213
+ - - ">="
186
214
  - !ruby/object:Gem::Version
187
215
  version: '0'
188
216
  type: :development
189
217
  prerelease: false
190
218
  version_requirements: !ruby/object:Gem::Requirement
191
219
  requirements:
192
- - - ! '>='
220
+ - - ">="
193
221
  - !ruby/object:Gem::Version
194
222
  version: '0'
195
223
  - !ruby/object:Gem::Dependency
196
224
  name: guard-rspec
197
225
  requirement: !ruby/object:Gem::Requirement
198
226
  requirements:
199
- - - ! '>='
227
+ - - ">="
200
228
  - !ruby/object:Gem::Version
201
229
  version: '0'
202
230
  type: :development
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
205
233
  requirements:
206
- - - ! '>='
234
+ - - ">="
207
235
  - !ruby/object:Gem::Version
208
236
  version: '0'
209
237
  - !ruby/object:Gem::Dependency
210
238
  name: database_cleaner
211
239
  requirement: !ruby/object:Gem::Requirement
212
240
  requirements:
213
- - - ~>
241
+ - - "~>"
214
242
  - !ruby/object:Gem::Version
215
243
  version: 0.9.1
216
244
  type: :development
217
245
  prerelease: false
218
246
  version_requirements: !ruby/object:Gem::Requirement
219
247
  requirements:
220
- - - ~>
248
+ - - "~>"
221
249
  - !ruby/object:Gem::Version
222
250
  version: 0.9.1
223
251
  - !ruby/object:Gem::Dependency
224
252
  name: mysql2
225
253
  requirement: !ruby/object:Gem::Requirement
226
254
  requirements:
227
- - - ! '>='
255
+ - - ">="
228
256
  - !ruby/object:Gem::Version
229
257
  version: '0'
230
258
  type: :development
231
259
  prerelease: false
232
260
  version_requirements: !ruby/object:Gem::Requirement
233
261
  requirements:
234
- - - ! '>='
262
+ - - ">="
235
263
  - !ruby/object:Gem::Version
236
264
  version: '0'
237
265
  - !ruby/object:Gem::Dependency
238
266
  name: sqlite3
239
267
  requirement: !ruby/object:Gem::Requirement
240
268
  requirements:
241
- - - ! '>='
269
+ - - ">="
242
270
  - !ruby/object:Gem::Version
243
271
  version: '0'
244
272
  type: :development
245
273
  prerelease: false
246
274
  version_requirements: !ruby/object:Gem::Requirement
247
275
  requirements:
248
- - - ! '>='
276
+ - - ">="
249
277
  - !ruby/object:Gem::Version
250
278
  version: '0'
251
279
  description: Monologue is a basic blogging engine. It is a Rails mountable engine
@@ -309,6 +337,7 @@ files:
309
337
  - app/views/layouts/monologue/application/_twitter_cards.html.erb
310
338
  - app/views/monologue/admin/comments/show.html.erb
311
339
  - app/views/monologue/admin/posts/_form.html.erb
340
+ - app/views/monologue/admin/posts/_pagination.html.erb
312
341
  - app/views/monologue/admin/posts/edit.html.erb
313
342
  - app/views/monologue/admin/posts/index.html.erb
314
343
  - app/views/monologue/admin/posts/new.html.erb
@@ -325,6 +354,10 @@ files:
325
354
  - app/views/monologue/posts/feed.rss.builder
326
355
  - app/views/monologue/posts/index.html.erb
327
356
  - app/views/monologue/posts/show.html.erb
357
+ - app/views/monologue/posts/social/_facebook.html.erb
358
+ - app/views/monologue/posts/social/_gplus.html.erb
359
+ - app/views/monologue/posts/social/_pinterest.html.erb
360
+ - app/views/monologue/posts/social/_twitter.html.erb
328
361
  - app/views/monologue/sidebar/_archive.html.erb
329
362
  - app/views/monologue/sidebar/_categories.html.erb
330
363
  - app/views/monologue/sidebar/_latest_posts.html.erb
@@ -337,7 +370,7 @@ files:
337
370
  - config/locales/es.yml
338
371
  - config/locales/fr.yml
339
372
  - config/locales/it.yml
340
- - config/locales/pt.yml
373
+ - config/locales/pt-BR.yml
341
374
  - config/locales/ro.yml
342
375
  - config/locales/tr.yml
343
376
  - config/routes.rb
@@ -356,6 +389,7 @@ files:
356
389
  - db/migrate/20130509015400_merge_revisions_into_posts.rb
357
390
  - db/seeds.rb
358
391
  - deprecations.rb
392
+ - lib/generators/monologue/views_generator.rb
359
393
  - lib/monologue.rb
360
394
  - lib/monologue/configuration.rb
361
395
  - lib/monologue/configuration_extensions.rb
@@ -387,12 +421,12 @@ require_paths:
387
421
  - lib
388
422
  required_ruby_version: !ruby/object:Gem::Requirement
389
423
  requirements:
390
- - - ! '>='
424
+ - - ">="
391
425
  - !ruby/object:Gem::Version
392
426
  version: '0'
393
427
  required_rubygems_version: !ruby/object:Gem::Requirement
394
428
  requirements:
395
- - - ! '>='
429
+ - - ">="
396
430
  - !ruby/object:Gem::Version
397
431
  version: '0'
398
432
  requirements: []