diff --git a/.haml-lint.yml b/.haml-lint.yml new file mode 100644 index 00000000..013b144f --- /dev/null +++ b/.haml-lint.yml @@ -0,0 +1 @@ +inherits_from: .haml-lint_todo.yml diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml new file mode 100644 index 00000000..2c51e966 --- /dev/null +++ b/.haml-lint_todo.yml @@ -0,0 +1,427 @@ +# This configuration was generated by +# `haml-lint --auto-gen-config` +# on 2017-04-25 04:36:49 +0530 using Haml-Lint version 0.24.0. +# The point is for the user to remove these configuration records +# one by one as the lints are removed from the code base. +# Note that changes in the inspected code, or installation of new +# versions of Haml-Lint, may require this file to be generated again. + +linters: + + # Offense count: 952 + LineLength: + exclude: + - "app/views/admin/campaigns/_form.html.haml" + - "app/views/admin/campaigns/index.html.haml" + - "app/views/admin/cfps/_form.html.haml" + - "app/views/admin/cfps/show.html.haml" + - "app/views/admin/comments/_all_comments.html.haml" + - "app/views/admin/comments/_posted_comments.html.haml" + - "app/views/admin/comments/_unread_comments.html.haml" + - "app/views/admin/commercials/index.html.haml" + - "app/views/admin/conferences/_campaigns.html.haml" + - "app/views/admin/conferences/_doughnut_chart.html.haml" + - "app/views/admin/conferences/_line_chart.html.haml" + - "app/views/admin/conferences/_recent_registrations.html.haml" + - "app/views/admin/conferences/_recent_submissions.html.haml" + - "app/views/admin/conferences/_recent_users.html.haml" + - "app/views/admin/conferences/_targets.html.haml" + - "app/views/admin/conferences/_todo_list.html.haml" + - "app/views/admin/conferences/_top_submitter.html.haml" + - "app/views/admin/conferences/edit.html.haml" + - "app/views/admin/conferences/index.html.haml" + - "app/views/admin/conferences/new.html.haml" + - "app/views/admin/conferences/show.html.haml" + - "app/views/admin/contacts/edit.html.haml" + - "app/views/admin/difficulty_levels/_form.html.haml" + - "app/views/admin/difficulty_levels/index.html.haml" + - "app/views/admin/emails/_help.html.haml" + - "app/views/admin/emails/index.html.haml" + - "app/views/admin/event_types/_form.html.haml" + - "app/views/admin/event_types/index.html.haml" + - "app/views/admin/events/_all_events.csv.haml" + - "app/views/admin/events/_all_with_comments.csv.haml" + - "app/views/admin/events/_change_state_dropdown.html.haml" + - "app/views/admin/events/_confirmed_events.csv.haml" + - "app/views/admin/events/_nested_comments.html.haml" + - "app/views/admin/events/_proposal.html.haml" + - "app/views/admin/events/_voting.html.haml" + - "app/views/admin/events/_voting_index.html.haml" + - "app/views/admin/events/index.html.haml" + - "app/views/admin/events/registrations.html.haml" + - "app/views/admin/events/reports.html.haml" + - "app/views/admin/events/show.html.haml" + - "app/views/admin/lodgings/_form.html.haml" + - "app/views/admin/lodgings/index.html.haml" + - "app/views/admin/programs/_form.html.haml" + - "app/views/admin/programs/show.html.haml" + - "app/views/admin/questions/_form.html.haml" + - "app/views/admin/questions/_questions.html.haml" + - "app/views/admin/questions/edit.html.haml" + - "app/views/admin/questions/index.html.haml" + - "app/views/admin/questions/show.html.haml" + - "app/views/admin/registration_periods/_form.html.haml" + - "app/views/admin/registration_periods/show.html.haml" + - "app/views/admin/registrations/edit.html.haml" + - "app/views/admin/registrations/index.html.haml" + - "app/views/admin/reports/_all_events.html.haml" + - "app/views/admin/reports/_events_with_requirements.html.haml" + - "app/views/admin/reports/_events_without_commercials.html.haml" + - "app/views/admin/reports/_missing_speakers.html.haml" + - "app/views/admin/resources/_form.html.haml" + - "app/views/admin/resources/index.html.haml" + - "app/views/admin/resources/show.html.haml" + - "app/views/admin/roles/_form.html.haml" + - "app/views/admin/roles/_users.html.haml" + - "app/views/admin/roles/index.html.haml" + - "app/views/admin/roles/show.html.haml" + - "app/views/admin/rooms/_form.html.haml" + - "app/views/admin/rooms/index.html.haml" + - "app/views/admin/schedules/_day_tab.html.haml" + - "app/views/admin/schedules/_event.html.haml" + - "app/views/admin/schedules/index.html.haml" + - "app/views/admin/schedules/show.html.haml" + - "app/views/admin/splashpages/_form.html.haml" + - "app/views/admin/splashpages/show.html.haml" + - "app/views/admin/sponsors/_form.html.haml" + - "app/views/admin/sponsors/index.html.haml" + - "app/views/admin/sponsorship_levels/_form.html.haml" + - "app/views/admin/sponsorship_levels/index.html.haml" + - "app/views/admin/targets/_form.html.haml" + - "app/views/admin/targets/index.html.haml" + - "app/views/admin/tickets/_form.html.haml" + - "app/views/admin/tickets/index.html.haml" + - "app/views/admin/tickets/show.html.haml" + - "app/views/admin/tracks/_form.html.haml" + - "app/views/admin/tracks/index.html.haml" + - "app/views/admin/tracks/show.html.haml" + - "app/views/admin/users/_event_registrations.html.haml" + - "app/views/admin/users/_form.html.haml" + - "app/views/admin/users/_submissions.html.haml" + - "app/views/admin/users/index.html.haml" + - "app/views/admin/users/show.html.haml" + - "app/views/admin/venues/_form.html.haml" + - "app/views/admin/venues/show.html.haml" + - "app/views/admin/versions/_object_desc_and_link.html.haml" + - "app/views/admin/versions/index.html.haml" + - "app/views/admin/volunteers/index.html.haml" + - "app/views/commercials/edit.html.haml" + - "app/views/commercials/new.html.haml" + - "app/views/conference_registrations/_form.html.haml" + - "app/views/conference_registrations/_questions.html.haml" + - "app/views/conference_registrations/_registration_info.html.haml" + - "app/views/conference_registrations/_volunteer.html.haml" + - "app/views/conference_registrations/show.html.haml" + - "app/views/conferences/_call_for_paper.html.haml" + - "app/views/conferences/_conference_details.html.haml" + - "app/views/conferences/_gallery.html.haml" + - "app/views/conferences/_lodging.html.haml" + - "app/views/conferences/_program.html.haml" + - "app/views/conferences/_registration.html.haml" + - "app/views/conferences/_schedule_splashpage.html.haml" + - "app/views/conferences/_sponsors.html.haml" + - "app/views/conferences/_tickets.html.haml" + - "app/views/conferences/_venue.html.haml" + - "app/views/conferences/_venue_map.html.haml" + - "app/views/conferences/index.html.haml" + - "app/views/conferences/show.html.haml" + - "app/views/devise/confirmations/new.html.haml" + - "app/views/devise/ichain_sessions/new.html.haml" + - "app/views/devise/ichain_sessions/new_test.html.haml" + - "app/views/devise/passwords/edit.html.haml" + - "app/views/devise/passwords/new.html.haml" + - "app/views/devise/registrations/_volunteeruser.html.haml" + - "app/views/devise/registrations/edit.html.haml" + - "app/views/devise/registrations/new.html.haml" + - "app/views/devise/sessions/new.html.haml" + - "app/views/devise/shared/_help.html.haml" + - "app/views/devise/shared/_links.html.haml" + - "app/views/devise/shared/_openid_links.html.haml" + - "app/views/devise/shared/_sign_in_form_embedded.html.haml" + - "app/views/devise/shared/_sign_up_form_embedded.html.haml" + - "app/views/layouts/_admin_sidebar.html.haml" + - "app/views/layouts/_admin_sidebar_index.html.haml" + - "app/views/layouts/_messages.html.haml" + - "app/views/layouts/_navigation.html.haml" + - "app/views/layouts/application.html.haml" + - "app/views/payments/_payment.html.haml" + - "app/views/proposals/_form.html.haml" + - "app/views/proposals/_proposal_form.html.haml" + - "app/views/proposals/_tooltip.html.haml" + - "app/views/proposals/index.html.haml" + - "app/views/proposals/new.html.haml" + - "app/views/proposals/registrations.html.haml" + - "app/views/proposals/show.html.haml" + - "app/views/schedules/_carousel.html.haml" + - "app/views/schedules/_event.html.haml" + - "app/views/schedules/_schedule.html.haml" + - "app/views/schedules/_schedule_item.html.haml" + - "app/views/schedules/_schedule_tabs.html.haml" + - "app/views/schedules/events.html.haml" + - "app/views/schedules/show.html.haml" + - "app/views/schedules/show.xml.haml" + - "app/views/shared/_changelog_actions.haml" + - "app/views/shared/_dynamic_association.html.haml" + - "app/views/shared/_media_item.html.haml" + - "app/views/shared/_media_items.html.haml" + - "app/views/shared/_object_changes.html.haml" + - "app/views/tickets/_ticket.html.haml" + - "app/views/tickets/index.html.haml" + - "app/views/users/edit.html.haml" + - "app/views/users/show.html.haml" + + # Offense count: 222 + InstanceVariables: + exclude: + - "app/views/admin/campaigns/_form.html.haml" + - "app/views/admin/cfps/_form.html.haml" + - "app/views/admin/conferences/_todo_list.html.haml" + - "app/views/admin/difficulty_levels/_form.html.haml" + - "app/views/admin/event_types/_form.html.haml" + - "app/views/admin/events/_change_state_dropdown.html.haml" + - "app/views/admin/events/_form.html.haml" + - "app/views/admin/events/_proposal.html.haml" + - "app/views/admin/events/_voting.html.haml" + - "app/views/admin/events/_voting_index.html.haml" + - "app/views/admin/lodgings/_form.html.haml" + - "app/views/admin/questions/_questions.html.haml" + - "app/views/admin/registration_periods/_form.html.haml" + - "app/views/admin/reports/_all_events.html.haml" + - "app/views/admin/reports/_events_with_requirements.html.haml" + - "app/views/admin/reports/_events_without_commercials.html.haml" + - "app/views/admin/reports/_missing_speakers.html.haml" + - "app/views/admin/roles/_form.html.haml" + - "app/views/admin/roles/_users.html.haml" + - "app/views/admin/rooms/_form.html.haml" + - "app/views/admin/schedules/_day_tab.html.haml" + - "app/views/admin/schedules/_event.html.haml" + - "app/views/admin/splashpages/_form.html.haml" + - "app/views/admin/sponsors/_form.html.haml" + - "app/views/admin/sponsorship_levels/_form.html.haml" + - "app/views/admin/tickets/_form.html.haml" + - "app/views/admin/tracks/_form.html.haml" + - "app/views/admin/users/_form.html.haml" + - "app/views/admin/users/_submissions.html.haml" + - "app/views/admin/venues/_form.html.haml" + - "app/views/conference_registrations/_form.html.haml" + - "app/views/conference_registrations/_registration_info.html.haml" + - "app/views/conference_registrations/_volunteer.html.haml" + - "app/views/conferences/_call_for_paper.html.haml" + - "app/views/conferences/_lodging.html.haml" + - "app/views/conferences/_program.html.haml" + - "app/views/conferences/_registration.html.haml" + - "app/views/conferences/_schedule_splashpage.html.haml" + - "app/views/conferences/_sponsors.html.haml" + - "app/views/conferences/_tickets.html.haml" + - "app/views/conferences/_venue.html.haml" + - "app/views/conferences/_venue_map.html.haml" + - "app/views/layouts/_admin_sidebar.html.haml" + - "app/views/layouts/_user_menu.html.haml" + - "app/views/payments/_payment.html.haml" + - "app/views/proposals/_encouragement_text.html.haml" + - "app/views/proposals/_form.html.haml" + - "app/views/proposals/_proposal_form.html.haml" + - "app/views/schedules/_carousel.html.haml" + - "app/views/schedules/_event.html.haml" + - "app/views/schedules/_schedule.html.haml" + - "app/views/schedules/_schedule_item.html.haml" + - "app/views/schedules/_schedule_tabs.html.haml" + + # Offense count: 32 + IdNames: + exclude: + - "app/views/admin/cfps/show.html.haml" + - "app/views/admin/comments/index.html.haml" + - "app/views/admin/conferences/index.html.haml" + - "app/views/admin/conferences/show.html.haml" + - "app/views/admin/difficulty_levels/index.html.haml" + - "app/views/admin/event_types/index.html.haml" + - "app/views/admin/programs/show.html.haml" + - "app/views/admin/questions/show.html.haml" + - "app/views/admin/roles/show.html.haml" + - "app/views/admin/schedules/index.html.haml" + - "app/views/admin/sponsorship_levels/index.html.haml" + - "app/views/admin/users/_event_registrations.html.haml" + - "app/views/admin/users/show.html.haml" + - "app/views/users/edit.html.haml" + + # Offense count: 8 + UnnecessaryInterpolation: + exclude: + - "app/views/admin/conferences/_doughnut_chart.html.haml" + - "app/views/admin/conferences/_recent_submissions.html.haml" + - "app/views/admin/events/reports.html.haml" + - "app/views/admin/reports/_events_with_requirements.html.haml" + - "app/views/admin/reports/_events_without_commercials.html.haml" + - "app/views/proposals/_proposal_form.html.haml" + - "app/views/proposals/new.html.haml" + + # Offense count: 48 + UnnecessaryStringOutput: + exclude: + - "app/views/admin/conferences/_targets.html.haml" + - "app/views/admin/event_types/index.html.haml" + - "app/views/admin/events/show.html.haml" + - "app/views/admin/users/_submissions.html.haml" + - "app/views/admin/venues/show.html.haml" + - "app/views/admin/versions/_object_desc_and_link.html.haml" + - "app/views/admin/volunteers/show.html.haml" + - "app/views/conference_registrations/show.html.haml" + - "app/views/conferences/_call_for_paper.html.haml" + - "app/views/conferences/_conference_details.html.haml" + - "app/views/conferences/_program.html.haml" + - "app/views/conferences/_venue.html.haml" + - "app/views/conferences/show.html.haml" + - "app/views/devise/registrations/edit.html.haml" + - "app/views/proposals/_encouragement_text.html.haml" + - "app/views/proposals/_form.html.haml" + - "app/views/users/edit.html.haml" + - "app/views/users/show.html.haml" + + # Offense count: 268 + SpaceInsideHashAttributes: + exclude: + - "app/views/admin/conferences/_todo_list.html.haml" + - "app/views/admin/questions/_form.html.haml" + - "app/views/admin/questions/index.html.haml" + - "app/views/admin/registrations/index.html.haml" + - "app/views/admin/reports/_all_events.html.haml" + - "app/views/admin/reports/index.html.haml" + - "app/views/admin/schedules/_day_tab.html.haml" + - "app/views/admin/schedules/_event.html.haml" + - "app/views/admin/schedules/index.html.haml" + - "app/views/admin/schedules/show.html.haml" + - "app/views/admin/sponsorship_levels/index.html.haml" + - "app/views/admin/targets/index.html.haml" + - "app/views/admin/tickets/show.html.haml" + - "app/views/admin/tracks/index.html.haml" + - "app/views/admin/users/show.html.haml" + - "app/views/admin/venues/_form.html.haml" + - "app/views/admin/venues/show.html.haml" + - "app/views/conference_registrations/_form.html.haml" + - "app/views/conference_registrations/_ticket.html.haml" + - "app/views/conference_registrations/_volunteer.html.haml" + - "app/views/conferences/_venue.html.haml" + - "app/views/conferences/_venue_map.html.haml" + - "app/views/conferences/index.html.haml" + - "app/views/devise/shared/_help.html.haml" + - "app/views/devise/shared/_openid_links.html.haml" + - "app/views/devise/shared/_sign_in_form_embedded.html.haml" + - "app/views/layouts/_admin_sidebar.html.haml" + - "app/views/layouts/_admin_sidebar_index.html.haml" + - "app/views/layouts/_messages.html.haml" + - "app/views/layouts/_navigation.html.haml" + - "app/views/layouts/application.html.haml" + - "app/views/payments/_payment.html.haml" + - "app/views/proposals/_form.html.haml" + - "app/views/proposals/_tooltip.html.haml" + - "app/views/proposals/index.html.haml" + - "app/views/proposals/new.html.haml" + - "app/views/proposals/show.html.haml" + - "app/views/schedules/_carousel.html.haml" + - "app/views/schedules/_schedule_item.html.haml" + - "app/views/shared/_changelog_actions.haml" + - "app/views/shared/_dynamic_association.html.haml" + - "app/views/shared/_media_item.html.haml" + - "app/views/shared/_media_items.html.haml" + - "app/views/shared/_object_changes.html.haml" + - "app/views/tickets/_ticket.html.haml" + - "app/views/tickets/index.html.haml" + + # Offense count: 27 + ClassesBeforeIds: + exclude: + - "app/views/admin/emails/index.html.haml" + - "app/views/admin/events/reports.html.haml" + - "app/views/admin/events/show.html.haml" + - "app/views/admin/reports/index.html.haml" + - "app/views/admin/users/show.html.haml" + - "app/views/admin/venues/_form.html.haml" + - "app/views/conferences/index.html.haml" + - "app/views/devise/shared/_help.html.haml" + - "app/views/devise/shared/_sign_in_form_embedded.html.haml" + - "app/views/layouts/_navigation.html.haml" + - "app/views/proposals/_form.html.haml" + + # Offense count: 55 + SpaceBeforeScript: + exclude: + - "app/views/admin/events/_form.html.haml" + - "app/views/admin/events/index.html.haml" + - "app/views/admin/registrations/index.html.haml" + - "app/views/admin/splashpages/show.html.haml" + - "app/views/admin/sponsors/_form.html.haml" + - "app/views/admin/targets/_form.html.haml" + - "app/views/admin/tracks/_form.html.haml" + - "app/views/admin/tracks/show.html.haml" + - "app/views/admin/venues/show.html.haml" + - "app/views/admin/versions/index.html.haml" + - "app/views/conference_registrations/_form.html.haml" + - "app/views/conference_registrations/_ticket.html.haml" + - "app/views/conference_registrations/show.html.haml" + - "app/views/conferences/_lodging.html.haml" + - "app/views/conferences/_schedule_splashpage.html.haml" + - "app/views/conferences/_sponsors.html.haml" + - "app/views/conferences/_tickets.html.haml" + - "app/views/conferences/_venue.html.haml" + - "app/views/conferences/index.html.haml" + - "app/views/layouts/_admin.html.haml" + - "app/views/layouts/_navigation.html.haml" + - "app/views/layouts/_user_menu.html.haml" + - "app/views/layouts/application.html.haml" + - "app/views/proposals/_encouragement_text.html.haml" + - "app/views/proposals/new.html.haml" + - "app/views/proposals/registrations.html.haml" + - "app/views/proposals/show.html.haml" + - "app/views/schedules/events.html.haml" + - "app/views/schedules/show.xml.haml" + - "app/views/tickets/index.html.haml" + + # Offense count: 14 + ConsecutiveSilentScripts: + exclude: + - "app/views/admin/events/index.html.haml" + - "app/views/admin/schedules/_day_tab.html.haml" + - "app/views/admin/schedules/_event.html.haml" + - "app/views/admin/versions/_object_desc_and_link.html.haml" + - "app/views/schedules/_carousel.html.haml" + + # Offense count: 2 + FinalNewline: + exclude: + - "app/views/admin/registrations/index.csv.haml" + - "app/views/layouts/_admin.html.haml" + + # Offense count: 1 + ImplicitDiv: + exclude: + - "app/views/admin/registrations/index.html.haml" + + # Offense count: 9 + MultilinePipe: + exclude: + - "app/views/admin/schedules/_day_tab.html.haml" + - "app/views/admin/schedules/_event.html.haml" + - "app/views/schedules/_carousel.html.haml" + - "app/views/schedules/_event.html.haml" + - "app/views/schedules/_schedule_item.html.haml" + + # Offense count: 38 + TrailingWhitespace: + exclude: + - "app/views/admin/users/_form.html.haml" + - "app/views/admin/users/index.html.haml" + - "app/views/admin/users/show.html.haml" + - "app/views/admin/volunteers/index.html.haml" + - "app/views/admin/volunteers/show.html.haml" + - "app/views/conference_registrations/_volunteer.html.haml" + - "app/views/devise/passwords/new.html.haml" + - "app/views/payments/new.html.haml" + - "app/views/tickets/index.html.haml" + + # Offense count: 7 + ClassAttributeWithStaticValue: + exclude: + - "app/views/conferences/_gallery.html.haml" + - "app/views/layouts/_navigation.html.haml" + - "app/views/schedules/events.html.haml" \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index ae8030b0..0be912e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,4 +25,5 @@ before_script: - RAILS_ENV=test bundle exec rake db:migrate --trace script: - 'bundle exec rubocop -Dc .rubocop.yml' + - 'bundle exec haml-lint app/views' - 'bundle exec rspec --color --format documentation' diff --git a/Gemfile b/Gemfile index 1b882aab..497c56b1 100644 --- a/Gemfile +++ b/Gemfile @@ -201,6 +201,7 @@ group :development do # to launch specs when files are modified gem 'guard-rspec', '~> 4.2.8' gem 'spring-commands-rspec' + gem 'haml_lint', '~> 0.24.0' # for static code analisys gem 'rubocop', '~> 0.48.1', require: false # as database diff --git a/Gemfile.lock b/Gemfile.lock index 3bc396d4..90ae82f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -209,6 +209,12 @@ GEM activesupport (>= 4.0.1) haml (>= 3.1, < 5.0) railties (>= 4.0.1) + haml_lint (0.24.0) + haml (>= 4.0, < 5.1) + rainbow + rake (>= 10, < 13) + rubocop (>= 0.47.0) + sysexits (~> 1.1) hashie (2.1.1) hike (1.2.3) hoptoad_notifier (2.4.11) @@ -488,6 +494,7 @@ GEM dante (>= 0.2.0) multi_json (>= 1.0.0) stripe (>= 1.31.0, <= 1.43) + sysexits (1.2.0) term-ansicolor (1.3.2) tins (~> 1.0) thor (0.19.1) @@ -573,6 +580,7 @@ DEPENDENCIES gravtastic guard-rspec (~> 4.2.8) haml-rails + haml_lint (~> 0.24.0) hoptoad_notifier (~> 2.3) iso-639 jquery-datatables-rails (~> 2.2.1)