diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index bd60467..3a38adc 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -78,10 +78,6 @@ RSpec/AnyInstance: Exclude: - 'spec/lib/sharepoint/client_methods_spec.rb' -Security/Eval: - Exclude: - - 'lib/sharepoint/client.rb' - # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: always, conditionals @@ -96,10 +92,6 @@ Style/BarePercentLiterals: Exclude: - 'lib/sharepoint/client.rb' -Style/DocumentDynamicEvalDefinition: - Exclude: - - 'lib/sharepoint/client.rb' - # Configuration parameters: AllowedConstants. Style/Documentation: Exclude: @@ -107,11 +99,6 @@ Style/Documentation: - 'lib/sharepoint/errors.rb' - 'lib/sharepoint/spec_helpers.rb' -# This cop supports safe autocorrection (--autocorrect). -Style/EvalWithLocation: - Exclude: - - 'lib/sharepoint/client.rb' - # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: EnforcedStyle. # SupportedStyles: always, always_true, never diff --git a/lib/sharepoint/client.rb b/lib/sharepoint/client.rb index e585476..1ddec8d 100644 --- a/lib/sharepoint/client.rb +++ b/lib/sharepoint/client.rb @@ -607,11 +607,14 @@ def uri_unescape(uri) URI::DEFAULT_PARSER.unescape(uri.gsub('%5B', '[').gsub('%5D', ']')) end + # TODO: Try to remove `eval` from this method. Otherwise, fix offenses + # rubocop:disable Security/Eval, Style/DocumentDynamicEvalDefinition, Style/EvalWithLocation, Style/PercentLiteralDelimiters def string_unescape(s) s.gsub!(/\\(?:[abfnrtv])/, '') # remove control chars s.gsub!('"', '\"') # escape double quotes eval %Q{"#{s}"} end + # rubocop:enable Security/Eval, Style/DocumentDynamicEvalDefinition, Style/EvalWithLocation, Style/PercentLiteralDelimiters def utf8_encode(s) s.force_encoding('UTF-8') unless s.nil?