enjoy_cms_news 0.4.0.beta3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +41 -0
  9. data/Rakefile +1 -0
  10. data/app/assets/javascripts/enjoy_cms_news.coffee +0 -0
  11. data/app/assets/stylesheets/enjoy_cms_news.sass +0 -0
  12. data/app/controllers/concerns/enjoy/news/decorators/categories.rb +5 -0
  13. data/app/controllers/concerns/enjoy/news/decorators/news_controller.rb +5 -0
  14. data/app/controllers/enjoy/news/categories_controller.rb +7 -0
  15. data/app/controllers/enjoy/news/news_controller.rb +7 -0
  16. data/app/models/concerns/enjoy/news/decorators/category.rb +5 -0
  17. data/app/models/concerns/enjoy/news/decorators/image.rb +5 -0
  18. data/app/models/concerns/enjoy/news/decorators/news.rb +5 -0
  19. data/app/models/enjoy/news/category.rb +11 -0
  20. data/app/models/enjoy/news/image.rb +16 -0
  21. data/app/models/enjoy/news/news.rb +16 -0
  22. data/app/views/enjoy/news/news/_list.html.slim +6 -0
  23. data/app/views/enjoy/news/news/index.html.slim +4 -0
  24. data/app/views/enjoy/news/news/show.html.slim +8 -0
  25. data/bin/console +14 -0
  26. data/bin/setup +7 -0
  27. data/config/initializers/enjoy_news.rb +72 -0
  28. data/config/locales/enjoy.news.ru.yml +13 -0
  29. data/enjoy_cms_news.gemspec +38 -0
  30. data/lib/enjoy/news/admin/category.rb +143 -0
  31. data/lib/enjoy/news/admin/image.rb +31 -0
  32. data/lib/enjoy/news/admin/news.rb +101 -0
  33. data/lib/enjoy/news/admin.rb +6 -0
  34. data/lib/enjoy/news/configuration.rb +61 -0
  35. data/lib/enjoy/news/controllers/categories.rb +72 -0
  36. data/lib/enjoy/news/controllers/news.rb +39 -0
  37. data/lib/enjoy/news/engine.rb +7 -0
  38. data/lib/enjoy/news/models/active_record/category.rb +25 -0
  39. data/lib/enjoy/news/models/active_record/image.rb +16 -0
  40. data/lib/enjoy/news/models/active_record/news.rb +29 -0
  41. data/lib/enjoy/news/models/category.rb +62 -0
  42. data/lib/enjoy/news/models/image.rb +20 -0
  43. data/lib/enjoy/news/models/mongoid/category.rb +28 -0
  44. data/lib/enjoy/news/models/mongoid/image.rb +22 -0
  45. data/lib/enjoy/news/models/mongoid/news.rb +39 -0
  46. data/lib/enjoy/news/models/news.rb +57 -0
  47. data/lib/enjoy/news/routes.rb +56 -0
  48. data/lib/enjoy/news/version.rb +5 -0
  49. data/lib/enjoy_cms_news.rb +69 -0
  50. data/lib/generators/enjoy/news/all_generator.rb +17 -0
  51. data/lib/generators/enjoy/news/config/install_generator.rb +13 -0
  52. data/lib/generators/enjoy/news/config/templates/enjoy_news.erb +28 -0
  53. data/lib/generators/enjoy/news/controllers/all_generator.rb +28 -0
  54. data/lib/generators/enjoy/news/controllers/category_generator.rb +43 -0
  55. data/lib/generators/enjoy/news/controllers/news_generator.rb +43 -0
  56. data/lib/generators/enjoy/news/controllers/templates/categories_controller.erb +10 -0
  57. data/lib/generators/enjoy/news/controllers/templates/news_controller.erb +10 -0
  58. data/lib/generators/enjoy/news/migrations/migration_generator.rb +18 -0
  59. data/lib/generators/enjoy/news/migrations/templates/news.rb +92 -0
  60. data/lib/generators/enjoy/news/models/all_generator.rb +33 -0
  61. data/lib/generators/enjoy/news/models/category_generator.rb +39 -0
  62. data/lib/generators/enjoy/news/models/image_generator.rb +39 -0
  63. data/lib/generators/enjoy/news/models/news_generator.rb +34 -0
  64. data/lib/generators/enjoy/news/models/templates/category.erb +30 -0
  65. data/lib/generators/enjoy/news/models/templates/image.erb +30 -0
  66. data/lib/generators/enjoy/news/models/templates/item.erb +38 -0
  67. data/release.sh +7 -0
  68. metadata +194 -0
@@ -0,0 +1,61 @@
1
+ module Enjoy
2
+ module News
3
+ def self.configuration
4
+ @configuration ||= Configuration.new
5
+ end
6
+ def self.config
7
+ @configuration ||= Configuration.new
8
+ end
9
+
10
+ def self.configure
11
+ yield configuration
12
+ end
13
+
14
+ class Configuration
15
+ attr_accessor :news_image_styles
16
+ attr_accessor :category_image_styles
17
+ attr_accessor :images_image_styles
18
+
19
+ attr_accessor :news_per_page
20
+ attr_accessor :news_excerpt
21
+ attr_accessor :news_content_required
22
+
23
+ attr_accessor :gallery_support
24
+ attr_accessor :seo_support
25
+ attr_accessor :pages_support
26
+
27
+ attr_accessor :can_connect_news_with_pages
28
+ attr_accessor :can_connect_category_with_pages
29
+
30
+ attr_accessor :localize
31
+
32
+ def initialize
33
+ @news_image_styles = {
34
+ main: '400x200>',
35
+ thumb: '200x100>'
36
+ }
37
+ @category_image_styles = {
38
+ main: '400x200>',
39
+ thumb: '200x100>'
40
+ }
41
+ @images_image_styles = {
42
+ main: '400x200>',
43
+ thumb: '200x100>'
44
+ }
45
+
46
+ @news_per_page = 10
47
+ @news_excerpt = 12
48
+ @news_content_required = true
49
+
50
+ @gallery_support = defined? Enjoy::Gallery
51
+ @seo_support = defined? Enjoy::Seo
52
+ @pages_support = defined? Enjoy::Pages
53
+
54
+ @can_connect_news_with_pages = true
55
+ @can_connect_category_with_pages = true
56
+
57
+ @localize = Enjoy.config.localize
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,72 @@
1
+ module Enjoy::News
2
+ module Controllers
3
+ module Categories
4
+ extend ActiveSupport::Concern
5
+
6
+ def index
7
+ @categories = category_class.enabled.sorted.to_a
8
+ @root_catalog = category_class.enabled.roots.sorted.all.to_a
9
+ end
10
+
11
+ def show
12
+ @category = category_class.enabled.find(params[:id])
13
+ if !@category.text_slug.blank? and @category.text_slug != params[:id]
14
+ redirect_to @category, status_code: 301
15
+ return
16
+ end
17
+ @seo_parent_page = find_seo_page(url_for(action: :index))
18
+
19
+ @children = @category.children.enabled.sorted.all.to_a
20
+ @news = @category.news.enabled.sorted.all.to_a
21
+ end
22
+
23
+ def page_title
24
+ if @category
25
+ @category.page_title
26
+ else
27
+ super
28
+ end
29
+ end
30
+
31
+ private
32
+ def category_class
33
+ Enjoy::News::Category
34
+ end
35
+ def news_class
36
+ Enjoy::News::News
37
+ end
38
+
39
+ # def index_crumbs
40
+ # if @seo_parent_page
41
+ # catalog_title = Settings.ns('breadcrumbs').catalog_title(default: "Каталог", label: "'Каталог' в breadcrumbs")
42
+ # _crumb = catalog_title
43
+ # _crumb = @seo_parent_page.name if _crumb.blank?
44
+ # _crumb = @seo_parent_page.title if _crumb.blank?
45
+ # _crumb = @seo_parent_page.h1 if _crumb.blank?
46
+ # add_crumb _crumb, @seo_parent_page.fullpath
47
+ # else
48
+ # catalog_title = Settings.ns('breadcrumbs').catalog_title(default: "Каталог", label: "'Каталог' в breadcrumbs")
49
+ # _crumb = catalog_title
50
+ # add_crumb _crumb, item_categories_path
51
+ # end
52
+ # end
53
+ #
54
+ # def category_crumbs
55
+ # if @item_category
56
+ # _parent = @item_category.parent
57
+ # if _parent
58
+ # _crumb = _parent.name if _crumb.blank?
59
+ # _crumb = _parent.title if _crumb.blank?
60
+ # _crumb = _parent.h1 if _crumb.blank?
61
+ # add_crumb _crumb, item_category_path(_parent)
62
+ # _crumb = nil
63
+ # end
64
+ # _crumb = @item_category.name if _crumb.blank?
65
+ # _crumb = @item_category.title if _crumb.blank?
66
+ # _crumb = @item_category.h1 if _crumb.blank?
67
+ # add_crumb _crumb, item_category_path(@item_category)
68
+ # end
69
+ # end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,39 @@
1
+ module Enjoy::News
2
+ module Controllers
3
+ module News
4
+ extend ActiveSupport::Concern
5
+
6
+ def index
7
+ @news = news_class.enabled.after_now.by_date
8
+
9
+ unless Enjoy::News.config.news_per_page.nil?
10
+ @news = @news.page(params[:page]).per(Enjoy::News.config.news_per_page)
11
+ end
12
+ end
13
+
14
+ def show
15
+ @news = news_class.after_now.find(params[:id])
16
+
17
+ if @news and @news.text_slug != params[:id]
18
+ redirect_to @news, status_code: 301
19
+ return true
20
+ end
21
+ end
22
+
23
+ private
24
+ def category_class
25
+ Enjoy::News::Category
26
+ end
27
+ def news_class
28
+ Enjoy::News::News
29
+ end
30
+ def page_title
31
+ if @news.class.name == model.name
32
+ @news.page_title
33
+ else
34
+ super
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,7 @@
1
+ module Enjoy
2
+ module News
3
+ class Engine < ::Rails::Engine
4
+ # isolate_namespace Enjoy::News
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Mongoid
4
+ module Category
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ has_paper_trail
9
+
10
+ validates_lengths_from_database only: [:name, :content_html, :excerpt_html]
11
+
12
+ scope :sorted, -> { order(lft: :asc) }
13
+
14
+ if Enjoy::News.config.localize
15
+ translates :name, :content_html, :excerpt_html
16
+ end
17
+
18
+ has_and_belongs_to_many :news,
19
+ class_name: "Enjoy::News::News",
20
+ join_table: :enjoy_news_news_categories
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,16 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Mongoid
4
+ module Image
5
+ extend ActiveSupport::Concern
6
+ if Enjoy::News.config.gallery_support
7
+ included do
8
+ belongs_to :enjoy_gallery_imagable, class_name: 'Enjoy::News::News'
9
+
10
+ validates_lengths_from_database only: [:name]
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,29 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module ActiveRecord
4
+ module News
5
+ extend ActiveSupport::Concern
6
+ included do
7
+ if Enjoy::News.config.gallery_support
8
+ has_many :images, as: :enjoy_gallery_imagable, class_name: 'Enjoy::News::Image'
9
+ end
10
+
11
+ has_paper_trail
12
+
13
+ validates_lengths_from_database only: [:name, :content_html, :excerpt_html]
14
+
15
+ scope :after_now, -> { where("time < ?", Time.now) }
16
+ scope :by_date, -> { order(time: :desc) }
17
+
18
+ if Enjoy::News.config.localize
19
+ translates :name, :content_html, :excerpt_html
20
+ end
21
+
22
+ has_and_belongs_to_many :categories,
23
+ class_name: "Enjoy::News::Category",
24
+ join_table: :enjoy_news_news_categories
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,62 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Category
4
+ extend ActiveSupport::Concern
5
+ include Enjoy::Model
6
+ include Enjoy::Enableable
7
+ include Enjoy::HtmlField
8
+ include ManualSlug
9
+
10
+ if Enjoy::News.config.seo_support
11
+ include Enjoy::Seo::Seoable
12
+ include Enjoy::Seo::SitemapDataField
13
+ end
14
+ if Enjoy::News.config.pages_support
15
+ include Enjoy::Pages::Connectable
16
+ end
17
+ if Enjoy::News.config.gallery_support
18
+ include Enjoy::Gallery::Paperclipable
19
+ end
20
+
21
+
22
+ include Enjoy::News.orm_specific('Category')
23
+
24
+ include ManualSlug
25
+
26
+ included do
27
+ if defined?(RailsAdminComments)
28
+ include RailsAdminComments::Commentable
29
+ end
30
+ manual_slug :name
31
+
32
+ if Enjoy::News.config.gallery_support and Enjoy::News.configuration.category_image_styles
33
+ enjoy_cms_attached_file(:image,
34
+ styles: lambda { |attachment| attachment.instance.image_styles }
35
+ )
36
+ end
37
+
38
+ acts_as_nested_set
39
+
40
+ if Enjoy::News.config.pages_support and Enjoy::News.configuration.can_connect_category_with_pages
41
+ enjoy_connectable_field :connected_pages
42
+ end
43
+ end
44
+
45
+ def news_class
46
+ Enjoy::News::News
47
+ end
48
+
49
+ def image_styles
50
+ Enjoy::News.configuration.category_image_styles
51
+ end
52
+
53
+ def image_jcrop_options
54
+ {}
55
+ end
56
+
57
+ def page_title
58
+ end
59
+
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,20 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Image
4
+ extend ActiveSupport::Concern
5
+
6
+ include Enjoy::News.orm_specific('Image')
7
+
8
+ included do
9
+ end
10
+
11
+ def image_styles
12
+ Enjoy::News.configuration.images_image_styles
13
+ end
14
+
15
+ def image_jcrop_options
16
+ {}
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Mongoid
4
+ module Category
5
+ extend ActiveSupport::Concern
6
+
7
+ include Enjoy::HtmlField
8
+
9
+ included do
10
+ field :name, type: String, localize: Enjoy::News.configuration.localize, default: ""
11
+
12
+ scope :sorted, -> { order_by([:lft, :asc]) }
13
+
14
+ enjoy_cms_html_field :excerpt, type: String, localize: Enjoy::News.configuration.localize, default: ""
15
+ enjoy_cms_html_field :content, type: String, localize: Enjoy::News.configuration.localize, default: ""
16
+ end
17
+
18
+ def news
19
+ news_class.in(category_ids: self.id)
20
+ end
21
+
22
+ def all_news
23
+ news_class.any_in(category_ids: self.self_and_descendants.map(&:id))
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Mongoid
4
+ module Image
5
+ extend ActiveSupport::Concern
6
+ if Enjoy::News.config.gallery_support
7
+
8
+ included do
9
+ embedded_in :news, class_name: "Enjoy::News::News"
10
+ end
11
+
12
+ include ::Mongoid::EmbeddedFindable
13
+ module ClassMethods
14
+ def find(id)
15
+ find_through(Enjoy::News::News, 'images', id)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,39 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module Mongoid
4
+ module News
5
+ extend ActiveSupport::Concern
6
+
7
+ include Enjoy::HtmlField
8
+
9
+ included do
10
+ field :name, type: String, localize: Enjoy::News.config.localize, default: ""
11
+
12
+ field :time, type: Time
13
+ index({enabled: 1, time: 1})
14
+
15
+ enjoy_cms_html_field :excerpt, type: String, localize: Enjoy::News.configuration.localize, default: ""
16
+ enjoy_cms_html_field :content, type: String, localize: Enjoy::News.configuration.localize, default: ""
17
+
18
+ has_and_belongs_to_many :categories, class_name: "Enjoy::News::Category", inverse_of: nil
19
+
20
+ scope :after_now, -> { where(:time.lt => Time.now) }
21
+ scope :by_date, -> { desc(:time) }
22
+
23
+ if Enjoy::News.config.gallery_support
24
+ embeds_many :images, cascade_callbacks: true, class_name: "Enjoy::News::Image"
25
+ end
26
+
27
+ end
28
+
29
+ def image_styles
30
+ Enjoy::News.configuration.news_image_styles
31
+ end
32
+
33
+ def image_jcrop_options
34
+ {}
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,57 @@
1
+ module Enjoy::News
2
+ module Models
3
+ module News
4
+ extend ActiveSupport::Concern
5
+ include Enjoy::Model
6
+ include Enjoy::Enableable
7
+ include Enjoy::HtmlField
8
+ include ManualSlug
9
+
10
+ if Enjoy::News.config.seo_support
11
+ include Enjoy::Seo::Seoable
12
+ include Enjoy::Seo::SitemapDataField
13
+ end
14
+ if Enjoy::News.config.pages_support
15
+ include Enjoy::Pages::Connectable
16
+ end
17
+ if Enjoy::News.config.gallery_support
18
+ include Enjoy::Gallery::Paperclipable
19
+ end
20
+
21
+ include SmartExcerpt
22
+
23
+ include Enjoy::News.orm_specific('News')
24
+
25
+
26
+ included do
27
+
28
+ manual_slug :name
29
+
30
+ if Enjoy::News.config.pages_support and Enjoy::News.configuration.can_connect_news_with_pages
31
+ enjoy_connectable_field :connected_pages
32
+ end
33
+
34
+ if Enjoy::News.config.gallery_support and Enjoy::News.configuration.news_image_styles
35
+ enjoy_cms_attached_file(:image,
36
+ styles: lambda { |attachment| attachment.instance.image_styles }
37
+ )
38
+ end
39
+
40
+ alias :news_categories :categories
41
+
42
+ if Enjoy::News.config.gallery_support
43
+ alias :news_images :images
44
+ accepts_nested_attributes_for :images, allow_destroy: true
45
+ end
46
+ end
47
+
48
+ def image_styles
49
+ Enjoy::News.config.news_image_styles
50
+ end
51
+
52
+ def image_jcrop_options
53
+ {}
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,56 @@
1
+ module ActionDispatch::Routing
2
+ class Mapper
3
+
4
+ def enjoy_cms_news_routes(config = {})
5
+ routes_config = {
6
+ use_news_path: true,
7
+ use_categories_path: true,
8
+ classes: {
9
+ news: :news,
10
+ categories: :categories
11
+ },
12
+ paths: {
13
+ news: :news,
14
+ categories: :news_categories
15
+ }
16
+ }
17
+ routes_config.deep_merge!(config)
18
+
19
+ generate_enjoy_news_user_routes(routes_config)
20
+ generate_enjoy_news_cms_routes(routes_config)
21
+
22
+ end
23
+
24
+ private
25
+ def generate_enjoy_news_user_routes(routes_config)
26
+ if !routes_config[:use_news_path] and !routes_config[:classes][:news].nil?
27
+ resources routes_config[:classes][:news].to_sym, only: [:show], path: routes_config[:paths][:news] do
28
+ get '(/page/:page)', action: :index, on: :collection, as: ""
29
+ end
30
+ end
31
+ if !routes_config[:use_categories_path] and !routes_config[:classes][:categories].nil?
32
+ resources routes_config[:classes][:categories].to_sym, only: [:show], path: routes_config[:paths][:categories] do
33
+ get '(/page/:page)', action: :index, on: :collection, as: ""
34
+ end
35
+ end
36
+ end
37
+
38
+ def generate_enjoy_news_cms_routes(routes_config)
39
+ scope module: 'enjoy' do
40
+ scope module: 'news' do
41
+ if routes_config[:use_news_path] and !routes_config[:classes][:news].nil?
42
+ resources routes_config[:classes][:news].to_sym, only: [:show], path: routes_config[:paths][:news], as: :enjoy_news_news do
43
+ get '(/page/:page)', action: :index, on: :collection, as: ""
44
+ end
45
+ end
46
+ if routes_config[:use_categories_path] and !routes_config[:classes][:categories].nil?
47
+ resources routes_config[:classes][:categories].to_sym, only: [:show], path: routes_config[:paths][:categories], as: :enjoy_news_categories do
48
+ get '(/page/:page)', action: :index, on: :collection, as: ""
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,5 @@
1
+ module Enjoy
2
+ module News
3
+ VERSION = "0.4.0.beta3"
4
+ end
5
+ end
@@ -0,0 +1,69 @@
1
+ unless defined?(Enjoy) && Enjoy.respond_to?(:orm) && [:active_record, :mongoid].include?(Enjoy.orm)
2
+ puts "please use enjoy_cms_mongoid or enjoy_cms_activerecord"
3
+ puts "also: please use enjoy_cms_news_mongoid or enjoy_cms_news_activerecord and not enjoy_cms_news directly"
4
+ exit 1
5
+ end
6
+
7
+ require "enjoy/news/version"
8
+ require 'enjoy/news/engine'
9
+ require 'enjoy/news/configuration'
10
+
11
+ require 'enjoy/news/routes'
12
+ require 'enjoy/news/admin'
13
+
14
+ require 'smart_excerpt'
15
+
16
+ # require 'enjoy_cms_pages' if Enjoy::News.config.pages_support
17
+ # require 'enjoy_cms_seo' if Enjoy::News.config.seo_support
18
+ # require 'enjoy_cms_gallery' if Enjoy::News.config.gallery_support
19
+
20
+ module Enjoy::News
21
+ class << self
22
+ def orm
23
+ Enjoy.orm
24
+ end
25
+ def mongoid?
26
+ Enjoy::News.orm == :mongoid
27
+ end
28
+ def active_record?
29
+ Enjoy::News.orm == :active_record
30
+ end
31
+ def model_namespace
32
+ "Enjoy::News::Models::#{Enjoy::News.orm.to_s.camelize}"
33
+ end
34
+ def orm_specific(name)
35
+ "#{model_namespace}::#{name}".constantize
36
+ end
37
+ end
38
+
39
+ autoload :Admin, 'enjoy/news/admin'
40
+ module Admin
41
+ autoload :News, 'enjoy/news/admin/news'
42
+ autoload :Category, 'enjoy/news/admin/category'
43
+ autoload :Image, 'enjoy/news/admin/image'
44
+ end
45
+
46
+ module Models
47
+ autoload :News, 'enjoy/news/models/news'
48
+ autoload :Category, 'enjoy/news/models/category'
49
+ autoload :Image, 'enjoy/news/models/image'
50
+
51
+ module Mongoid
52
+ autoload :News, 'enjoy/news/models/mongoid/news'
53
+ autoload :Category, 'enjoy/news/models/mongoid/category'
54
+ autoload :Image, 'enjoy/news/models/mongoid/image'
55
+ end
56
+
57
+ module ActiveRecord
58
+ autoload :News, 'enjoy/news/models/active_record/news'
59
+ autoload :Category, 'enjoy/news/models/active_record/category'
60
+ autoload :Image, 'enjoy/news/models/active_record/image'
61
+ end
62
+ end
63
+
64
+ module Controllers
65
+ autoload :Items, 'enjoy/news/controllers/news'
66
+ autoload :Categories, 'enjoy/news/controllers/categories'
67
+ end
68
+
69
+ end
@@ -0,0 +1,17 @@
1
+ require 'rails/generators'
2
+
3
+ module Enjoy::News
4
+ class AllGenerator < Rails::Generators::Base
5
+ argument :class_name, type: :string
6
+
7
+ desc 'Enjoy::News generator'
8
+ def all
9
+ generate "enjoy:news:config:install"
10
+
11
+ generate "enjoy:news:models:all #{class_name}"
12
+
13
+ generate "enjoy:news:controllers:all #{class_name}"
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/generators'
2
+
3
+ module Enjoy::News::Config
4
+ class InstallGenerator < Rails::Generators::Base
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ desc 'Enjoy::News Config generator'
8
+ def install
9
+ template 'enjoy_news.erb', "config/initializers/enjoy_news.rb"
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ Enjoy::News.configure do |config|
2
+ ##### defaults #####
3
+ # config.news_image_styles = {
4
+ # main: '400x200>',
5
+ # thumb: '200x100>'
6
+ # }
7
+ # config.category_image_styles = {
8
+ # main: '400x200>',
9
+ # thumb: '200x100>'
10
+ # }
11
+ # config.images_image_styles = {
12
+ # main: '400x200>',
13
+ # thumb: '200x100>'
14
+ # }
15
+ #
16
+ # config.news_per_page = 10
17
+ # config.news_excerpt = 12
18
+ # config.news_content_required = true
19
+ #
20
+ # config.gallery_support = defined? Enjoy::Gallery
21
+ # config.seo_support = defined? Enjoy::Seo
22
+ # config.pages_support = defined? Enjoy::Pages
23
+ #
24
+ # config.can_connect_news_with_pages = true
25
+ # config.can_connect_category_with_pages = true
26
+ #
27
+ # config.localize = Enjoy.config.localize
28
+ end