rails_admin_content_builder 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (126) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +4 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +8 -0
  7. data/CODE_OF_CONDUCT.md +49 -0
  8. data/Gemfile +12 -0
  9. data/LICENSE.txt +21 -0
  10. data/README.md +129 -0
  11. data/Rakefile +21 -0
  12. data/app/assets/images/cb-image-default.jpg +0 -0
  13. data/app/assets/images/cb-loading.svg +1 -0
  14. data/app/assets/images/cb-snippet-image-text.jpg +0 -0
  15. data/app/assets/images/cb-snippet-image.jpg +0 -0
  16. data/app/assets/images/cb-snippet-quote-text.jpg +0 -0
  17. data/app/assets/images/cb-snippet-quote.jpg +0 -0
  18. data/app/assets/images/cb-snippet-text-image.jpg +0 -0
  19. data/app/assets/images/cb-snippet-text-quote.jpg +0 -0
  20. data/app/assets/images/cb-snippet-text.jpg +0 -0
  21. data/app/assets/images/cb-snippet-video.jpg +0 -0
  22. data/app/assets/images/cb-video-default.jpg +0 -0
  23. data/app/assets/javascripts/rails_admin/content_builder.js.erb +295 -0
  24. data/app/assets/stylesheets/rails_admin/content_builder.scss +238 -0
  25. data/app/controllers/rails_admin_content_builder/content_builder_controller.rb +19 -0
  26. data/app/helpers/rails_admin_content_builder/content_builder_helpers.rb +32 -0
  27. data/app/models/rails_admin_content_builder/content_builder.rb +27 -0
  28. data/app/models/rails_admin_content_builder/content_builder_category.rb +12 -0
  29. data/app/models/rails_admin_content_builder/content_builder_image.rb +10 -0
  30. data/app/views/.gitkeep +0 -0
  31. data/app/views/rails_admin/main/content_builder.html.erb +42 -0
  32. data/bin/console +14 -0
  33. data/bin/setup +8 -0
  34. data/config/initializers/assets.rb +11 -0
  35. data/config/locales/content_builder.en.yml +17 -0
  36. data/config/locales/content_builder.pt-BR.yml +17 -0
  37. data/config/routes.rb +5 -0
  38. data/lib/generators/rails_admin_content_builder_generator.rb +32 -0
  39. data/lib/generators/templates/content_builder_image_uploader.rb +54 -0
  40. data/lib/generators/templates/create_content_builder_category_migration.rb +10 -0
  41. data/lib/generators/templates/create_content_builder_image_migration.rb +10 -0
  42. data/lib/generators/templates/create_content_builder_migration.rb +16 -0
  43. data/lib/generators/templates/rails_admin_content_builder.rb +37 -0
  44. data/lib/rails_admin_content_builder.rb +55 -0
  45. data/lib/rails_admin_content_builder/engine.rb +26 -0
  46. data/lib/rails_admin_content_builder/version.rb +3 -0
  47. data/rails_admin_content_builder.gemspec +42 -0
  48. data/screenshot/image1.png +0 -0
  49. data/spec/controllers/rails_admin_content_builder/content_builder_controller_spec.rb +19 -0
  50. data/spec/dummy/Gemfile +11 -0
  51. data/spec/dummy/Gemfile.lock +217 -0
  52. data/spec/dummy/Rakefile +6 -0
  53. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  54. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  55. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  56. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  57. data/spec/dummy/app/uploaders/content_builder_image_uploader.rb +54 -0
  58. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  59. data/spec/dummy/bin/bundle +3 -0
  60. data/spec/dummy/bin/rails +4 -0
  61. data/spec/dummy/bin/rake +4 -0
  62. data/spec/dummy/bin/setup +29 -0
  63. data/spec/dummy/config.ru +4 -0
  64. data/spec/dummy/config/application.rb +31 -0
  65. data/spec/dummy/config/boot.rb +5 -0
  66. data/spec/dummy/config/database.yml +25 -0
  67. data/spec/dummy/config/environment.rb +5 -0
  68. data/spec/dummy/config/environments/development.rb +41 -0
  69. data/spec/dummy/config/environments/production.rb +79 -0
  70. data/spec/dummy/config/environments/test.rb +42 -0
  71. data/spec/dummy/config/initializers/assets.rb +11 -0
  72. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  73. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  74. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  75. data/spec/dummy/config/initializers/inflections.rb +16 -0
  76. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  77. data/spec/dummy/config/initializers/rails_admin.rb +37 -0
  78. data/spec/dummy/config/initializers/rails_admin_content_builder.rb +37 -0
  79. data/spec/dummy/config/initializers/session_store.rb +3 -0
  80. data/spec/dummy/config/initializers/simple_form.rb +165 -0
  81. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  82. data/spec/dummy/config/locales/en.yml +23 -0
  83. data/spec/dummy/config/locales/simple_form.en.yml +31 -0
  84. data/spec/dummy/config/routes.rb +57 -0
  85. data/spec/dummy/config/secrets.yml +22 -0
  86. data/spec/dummy/db/development.sqlite3 +0 -0
  87. data/spec/dummy/db/migrate/20160713200802_create_content_builder_categories.rb +10 -0
  88. data/spec/dummy/db/migrate/20160713200803_create_content_builders.rb +15 -0
  89. data/spec/dummy/db/migrate/20160713200804_create_content_builder_images.rb +10 -0
  90. data/spec/dummy/db/schema.rb +46 -0
  91. data/spec/dummy/lib/templates/erb/scaffold/_form.html.erb +13 -0
  92. data/spec/dummy/log/development.log +1182 -0
  93. data/spec/dummy/public/404.html +67 -0
  94. data/spec/dummy/public/422.html +67 -0
  95. data/spec/dummy/public/500.html +66 -0
  96. data/spec/dummy/public/favicon.ico +0 -0
  97. data/spec/dummy/public/uploads/rails_admin_content_builder/content_builder_image/image/1/center_example.jpg +0 -0
  98. data/spec/dummy/public/uploads/rails_admin_content_builder/content_builder_image/image/1/example.jpg +0 -0
  99. data/spec/dummy/public/uploads/rails_admin_content_builder/content_builder_image/image/1/left_or_right_example.jpg +0 -0
  100. data/spec/dummy/public/uploads/rails_admin_content_builder/content_builder_image/image/2/center_example.jpg +0 -0
  101. data/spec/dummy/public/uploads/rails_admin_content_builder/content_builder_image/image/2/example.jpg +0 -0
  102. data/spec/dummy/public/uploads/rails_admin_content_builder/content_builder_image/image/2/left_or_right_example.jpg +0 -0
  103. data/spec/dummy/public/uploads/tmp/1461693110-14578-0001-7683/center_example.jpg +0 -0
  104. data/spec/dummy/public/uploads/tmp/1461693110-14578-0001-7683/example.jpg +0 -0
  105. data/spec/dummy/public/uploads/tmp/1461693110-14578-0001-7683/left_or_right_example.jpg +0 -0
  106. data/spec/dummy/public/uploads/tmp/1461693202-14651-0001-6505/center_example.jpg +0 -0
  107. data/spec/dummy/public/uploads/tmp/1461693202-14651-0001-6505/example.jpg +0 -0
  108. data/spec/dummy/public/uploads/tmp/1461693202-14651-0001-6505/left_or_right_example.jpg +0 -0
  109. data/spec/dummy/public/uploads/tmp/1461693245-14728-0001-4392/center_example.jpg +0 -0
  110. data/spec/dummy/public/uploads/tmp/1461693245-14728-0001-4392/example.jpg +0 -0
  111. data/spec/dummy/public/uploads/tmp/1461693245-14728-0001-4392/left_or_right_example.jpg +0 -0
  112. data/spec/factories/content_builder_categories.rb +5 -0
  113. data/spec/factories/content_builder_images.rb +6 -0
  114. data/spec/factories/content_builders.rb +10 -0
  115. data/spec/features/create_content_builder_category_spec.rb +18 -0
  116. data/spec/features/create_content_builder_spec.rb +34 -0
  117. data/spec/features/status_content_builder_spec.rb +28 -0
  118. data/spec/fixtures/assets/example.jpg +0 -0
  119. data/spec/helpers/rails_admin_content_builder/content_builder_helper_spec.rb +33 -0
  120. data/spec/models/rails_admin_content_builder/content_builder_category_spec.rb +11 -0
  121. data/spec/models/rails_admin_content_builder/content_builder_image_spec.rb +11 -0
  122. data/spec/models/rails_admin_content_builder/content_builder_spec.rb +44 -0
  123. data/spec/spec_helper.rb +36 -0
  124. data/spec/version_spec.rb +7 -0
  125. data/vendor/assets/stylesheets/rails_admin_content_builder.scss +214 -0
  126. metadata +3100 -0
@@ -0,0 +1,17 @@
1
+ pt-BR:
2
+ admin:
3
+ actions:
4
+ content_builder:
5
+ title: "Criar Notícia"
6
+ menu: "Criar Notícia"
7
+ breadcrumb: "Criar Notícia"
8
+ delete_block: "Deseja mesmo remover esse conteúdo?"
9
+ success_save: "Atualizado com sucesso"
10
+ error_save: "Erro ao atualizar"
11
+ written_by: "Autor"
12
+ news_source: "Fonte"
13
+ summary: "Resumo"
14
+ button:
15
+ save: "Salvar"
16
+ publish: "Publicar"
17
+ unpublish: 'Despublicar'
@@ -0,0 +1,5 @@
1
+ Rails.application.routes.draw do
2
+ path_url = 'admin/rails_admin_content_builder~content_builder/:id/create_images'
3
+ path_method = 'rails_admin_content_builder/content_builder#create_images'
4
+ put path_url => path_method
5
+ end
@@ -0,0 +1,32 @@
1
+ require 'rails/generators'
2
+
3
+ class RailsAdminContentBuilderGenerator < Rails::Generators::Base
4
+ include Rails::Generators::Migration
5
+
6
+ def self.source_root
7
+ @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates/'))
8
+ end
9
+
10
+ def self.next_migration_number(*)
11
+ unless @migration
12
+ @migration = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
13
+ else
14
+ @migration += 1
15
+ end
16
+ @migration.to_s
17
+ end
18
+
19
+ def create_uploader_content_builder_image_model
20
+ template "content_builder_image_uploader.rb", "app/uploaders/content_builder_image_uploader.rb"
21
+ end
22
+
23
+ def create_rails_admin_config_in_initializer
24
+ template "rails_admin_content_builder.rb", "config/initializers/rails_admin_content_builder.rb"
25
+ end
26
+
27
+ 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")
31
+ end
32
+ end
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+
3
+ class ContentBuilderImageUploader < CarrierWave::Uploader::Base
4
+ # Include RMagick or MiniMagick support:
5
+ # include CarrierWave::RMagick
6
+ include CarrierWave::MiniMagick
7
+
8
+ # Choose what kind of storage to use for this uploader:
9
+ storage :file
10
+ # storage :fog
11
+
12
+ # Override the directory where uploaded files will be stored.
13
+ # This is a sensible default for uploaders that are meant to be mounted:
14
+ def store_dir
15
+ "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
16
+ end
17
+
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
+ # Process files as they are uploaded:
27
+ # process :scale => [200, 300]
28
+ #
29
+ # def scale(width, height)
30
+ # # do something
31
+ # end
32
+
33
+ # Create different versions of your uploaded files:
34
+ version :left_or_right do
35
+ process :resize_to_fit => [450, 450]
36
+ end
37
+
38
+ version :center do
39
+ process :resize_to_fit => [900, 900]
40
+ end
41
+
42
+ # Add a white list of extensions which are allowed to be uploaded.
43
+ # For images you might use something like this:
44
+ def extension_white_list
45
+ %w(jpg jpeg gif png)
46
+ end
47
+
48
+ # Override the filename of the uploaded files:
49
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
50
+ # def filename
51
+ # "something.jpg" if original_filename
52
+ # end
53
+
54
+ end
@@ -0,0 +1,10 @@
1
+ class CreateContentBuilderCategories < ActiveRecord::Migration
2
+ def change
3
+ create_table :content_builder_categories do |t|
4
+ t.string :name
5
+ t.string :slug
6
+
7
+ t.timestamps null: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreateContentBuilderImages < ActiveRecord::Migration
2
+ def change
3
+ create_table :content_builder_images do |t|
4
+ t.string :image
5
+ t.references :content_builder, index: true, foreign_key: true
6
+
7
+ t.timestamps null: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ class CreateContentBuilders < ActiveRecord::Migration
2
+ def change
3
+ create_table :content_builders do |t|
4
+ t.string :title
5
+ t.string :written_by
6
+ t.datetime :date_publish
7
+ t.text :content
8
+ t.boolean :status, default: false
9
+ t.string :slug
10
+ t.text :summary
11
+ t.references :content_builder_category, index: true, foreign_key: true
12
+
13
+ t.timestamps null: false
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,37 @@
1
+ RailsAdmin.config do |config|
2
+ config.actions do
3
+ content_builder do
4
+ only ['RailsAdminContentBuilder::ContentBuilder']
5
+ end
6
+
7
+ config.model 'RailsAdminContentBuilder::ContentBuilder' do
8
+ list do
9
+ field :id
10
+ field :title
11
+ field :date_publish
12
+ field :content_builder_category
13
+ field :status
14
+ end
15
+ edit do
16
+ field :title
17
+ field :date_publish
18
+ field :written_by
19
+ field :content_builder_category
20
+ end
21
+ end
22
+
23
+ config.model 'RailsAdminContentBuilder::ContentBuilderCategory' do
24
+ list do
25
+ field :id
26
+ field :name
27
+ end
28
+ edit do
29
+ field :name
30
+ end
31
+ end
32
+
33
+ config.model 'RailsAdminContentBuilder::ContentBuilderImage' do
34
+ visible false
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,55 @@
1
+ require "rails_admin_content_builder/engine"
2
+
3
+ module RailsAdminContentBuilder
4
+ end
5
+
6
+ require 'rails_admin/config/actions'
7
+
8
+ module RailsAdmin
9
+ module Config
10
+ module Actions
11
+ class ContentBuilder < Base
12
+ RailsAdmin::Config::Actions.register(self)
13
+ register_instance_option :member do
14
+ true
15
+ end
16
+
17
+ register_instance_option :link_icon do
18
+ 'icon-align-justify'
19
+ end
20
+
21
+ register_instance_option :http_methods do
22
+ [:get, :post]
23
+ end
24
+
25
+ register_instance_option :controller do
26
+ Proc.new do
27
+ @object = @abstract_model.model.find(params[:id])
28
+ @response = {}
29
+
30
+ if request.post?
31
+ if params.present?
32
+
33
+ if params[:publish]
34
+ status = true
35
+ elsif params[:unpublish]
36
+ status = false
37
+ elsif params[:save]
38
+ status = @object.status
39
+ end
40
+
41
+ if @object.update(content: params[:content], status: status)
42
+ flash[:success] = t('admin.actions.content_builder.success_save')
43
+ else
44
+ flash[:error] = t('admin.actions.content_builder.error_save')
45
+ end
46
+ end
47
+ end
48
+
49
+ render :action => @action.template_name
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,26 @@
1
+ require 'medium-editor-rails'
2
+ require 'simple_form'
3
+ require 'carrierwave'
4
+ require 'friendly_id'
5
+ require 'search_cop'
6
+
7
+ module RailsAdminContentBuilder
8
+ class Engine < ::Rails::Engine
9
+ isolate_namespace RailsAdminContentBuilder
10
+
11
+ initializer 'rails_admin_content_builder.load_static_assets' do |app|
12
+ app.middleware.use ::ActionDispatch::Static, "#{root}/vendor"
13
+ app.config.assets.precompile += %w(
14
+ rails_admin/content_builder.js
15
+ rails_admin/content_builder.css
16
+ )
17
+ end
18
+
19
+ config.generators do |g|
20
+ g.test_framework :rspec
21
+ g.fixture_replacement :factory_girl, :dir => 'spec/factories'
22
+ g.assets false
23
+ g.helper false
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module RailsAdminContentBuilder
2
+ VERSION = "1.0.3"
3
+ end
@@ -0,0 +1,42 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "rails_admin_content_builder/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "rails_admin_content_builder"
8
+ spec.version = RailsAdminContentBuilder::VERSION
9
+ spec.authors = ["Luiz Picolo", "Gabriel Medina"]
10
+ spec.email = ["luizpicolo@gmail.com", "gmedina.santos@gmail.com"]
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"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+ spec.test_files = Dir["spec/**/*"]
22
+
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"
28
+ spec.add_development_dependency 'capybara', '~> 2.7', '>= 2.7.0'
29
+ spec.add_development_dependency 'launchy', '~> 2.4', '>= 2.4.3'
30
+ spec.add_development_dependency "shoulda-matchers", "~> 3.1"
31
+ spec.add_development_dependency 'selenium-webdriver', '~> 2.53', '>= 2.53.4'
32
+ spec.add_development_dependency 'factory_girl_rails', '~> 4.7', '>= 4.7.0'
33
+ spec.add_development_dependency 'faker', '~> 1.6', '>= 1.6.3'
34
+
35
+ spec.add_runtime_dependency "carrierwave", "~> 0.11.0"
36
+ spec.add_runtime_dependency 'medium-editor-rails', '~> 2.1', '>= 2.1.0'
37
+ spec.add_runtime_dependency 'mini_magick', '~> 4.5', '>= 4.5.1'
38
+ spec.add_runtime_dependency 'friendly_id', '~> 5.1', '>= 5.1.0'
39
+ spec.add_runtime_dependency "simple_form", "~> 3.2"
40
+ spec.add_runtime_dependency 'search_cop', '~> 1.0', '>= 1.0.6'
41
+ spec.add_runtime_dependency 'rails-html-sanitizer', '~> 1.0', '>= 1.0.0'
42
+ end
Binary file
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+
4
+ describe RailsAdminContentBuilder::ContentBuilderController, type: :controller do
5
+ describe 'PUT #create_images' do
6
+ it "Should return valid JSON" do
7
+ content_builder = FactoryGirl.create :content_builder
8
+ put :create_images, id: content_builder.id,
9
+ content_builder_image: Rack::Test::UploadedFile.new(File.join('spec', 'fixtures', 'assets', 'example.jpg'))
10
+
11
+ json = JSON.parse(response.body)
12
+ path = '/uploads/rails_admin_content_builder/content_builder_image/image/1/'
13
+
14
+ expect(response.status).to eq 200
15
+ 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'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development, :test do
4
+ gem 'rspec-rails'
5
+ gem 'factory_girl_rails'
6
+ gem 'sqlite3'
7
+ gem 'rails_admin'
8
+ gem 'shoulda-matchers', '~> 3.1'
9
+ gem 'rails_admin_content_builder', path: '../../'
10
+ end
11
+
@@ -0,0 +1,217 @@
1
+ PATH
2
+ remote: ../../
3
+ specs:
4
+ rails_admin_content_builder (1.0.1)
5
+ carrierwave (~> 0.11.0)
6
+ friendly_id (~> 5.1.0)
7
+ medium-editor-rails (~> 2.1.0)
8
+ mini_magick (~> 4.5.1)
9
+ rails-html-sanitizer
10
+ search_cop (~> 1.0.6)
11
+ simple_form (~> 3.2)
12
+
13
+ GEM
14
+ remote: https://rubygems.org/
15
+ specs:
16
+ actionmailer (4.2.6)
17
+ actionpack (= 4.2.6)
18
+ actionview (= 4.2.6)
19
+ activejob (= 4.2.6)
20
+ mail (~> 2.5, >= 2.5.4)
21
+ rails-dom-testing (~> 1.0, >= 1.0.5)
22
+ actionpack (4.2.6)
23
+ actionview (= 4.2.6)
24
+ activesupport (= 4.2.6)
25
+ rack (~> 1.6)
26
+ rack-test (~> 0.6.2)
27
+ rails-dom-testing (~> 1.0, >= 1.0.5)
28
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
+ actionview (4.2.6)
30
+ activesupport (= 4.2.6)
31
+ builder (~> 3.1)
32
+ erubis (~> 2.7.0)
33
+ rails-dom-testing (~> 1.0, >= 1.0.5)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
35
+ activejob (4.2.6)
36
+ activesupport (= 4.2.6)
37
+ globalid (>= 0.3.0)
38
+ activemodel (4.2.6)
39
+ activesupport (= 4.2.6)
40
+ builder (~> 3.1)
41
+ activerecord (4.2.6)
42
+ activemodel (= 4.2.6)
43
+ activesupport (= 4.2.6)
44
+ arel (~> 6.0)
45
+ activesupport (4.2.6)
46
+ i18n (~> 0.7)
47
+ json (~> 1.7, >= 1.7.7)
48
+ minitest (~> 5.1)
49
+ thread_safe (~> 0.3, >= 0.3.4)
50
+ tzinfo (~> 1.1)
51
+ arel (6.0.3)
52
+ builder (3.2.2)
53
+ carrierwave (0.11.2)
54
+ activemodel (>= 3.2.0)
55
+ activesupport (>= 3.2.0)
56
+ json (>= 1.7)
57
+ mime-types (>= 1.16)
58
+ mimemagic (>= 0.3.0)
59
+ coffee-rails (4.1.1)
60
+ coffee-script (>= 2.2.0)
61
+ railties (>= 4.0.0, < 5.1.x)
62
+ coffee-script (2.4.1)
63
+ coffee-script-source
64
+ execjs
65
+ coffee-script-source (1.10.0)
66
+ concurrent-ruby (1.0.1)
67
+ diff-lcs (1.2.5)
68
+ erubis (2.7.0)
69
+ execjs (2.6.0)
70
+ factory_girl (4.7.0)
71
+ activesupport (>= 3.0.0)
72
+ factory_girl_rails (4.7.0)
73
+ factory_girl (~> 4.7.0)
74
+ railties (>= 3.0.0)
75
+ font-awesome-rails (4.6.1.0)
76
+ railties (>= 3.2, < 5.1)
77
+ friendly_id (5.1.0)
78
+ activerecord (>= 4.0.0)
79
+ globalid (0.3.6)
80
+ activesupport (>= 4.1.0)
81
+ haml (4.0.7)
82
+ tilt
83
+ i18n (0.7.0)
84
+ jquery-rails (4.1.1)
85
+ rails-dom-testing (>= 1, < 3)
86
+ railties (>= 4.2.0)
87
+ thor (>= 0.14, < 2.0)
88
+ jquery-ui-rails (5.0.5)
89
+ railties (>= 3.2.16)
90
+ json (1.8.3)
91
+ kaminari (0.16.3)
92
+ actionpack (>= 3.0.0)
93
+ activesupport (>= 3.0.0)
94
+ loofah (2.0.3)
95
+ nokogiri (>= 1.5.9)
96
+ mail (2.6.4)
97
+ mime-types (>= 1.16, < 4)
98
+ medium-editor-rails (2.1.0)
99
+ railties (>= 3.0)
100
+ mime-types (3.0)
101
+ mime-types-data (~> 3.2015)
102
+ mime-types-data (3.2016.0221)
103
+ mimemagic (0.3.1)
104
+ mini_magick (4.5.1)
105
+ mini_portile2 (2.0.0)
106
+ minitest (5.8.4)
107
+ nested_form (0.3.2)
108
+ nokogiri (1.6.7.2)
109
+ mini_portile2 (~> 2.0.0.rc2)
110
+ polyglot (0.3.5)
111
+ rack (1.6.4)
112
+ rack-pjax (0.8.0)
113
+ nokogiri (~> 1.5)
114
+ rack (~> 1.1)
115
+ rack-test (0.6.3)
116
+ rack (>= 1.0)
117
+ rails (4.2.6)
118
+ actionmailer (= 4.2.6)
119
+ actionpack (= 4.2.6)
120
+ actionview (= 4.2.6)
121
+ activejob (= 4.2.6)
122
+ activemodel (= 4.2.6)
123
+ activerecord (= 4.2.6)
124
+ activesupport (= 4.2.6)
125
+ bundler (>= 1.3.0, < 2.0)
126
+ railties (= 4.2.6)
127
+ sprockets-rails
128
+ rails-deprecated_sanitizer (1.0.3)
129
+ activesupport (>= 4.2.0.alpha)
130
+ rails-dom-testing (1.0.7)
131
+ activesupport (>= 4.2.0.beta, < 5.0)
132
+ nokogiri (~> 1.6.0)
133
+ rails-deprecated_sanitizer (>= 1.0.1)
134
+ rails-html-sanitizer (1.0.3)
135
+ loofah (~> 2.0)
136
+ rails_admin (0.8.1)
137
+ builder (~> 3.1)
138
+ coffee-rails (~> 4.0)
139
+ font-awesome-rails (>= 3.0, < 5)
140
+ haml (~> 4.0)
141
+ jquery-rails (>= 3.0, < 5)
142
+ jquery-ui-rails (~> 5.0)
143
+ kaminari (~> 0.14)
144
+ nested_form (~> 0.3)
145
+ rack-pjax (~> 0.7)
146
+ rails (~> 4.0)
147
+ remotipart (~> 1.0)
148
+ safe_yaml (~> 1.0)
149
+ sass-rails (>= 4.0, < 6)
150
+ railties (4.2.6)
151
+ actionpack (= 4.2.6)
152
+ activesupport (= 4.2.6)
153
+ rake (>= 0.8.7)
154
+ thor (>= 0.18.1, < 2.0)
155
+ rake (11.1.2)
156
+ remotipart (1.2.1)
157
+ rspec-core (3.4.4)
158
+ rspec-support (~> 3.4.0)
159
+ rspec-expectations (3.4.0)
160
+ diff-lcs (>= 1.2.0, < 2.0)
161
+ rspec-support (~> 3.4.0)
162
+ rspec-mocks (3.4.1)
163
+ diff-lcs (>= 1.2.0, < 2.0)
164
+ rspec-support (~> 3.4.0)
165
+ rspec-rails (3.4.2)
166
+ actionpack (>= 3.0, < 4.3)
167
+ activesupport (>= 3.0, < 4.3)
168
+ railties (>= 3.0, < 4.3)
169
+ rspec-core (~> 3.4.0)
170
+ rspec-expectations (~> 3.4.0)
171
+ rspec-mocks (~> 3.4.0)
172
+ rspec-support (~> 3.4.0)
173
+ rspec-support (3.4.1)
174
+ safe_yaml (1.0.4)
175
+ sass (3.4.22)
176
+ sass-rails (5.0.4)
177
+ railties (>= 4.0.0, < 5.0)
178
+ sass (~> 3.1)
179
+ sprockets (>= 2.8, < 4.0)
180
+ sprockets-rails (>= 2.0, < 4.0)
181
+ tilt (>= 1.1, < 3)
182
+ search_cop (1.0.6)
183
+ treetop
184
+ shoulda-matchers (3.1.1)
185
+ activesupport (>= 4.0.0)
186
+ simple_form (3.2.1)
187
+ actionpack (> 4, < 5.1)
188
+ activemodel (> 4, < 5.1)
189
+ sprockets (3.6.0)
190
+ concurrent-ruby (~> 1.0)
191
+ rack (> 1, < 3)
192
+ sprockets-rails (3.0.4)
193
+ actionpack (>= 4.0)
194
+ activesupport (>= 4.0)
195
+ sprockets (>= 3.0.0)
196
+ sqlite3 (1.3.11)
197
+ thor (0.19.1)
198
+ thread_safe (0.3.5)
199
+ tilt (2.0.2)
200
+ treetop (1.6.5)
201
+ polyglot (~> 0.3)
202
+ tzinfo (1.2.2)
203
+ thread_safe (~> 0.1)
204
+
205
+ PLATFORMS
206
+ ruby
207
+
208
+ DEPENDENCIES
209
+ factory_girl_rails
210
+ rails_admin
211
+ rails_admin_content_builder!
212
+ rspec-rails
213
+ shoulda-matchers (~> 3.1)
214
+ sqlite3
215
+
216
+ BUNDLED WITH
217
+ 1.12.2