From 9eb6280e53f8a0a4de045af78788f03f3d6c2df8 Mon Sep 17 00:00:00 2001 From: Mattia Roccoberton Date: Sat, 15 Jun 2019 19:50:57 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Support=20ActiveAdmin=202.x=20an?= =?UTF-8?q?d=20code=20style=20improvements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add support ActiveAdmin for 2.x - Add rubocop config - Add frozen_string_literal to ruby files - Apply changes to respect rubocop alerts --- .rubocop.yml | 73 +++++++++++++++++++ Gemfile | 1 - README.md | 1 - Rakefile | 4 +- activeadmin_quill_editor.gemspec | 6 +- .../activeadmin/quill_editor_input.js | 26 +++---- lib/activeadmin/quill_editor.rb | 2 + lib/activeadmin/quill_editor/engine.rb | 2 + lib/activeadmin/quill_editor/version.rb | 4 +- lib/activeadmin_quill_editor.rb | 2 + lib/formtastic/inputs/quill_editor_input.rb | 12 +-- 11 files changed, 106 insertions(+), 27 deletions(-) create mode 100644 .rubocop.yml diff --git a/.rubocop.yml b/.rubocop.yml new file mode 100644 index 0000000..7888bdd --- /dev/null +++ b/.rubocop.yml @@ -0,0 +1,73 @@ +require: + - rubocop-rspec + +Rails: + Enabled: true + +AllCops: + TargetRubyVersion: 2.3.8 + TargetRailsVersion: 5.2 + Exclude: + - db/schema.rb + - bin/* + - node_modules/**/* + # Temporary files + - tmp/**/* + +Rails/InverseOf: + Enabled: false + +Style/Documentation: + Enabled: false + +Metrics/ClassLength: + # Default value is 100 + Max: 150 + +Metrics/LineLength: + # Default is 80 + Max: 120 + +Metrics/ModuleLength: + # Default is 100 + Max: 150 + +Metrics/ParameterLists: + # Default is 5 + Max: 6 + +RSpec/ExampleLength: + # Default is 10 + Max: 20 + +Style/FrozenStringLiteralComment: + # Deface DOES edit strings in place + Exclude: + - 'app/overrides/**/*' + +RSpec/MultipleExpectations: + # Default is 3 + Max: 5 + +RSpec/NestedGroups: + # Default is 3 + Max: 6 + +Metrics/AbcSize: + Max: 25 + +Metrics/BlockLength: + # This value double the rubocop default + Max: 50 + +Metrics/CyclomaticComplexity: + # This value double the rubocop default + Max: 12 + +Metrics/MethodLength: + # This value double the rubocop default + Max: 20 + +Metrics/PerceivedComplexity: + # Default is 7 + Max: 10 diff --git a/Gemfile b/Gemfile index 9e9ddcc..fa75df1 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,3 @@ source 'https://rubygems.org' gemspec - diff --git a/README.md b/README.md index 7253753..ed88afb 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,6 @@ An Active Admin plugin to use [Quill Rich Text Editor](https://github.com/quillj ## Install - Update your Gemfile: `gem 'activeadmin_quill_editor'` (and execute *bundle*) -- For ActiveAdmin2 alpha use: `gem 'activeadmin_quill_editor', git: 'https://github.com/blocknotes/activeadmin_quill_editor', branch: 'aa2'` - Add at the end of your ActiveAdmin styles (_app/assets/stylesheets/active_admin.scss_): ```css @import 'activeadmin/quill_editor_input'; diff --git a/Rakefile b/Rakefile index 3b02b94..7398a90 100644 --- a/Rakefile +++ b/Rakefile @@ -1,3 +1,3 @@ -# encoding: utf-8 +# frozen_string_literal: true -require "bundler/gem_tasks" +require 'bundler/gem_tasks' diff --git a/activeadmin_quill_editor.gemspec b/activeadmin_quill_editor.gemspec index 08c6acc..eb680b0 100644 --- a/activeadmin_quill_editor.gemspec +++ b/activeadmin_quill_editor.gemspec @@ -1,4 +1,6 @@ -lib = File.expand_path('../lib', __FILE__) +# frozen_string_literal: true + +lib = File.expand_path('lib', __dir__) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'activeadmin/quill_editor/version' @@ -15,5 +17,5 @@ Gem::Specification.new do |spec| spec.files = `git ls-files -z`.split("\x0") spec.require_paths = ['lib'] - spec.add_runtime_dependency 'activeadmin', '~> 1.0' + spec.add_runtime_dependency 'activeadmin', '>= 1.0' end diff --git a/app/assets/javascripts/activeadmin/quill_editor_input.js b/app/assets/javascripts/activeadmin/quill_editor_input.js index 9aaed36..b3d0f4f 100644 --- a/app/assets/javascripts/activeadmin/quill_editor_input.js +++ b/app/assets/javascripts/activeadmin/quill_editor_input.js @@ -1,4 +1,4 @@ -window.onload = function () { +window.onload = function() { initQuillEditors(); } @@ -7,7 +7,7 @@ $(document).on('has_many_add:after', function() { }); var initQuillEditors = function() { - var editors = document.querySelectorAll( '.quill-editor' ); + var editors = document.querySelectorAll('.quill-editor'); var default_options = { modules: { toolbar: [ @@ -17,32 +17,28 @@ var initQuillEditors = function() { [{ 'align': [] }, { list: 'ordered' }, { list: 'bullet' }], [{ 'color': [] }, { 'background': [] }], ['clean'], - // [{ 'size': ['small', false, 'large', 'huge'] }], - // [{ 'header': [1, 2, 3, 4, 5, 6, false] }], ] }, placeholder: '', theme: 'snow' }; - for( var i = 0; i < editors.length; i++ ) { - var content = editors[i].querySelector( '.quill-editor-content' ); + for(var i = 0; i < editors.length; i++) { + var content = editors[i].querySelector('.quill-editor-content'); var isActive = editors[i].classList.contains('quill-editor--active'); - if( content && !isActive) { - var options = editors[i].getAttribute( 'data-options' ) ? JSON.parse( editors[i].getAttribute( 'data-options' ) ) : default_options; - editors[i]['_quill-editor'] = new Quill( content, options ); + if(content && !isActive) { + var options = editors[i].getAttribute('data-options') ? JSON.parse(editors[i].getAttribute('data-options')) : default_options; + editors[i]['_quill-editor'] = new Quill(content, options); editors[i].classList += ' quill-editor--active'; } } - var formtastic = document.querySelector( 'form.formtastic' ); - if( formtastic ) { + var formtastic = document.querySelector('form.formtastic'); + if(formtastic) { formtastic.onsubmit = function() { - for( var i = 0; i < editors.length; i++ ) { - var input = editors[i].querySelector( 'input[type="hidden"]' ); + for(var i = 0; i < editors.length; i++) { + var input = editors[i].querySelector('input[type="hidden"]'); input.value = editors[i]['_quill-editor'].root.innerHTML; - // input.value = editors[i]['_quill-editor'].getContents(); - // input.value = editors[i].querySelector( '.quill-editor-content' ).innerHTML; } }; } diff --git a/lib/activeadmin/quill_editor.rb b/lib/activeadmin/quill_editor.rb index b9289a4..82c8a0d 100644 --- a/lib/activeadmin/quill_editor.rb +++ b/lib/activeadmin/quill_editor.rb @@ -1 +1,3 @@ +# frozen_string_literal: true + require 'activeadmin/quill_editor/engine' diff --git a/lib/activeadmin/quill_editor/engine.rb b/lib/activeadmin/quill_editor/engine.rb index 4c953bc..79bc31e 100644 --- a/lib/activeadmin/quill_editor/engine.rb +++ b/lib/activeadmin/quill_editor/engine.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'active_admin' module ActiveAdmin diff --git a/lib/activeadmin/quill_editor/version.rb b/lib/activeadmin/quill_editor/version.rb index 6651f14..f55070d 100644 --- a/lib/activeadmin/quill_editor/version.rb +++ b/lib/activeadmin/quill_editor/version.rb @@ -1,5 +1,7 @@ +# frozen_string_literal: true + module ActiveAdmin module QuillEditor - VERSION = '0.1.4' + VERSION = '0.2.0' end end diff --git a/lib/activeadmin_quill_editor.rb b/lib/activeadmin_quill_editor.rb index 76d26c1..1fd598f 100644 --- a/lib/activeadmin_quill_editor.rb +++ b/lib/activeadmin_quill_editor.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'activeadmin/quill_editor' require 'formtastic/inputs/quill_editor_input' diff --git a/lib/formtastic/inputs/quill_editor_input.rb b/lib/formtastic/inputs/quill_editor_input.rb index 687d6ca..3434934 100644 --- a/lib/formtastic/inputs/quill_editor_input.rb +++ b/lib/formtastic/inputs/quill_editor_input.rb @@ -1,15 +1,17 @@ +# frozen_string_literal: true + module Formtastic module Inputs class QuillEditorInput < Formtastic::Inputs::TextInput def to_html input_wrapping do label_html << - template.content_tag( :div, input_html_options.merge( class: 'quill-editor' ) ) do - builder.hidden_field( input_name ) << - template.content_tag( :div, class: 'quill-editor-content' ) do - object.send( method ).try :html_safe + template.content_tag(:div, input_html_options.merge(class: 'quill-editor')) do + builder.hidden_field(input_name) << + template.content_tag(:div, class: 'quill-editor-content') do + object.send(method).try :html_safe + end end - end end end end