rails_admin_content_builder 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +1 -1
  4. data/.rubocop.yml +10 -0
  5. data/Gemfile +2 -1
  6. data/README.md +12 -1
  7. data/Rakefile +7 -7
  8. data/app/assets/images/cb-snippet-image-text.jpg +0 -0
  9. data/app/assets/images/cb-snippet-image-text.psd +0 -0
  10. data/app/assets/images/cb-snippet-image.jpg +0 -0
  11. data/app/assets/images/cb-snippet-image.psd +0 -0
  12. data/app/assets/images/cb-snippet-quote-text.jpg +0 -0
  13. data/app/assets/images/cb-snippet-quote-text.psd +0 -0
  14. data/app/assets/images/cb-snippet-quote.jpg +0 -0
  15. data/app/assets/images/cb-snippet-quote.psd +0 -0
  16. data/app/assets/images/cb-snippet-relational-text.jpg +0 -0
  17. data/app/assets/images/cb-snippet-relational-text.psd +0 -0
  18. data/app/assets/images/cb-snippet-text-image.jpg +0 -0
  19. data/app/assets/images/cb-snippet-text-image.psd +0 -0
  20. data/app/assets/images/cb-snippet-text-quote.jpg +0 -0
  21. data/app/assets/images/cb-snippet-text-quote.psd +0 -0
  22. data/app/assets/images/cb-snippet-text-relational.jpg +0 -0
  23. data/app/assets/images/cb-snippet-text-relational.psd +0 -0
  24. data/app/assets/images/cb-snippet-text.jpg +0 -0
  25. data/app/assets/images/cb-snippet-text.psd +0 -0
  26. data/app/assets/images/cb-snippet-video.jpg +0 -0
  27. data/app/assets/images/cb-snippet-video.psd +0 -0
  28. data/app/assets/javascripts/rails_admin/content_builder.js.erb +27 -20
  29. data/app/assets/stylesheets/rails_admin/content_builder.scss +174 -81
  30. data/app/controllers/rails_admin_content_builder/content_builder_controller.rb +7 -9
  31. data/app/helpers/rails_admin_content_builder/content_builder_helpers.rb +9 -3
  32. data/app/models/rails_admin_content_builder/content_builder.rb +21 -5
  33. data/app/views/rails_admin/main/content_builder.html.erb +3 -3
  34. data/bin/console +3 -3
  35. data/config/initializers/assets.rb +13 -13
  36. data/config/locales/content_builder.en.yml +4 -0
  37. data/config/locales/content_builder.pt-BR.yml +4 -0
  38. data/config/routes.rb +6 -6
  39. data/lib/generators/rails_admin_content_builder_generator.rb +17 -9
  40. data/lib/generators/templates/content_builder_image_uploader.rb +3 -13
  41. data/lib/rails_admin_content_builder.rb +3 -3
  42. data/lib/rails_admin_content_builder/engine.rb +1 -1
  43. data/lib/rails_admin_content_builder/version.rb +1 -1
  44. data/rails_admin_content_builder.gemspec +22 -20
  45. data/screenshot/image1.png +0 -0
  46. data/spec/controllers/rails_admin_content_builder/content_builder_controller_spec.rb +41 -5
  47. data/spec/dummy/Gemfile +0 -1
  48. data/spec/dummy/app/uploaders/content_builder_image_uploader.rb +2 -3
  49. data/spec/dummy/bin/setup +8 -8
  50. data/spec/dummy/config/application.rb +7 -7
  51. data/spec/dummy/config/initializers/rails_admin.rb +0 -1
  52. data/spec/dummy/config/initializers/simple_form.rb +1 -1
  53. data/spec/dummy/db/schema.rb +23 -25
  54. data/spec/factories/content_builder_categories.rb +2 -1
  55. data/spec/factories/content_builder_images.rb +7 -2
  56. data/spec/features/create_content_builder_category_spec.rb +4 -3
  57. data/spec/features/create_content_builder_spec.rb +5 -4
  58. data/spec/features/status_content_builder_spec.rb +8 -5
  59. data/spec/helpers/rails_admin_content_builder/content_builder_helper_spec.rb +15 -12
  60. data/spec/models/rails_admin_content_builder/content_builder_category_spec.rb +1 -1
  61. data/spec/models/rails_admin_content_builder/content_builder_image_spec.rb +1 -1
  62. data/spec/models/rails_admin_content_builder/content_builder_spec.rb +22 -8
  63. data/spec/spec_helper.rb +4 -4
  64. data/spec/version_spec.rb +1 -1
  65. data/vendor/assets/stylesheets/rails_admin_content_builder.scss +47 -30
  66. metadata +1726 -4
  67. data/spec/dummy/db/development.sqlite3 +0 -0
@@ -1,15 +1,13 @@
1
1
  module RailsAdminContentBuilder
2
+ # This class
2
3
  class ContentBuilderController < ::ApplicationController
3
4
  def search_content
4
- @content_builder = RailsAdminContentBuilder::ContentBuilder.order('date_publish desc')
5
- .limit(10)
6
- .search(params[:term])
5
+ content_builder = RailsAdminContentBuilder::ContentBuilder
6
+ @content_builder = content_builder.order('date_publish desc')
7
+ .limit(10)
8
+ .search(params[:term])
7
9
  if @content_builder
8
- render json: @content_builder.to_json(:include => {
9
- :content_builder_category => {
10
- :only => [:name, :slug]
11
- }
12
- })
10
+ render json: @content_builder.to_json(include: {content_builder_category: {only: [:name, :slug]}})
13
11
  else
14
12
  render json: @content_builder.errors
15
13
  end
@@ -19,7 +17,7 @@ module RailsAdminContentBuilder
19
17
  @content_builder = ContentBuilder.find(params[:id])
20
18
  @image = @content_builder.content_builder_images
21
19
  .create(image: params[:content_builder_image])
22
- if @image
20
+ if @image.valid?
23
21
  render json: find_image(@image.id)
24
22
  else
25
23
  render json: @image.errors
@@ -7,26 +7,32 @@
7
7
  # end
8
8
  # end
9
9
  module RailsAdminContentBuilder
10
+ # This is a Module
10
11
  module ContentBuilderHelpers
11
12
  # Return content Object
12
13
  #
13
14
  # @content = content_created
14
15
  def content_created
15
- RailsAdminContentBuilder::ContentBuilder
16
+ set_content_builder
16
17
  end
17
18
 
18
19
  # Return all contents created
19
20
  #
20
21
  # @content = all_contents_created
21
22
  def all_contents_created
22
- RailsAdminContentBuilder::ContentBuilder.where(status: true)
23
+ set_content_builder.where(status: true)
23
24
  end
24
25
 
25
26
  # Return specific contents created by slug
26
27
  #
27
28
  # @content = find_content_created_by_slug('slug')
28
29
  def find_content_created_by_slug(slug)
29
- RailsAdminContentBuilder::ContentBuilder.where(status: true, slug: slug).first
30
+ set_content_builder.where(status: true, slug: slug).first
31
+ end
32
+
33
+ # Return object RailsAdminContentBuilder::ContentBuilder
34
+ def set_content_builder
35
+ RailsAdminContentBuilder::ContentBuilder
30
36
  end
31
37
  end
32
38
  end
@@ -7,9 +7,11 @@ module RailsAdminContentBuilder
7
7
 
8
8
  friendly_id :title, use: :slugged
9
9
 
10
- validates :title, :date_publish, :content_builder_category, :written_by, presence: true
10
+ validates :title, :date_publish, :content_builder_category,
11
+ :written_by, presence: true
11
12
 
12
- has_many :content_builder_images, inverse_of: :content_builder, dependent: :destroy
13
+ has_many :content_builder_images, inverse_of: :content_builder,
14
+ dependent: :destroy
13
15
  belongs_to :content_builder_category, inverse_of: :content_builders
14
16
 
15
17
  search_scope :search do
@@ -19,9 +21,23 @@ module RailsAdminContentBuilder
19
21
  def content_sanitized
20
22
  white_list_sanitizer = Rails::Html::WhiteListSanitizer.new
21
23
  white_list_sanitizer.sanitize(
22
- self.content,
23
- tags: %w(div b i a u p img figure figcaption a iframe footer aside section blockquote ul ol li h1 h2 h3 h4 h5 h6),
24
- attributes: %w(src class alt href allowfullscreen frameborder height width)).try(:html_safe)
24
+ content,
25
+ tags: tags_hash,
26
+ attributes: attributes_hash
27
+ ).try(:html_safe)
28
+ end
29
+
30
+ def tags_hash
31
+ %w(
32
+ div b i a u p img figure figcaption a iframe footer aside
33
+ section blockquote ul ol li h1 h2 h3 h4 h5 h6
34
+ )
35
+ end
36
+
37
+ def attributes_hash
38
+ %w(
39
+ src class alt href allowfullscreen frameborder height width
40
+ )
25
41
  end
26
42
  end
27
43
  end
@@ -75,11 +75,11 @@
75
75
 
76
76
  <%= simple_form_for rails_admin.content_builder_url(@abstract_model.to_param, id: @object.id), html: { class: 'cb-form' }, remote: false do |f| %>
77
77
  <div class="cb-controls">
78
- <%= f.button :submit, t('admin.actions.content_builder.button.save'), name: 'save', class: 'btn btn-block btn-primary' %>
78
+ <%= f.button :submit, t('admin.actions.content_builder.button.save'), name: 'save', class: 'btn btn-block btn-primary btn-right' %>
79
79
  <% if @object.status %>
80
- <%= f.button :submit, t('admin.actions.content_builder.button.unpublish'), name: 'unpublish', class: 'btn btn-block btn-danger' %>
80
+ <%= f.button :submit, t('admin.actions.content_builder.button.unpublish'), name: 'unpublish', class: 'btn btn-block btn-danger btn-left' %>
81
81
  <% else %>
82
- <%= f.button :submit, t('admin.actions.content_builder.button.publish'), name: 'publish', class: 'btn btn-block btn-success' %>
82
+ <%= f.button :submit, t('admin.actions.content_builder.button.publish'), name: 'publish', class: 'btn btn-block btn-success btn-left' %>
83
83
  <% end %>
84
84
  </div>
85
85
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "rails_admin_content_builder"
3
+ require 'bundler/setup'
4
+ require 'rails_admin_content_builder'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "rails_admin_content_builder"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start
@@ -1,13 +1,13 @@
1
- Rails.application.config.assets.precompile += %w( cb-loading.svg )
2
- Rails.application.config.assets.precompile += %w( cb-snippet-text.jpg )
3
- Rails.application.config.assets.precompile += %w( cb-snippet-image-text.jpg )
4
- Rails.application.config.assets.precompile += %w( cb-snippet-text-image.jpg )
5
- Rails.application.config.assets.precompile += %w( cb-snippet-quote.jpg )
6
- Rails.application.config.assets.precompile += %w( cb-snippet-quote-text.jpg )
7
- Rails.application.config.assets.precompile += %w( cb-snippet-text-quote.jpg )
8
- Rails.application.config.assets.precompile += %w( cb-snippet-image.jpg )
9
- Rails.application.config.assets.precompile += %w( cb-snippet-video.jpg )
10
- Rails.application.config.assets.precompile += %w( cb-image-default.jpg )
11
- Rails.application.config.assets.precompile += %w( cb-video-default.jpg )
12
- Rails.application.config.assets.precompile += %w( cb-snippet-relational-text.jpg )
13
- Rails.application.config.assets.precompile += %w( cb-snippet-text-relational.jpg )
1
+ Rails.application.config.assets.precompile += %w(cb-loading.svg)
2
+ Rails.application.config.assets.precompile += %w(cb-snippet-text.jpg)
3
+ Rails.application.config.assets.precompile += %w(cb-snippet-image-text.jpg)
4
+ Rails.application.config.assets.precompile += %w(cb-snippet-text-image.jpg)
5
+ Rails.application.config.assets.precompile += %w(cb-snippet-quote.jpg)
6
+ Rails.application.config.assets.precompile += %w(cb-snippet-quote-text.jpg)
7
+ Rails.application.config.assets.precompile += %w(cb-snippet-text-quote.jpg)
8
+ Rails.application.config.assets.precompile += %w(cb-snippet-image.jpg)
9
+ Rails.application.config.assets.precompile += %w(cb-snippet-video.jpg)
10
+ Rails.application.config.assets.precompile += %w(cb-image-default.jpg)
11
+ Rails.application.config.assets.precompile += %w(cb-video-default.jpg)
12
+ Rails.application.config.assets.precompile += %w(cb-snippet-relational-text.jpg)
13
+ Rails.application.config.assets.precompile += %w(cb-snippet-text-relational.jpg)
@@ -11,6 +11,10 @@ en:
11
11
  written_by: "Writter By"
12
12
  news_source: "News source"
13
13
  summary: "Summary"
14
+ url: "Paste YouTube url"
15
+ invalid_url: "Invalid url"
16
+ image_description: 'Image description'
17
+ search_content: 'Search Content'
14
18
  button:
15
19
  save: "Save"
16
20
  publish: "Publish"
@@ -11,6 +11,10 @@ pt-BR:
11
11
  written_by: "Autor"
12
12
  news_source: "Fonte"
13
13
  summary: "Resumo"
14
+ url: "Cole a url do YouTube"
15
+ invalid_url: "Ops! Você não informou uma url válida"
16
+ image_description: 'Divulgação'
17
+ search_content: 'Buscar notícias'
14
18
  button:
15
19
  save: "Salvar"
16
20
  publish: "Publicar"
@@ -1,9 +1,9 @@
1
1
  Rails.application.routes.draw do
2
- get_path_url = 'admin/rails_admin_content_builder~content_builder/:id/search_content'
3
- get_path_method = 'rails_admin_content_builder/content_builder#search_content'
4
- get get_path_url => get_path_method
2
+ get_url = 'admin/rails_admin_content_builder~content_builder/search_content'
3
+ get_method = 'rails_admin_content_builder/content_builder#search_content'
4
+ get get_url => get_method
5
5
 
6
- put_path_url = 'admin/rails_admin_content_builder~content_builder/:id/create_images'
7
- put_path_method = 'rails_admin_content_builder/content_builder#create_images'
8
- put put_path_url => put_path_method
6
+ put_url = 'admin/rails_admin_content_builder~content_builder/:id/create_images'
7
+ put_method = 'rails_admin_content_builder/content_builder#create_images'
8
+ put put_url => put_method
9
9
  end
@@ -4,29 +4,37 @@ class RailsAdminContentBuilderGenerator < Rails::Generators::Base
4
4
  include Rails::Generators::Migration
5
5
 
6
6
  def self.source_root
7
- @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates/'))
7
+ @source_root ||= File.expand_path(
8
+ File.join(File.dirname(__FILE__), 'templates/')
9
+ )
8
10
  end
9
11
 
10
12
  def self.next_migration_number(*)
11
- unless @migration
12
- @migration = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
13
- else
13
+ if @migration
14
14
  @migration += 1
15
+ else
16
+ @migration = Time.now.utc.strftime('%Y%m%d%H%M%S').to_i
15
17
  end
16
18
  @migration.to_s
17
19
  end
18
20
 
19
21
  def create_uploader_content_builder_image_model
20
- template "content_builder_image_uploader.rb", "app/uploaders/content_builder_image_uploader.rb"
22
+ template 'content_builder_image_uploader.rb',
23
+ 'app/uploaders/content_builder_image_uploader.rb'
21
24
  end
22
25
 
23
26
  def create_rails_admin_config_in_initializer
24
- template "rails_admin_content_builder.rb", "config/initializers/rails_admin_content_builder.rb"
27
+ template 'rails_admin_content_builder.rb',
28
+ 'config/initializers/rails_admin_content_builder.rb'
25
29
  end
26
30
 
27
31
  def create_migrations
28
- migration_template "create_content_builder_category_migration.rb", File.join('db/migrate', "create_content_builder_categories.rb")
29
- migration_template "create_content_builder_migration.rb", File.join('db/migrate', "create_content_builders.rb")
30
- migration_template "create_content_builder_image_migration.rb", File.join('db/migrate', "create_content_builder_images.rb")
32
+ path = 'db/migrate'
33
+ migration_template 'create_content_builder_category_migration.rb',
34
+ File.join(path, 'create_content_builder_categories.rb')
35
+ migration_template 'create_content_builder_migration.rb',
36
+ File.join(path, 'create_content_builders.rb')
37
+ migration_template 'create_content_builder_image_migration.rb',
38
+ File.join(path, 'create_content_builder_images.rb')
31
39
  end
32
40
  end
@@ -1,5 +1,4 @@
1
1
  # encoding: utf-8
2
-
3
2
  class ContentBuilderImageUploader < CarrierWave::Uploader::Base
4
3
  # Include RMagick or MiniMagick support:
5
4
  # include CarrierWave::RMagick
@@ -15,14 +14,6 @@ class ContentBuilderImageUploader < CarrierWave::Uploader::Base
15
14
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
16
15
  end
17
16
 
18
- # Provide a default URL as a default if there hasn't been a file uploaded:
19
- # def default_url
20
- # # For Rails 3.1+ asset pipeline compatibility:
21
- # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
22
- #
23
- # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
24
- # end
25
-
26
17
  # Process files as they are uploaded:
27
18
  # process :scale => [200, 300]
28
19
  #
@@ -32,11 +23,11 @@ class ContentBuilderImageUploader < CarrierWave::Uploader::Base
32
23
 
33
24
  # Create different versions of your uploaded files:
34
25
  version :left_or_right do
35
- process :resize_to_fit => [450, 450]
26
+ process resize_to_fit: [450, 450]
36
27
  end
37
28
 
38
29
  version :center do
39
- process :resize_to_fit => [900, 900]
30
+ process resize_to_fit: [900, 900]
40
31
  end
41
32
 
42
33
  # Add a white list of extensions which are allowed to be uploaded.
@@ -46,9 +37,8 @@ class ContentBuilderImageUploader < CarrierWave::Uploader::Base
46
37
  end
47
38
 
48
39
  # Override the filename of the uploaded files:
49
- # Avoid using model.id or version_name here, see uploader/store.rb for details.
40
+ # Avoid using model.id or version_name here, see uploader/store.rb for detail
50
41
  # def filename
51
42
  # "something.jpg" if original_filename
52
43
  # end
53
-
54
44
  end
@@ -1,4 +1,4 @@
1
- require "rails_admin_content_builder/engine"
1
+ require 'rails_admin_content_builder/engine'
2
2
 
3
3
  module RailsAdminContentBuilder
4
4
  end
@@ -23,7 +23,7 @@ module RailsAdmin
23
23
  end
24
24
 
25
25
  register_instance_option :controller do
26
- Proc.new do
26
+ proc do
27
27
  @object = @abstract_model.model.find(params[:id])
28
28
  @response = {}
29
29
 
@@ -46,7 +46,7 @@ module RailsAdmin
46
46
  end
47
47
  end
48
48
 
49
- render :action => @action.template_name
49
+ render action: @action.template_name
50
50
  end
51
51
  end
52
52
  end
@@ -18,7 +18,7 @@ module RailsAdminContentBuilder
18
18
 
19
19
  config.generators do |g|
20
20
  g.test_framework :rspec
21
- g.fixture_replacement :factory_girl, :dir => 'spec/factories'
21
+ g.fixture_replacement :factory_girl, dir: 'spec/factories'
22
22
  g.assets false
23
23
  g.helper false
24
24
  end
@@ -1,3 +1,3 @@
1
1
  module RailsAdminContentBuilder
2
- VERSION = "1.0.4"
2
+ VERSION = '1.0.5'.freeze
3
3
  end
@@ -1,42 +1,44 @@
1
1
  # coding: utf-8
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "rails_admin_content_builder/version"
4
+ require 'rails_admin_content_builder/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "rails_admin_content_builder"
7
+ spec.name = 'rails_admin_content_builder'
8
8
  spec.version = RailsAdminContentBuilder::VERSION
9
- spec.authors = ["Luiz Picolo", "Gabriel Medina"]
10
- spec.email = ["luizpicolo@gmail.com", "gmedina.santos@gmail.com"]
9
+ spec.authors = ['Luiz Picolo', 'Gabriel Medina']
10
+ spec.email = ['luizpicolo@gmail.com', 'gmedina.santos@gmail.com']
11
11
 
12
- spec.summary = "Easy way for create contents using rails_admin"
13
- spec.description = "Easy way for create contents using rails_admin"
14
- spec.homepage = "http://github.com/luizpicolo/rails_admin_content_builder"
15
- spec.license = "MIT"
12
+ spec.summary = 'Easy way for create contents using rails_admin'
13
+ spec.description = 'Easy way for create contents using rails_admin'
14
+ spec.homepage = 'http://github.com/luizpicolo/rails_admin_content_builder'
15
+ spec.license = 'MIT'
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ }
20
+ spec.bindir = 'exe'
19
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
21
- spec.test_files = Dir["spec/**/*"]
22
+ spec.require_paths = ['lib']
23
+ spec.test_files = Dir['spec/**/*']
22
24
 
23
- spec.add_development_dependency "bundler", "~> 1.11"
24
- spec.add_development_dependency "rake", "~> 10.0"
25
- spec.add_development_dependency "rails", [">= 4.0", "< 5"]
26
- spec.add_development_dependency "rspec-rails", "~> 3.0"
27
- spec.add_development_dependency "rails_admin", "~> 0.8.1"
25
+ spec.add_development_dependency 'bundler', '~> 1.11'
26
+ spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'rails', ['>= 4.0', '< 5']
28
+ spec.add_development_dependency 'rspec-rails', '~> 3.0'
29
+ spec.add_development_dependency 'rails_admin', '~> 0.8.1'
28
30
  spec.add_development_dependency 'capybara', '~> 2.7', '>= 2.7.0'
29
31
  spec.add_development_dependency 'launchy', '~> 2.4', '>= 2.4.3'
30
- spec.add_development_dependency "shoulda-matchers", "~> 3.1"
32
+ spec.add_development_dependency 'shoulda-matchers', '~> 3.1'
31
33
  spec.add_development_dependency 'selenium-webdriver', '~> 2.53', '>= 2.53.4'
32
34
  spec.add_development_dependency 'factory_girl_rails', '~> 4.7', '>= 4.7.0'
33
35
  spec.add_development_dependency 'faker', '~> 1.6', '>= 1.6.3'
34
36
 
35
- spec.add_runtime_dependency "carrierwave", "~> 0.11.0"
37
+ spec.add_runtime_dependency 'carrierwave', '~> 0.11.0'
36
38
  spec.add_runtime_dependency 'medium-editor-rails', '~> 2.1', '>= 2.1.0'
37
39
  spec.add_runtime_dependency 'mini_magick', '~> 4.5', '>= 4.5.1'
38
40
  spec.add_runtime_dependency 'friendly_id', '~> 5.1', '>= 5.1.0'
39
- spec.add_runtime_dependency "simple_form", "~> 3.2"
41
+ spec.add_runtime_dependency 'simple_form', '~> 3.2'
40
42
  spec.add_runtime_dependency 'search_cop', '~> 1.0', '>= 1.0.6'
41
43
  spec.add_runtime_dependency 'rails-html-sanitizer', '~> 1.0', '>= 1.0.0'
42
44
  end
Binary file
@@ -1,19 +1,55 @@
1
1
  require 'spec_helper'
2
2
  require 'json'
3
3
 
4
- describe RailsAdminContentBuilder::ContentBuilderController, type: :controller do
4
+ content_builder_controller = RailsAdminContentBuilder::ContentBuilderController
5
+
6
+ describe content_builder_controller, type: :controller do
5
7
  describe 'PUT #create_images' do
6
- it "Should return valid JSON" do
8
+ it 'returns valid JSON' do
7
9
  content_builder = FactoryGirl.create :content_builder
8
10
  put :create_images, id: content_builder.id,
9
- content_builder_image: Rack::Test::UploadedFile.new(File.join('spec', 'fixtures', 'assets', 'example.jpg'))
11
+ content_builder_image: Rack::Test::UploadedFile.new(
12
+ File.join(
13
+ 'spec', 'fixtures', 'assets', 'example.jpg'
14
+ )
15
+ )
10
16
 
11
17
  json = JSON.parse(response.body)
12
- path = '/uploads/rails_admin_content_builder/content_builder_image/image/1/'
18
+ path = '/uploads/rails_admin_content_builder'
19
+ path << '/content_builder_image/image/1/'
13
20
 
14
21
  expect(response.status).to eq 200
15
22
  expect(json['image']['url']).to eq path + 'example.jpg'
16
- expect(json['image']['left_or_right']['url']).to eq path + 'left_or_right_example.jpg'
23
+ expect(
24
+ json['image']['left_or_right']['url']
25
+ ).to eq path + 'left_or_right_example.jpg'
26
+ end
27
+
28
+ it 'returns error' do
29
+ content_builder = FactoryGirl.create :content_builder
30
+ put :create_images, id: content_builder.id, content_builder_image: nil
31
+
32
+ json = JSON.parse(response.body)
33
+
34
+ expect(response.status).to eq 200
35
+ expect(json['image']).to include("can't be blank")
36
+ end
37
+ end
38
+
39
+ describe 'GET #search_content' do
40
+ it 'returns valid JSON' do
41
+ 5.times do |i|
42
+ content_builder = FactoryGirl.create :content_builder, title: "content #{i}"
43
+ end
44
+ 5.times do |i|
45
+ content_builder = FactoryGirl.create :content_builder, title: "title #{i}"
46
+ end
47
+ get :search_content, term: "content"
48
+
49
+ json = JSON.parse(response.body)
50
+
51
+ expect(response.status).to eq 200
52
+ expect(json.size).to eq 5
17
53
  end
18
54
  end
19
55
  end