wrstudios/frodata

View on GitHub

Showing 507 of 507 total issues

Line is too long. [87/80]
Open

          # Doing lazy loading here because instantiating each object takes a long time
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

Unnecessary utf-8 encoding comment.
Open

# coding: utf-8
Severity: Minor
Found in frodata.gemspec by rubocop

Line is too long. [89/80]
Open

          property_name, property = schema.send(:process_property_from_xml, property_xml)
Severity: Minor
Found in lib/frodata/schema/complex_type.rb by rubocop

Redundant RuntimeError argument can be removed.
Open

        raise RuntimeError, "Unknown property type: #{prop_type}"
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop checks for RuntimeError as the argument of raise/fail.

It checks for code like this:

Example:

# Bad
raise RuntimeError, 'message'

# Bad
raise RuntimeError.new('message')

# Good
raise 'message'

Line is too long. [84/80]
Open

        Hash[type_definition.xpath('./Member').map.with_index do |member_xml, index|
Severity: Minor
Found in lib/frodata/schema/enum_type.rb by rubocop

Space inside parentheses detected.
Open

    def set_property_lazy_load(name, xml_value )
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

Checks for spaces inside ordinary round parentheses.

Example:

# bad
f( 3)
g = (a + 3 )

# good
f(3)
g = (a + 3)

private (on line 236) does not make singleton methods private. Use private_class_method or private inside a class << self block instead.
Open

    def self.extract_metadata(json)
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop checks for private or protected access modifiers which are applied to a singleton method. These access modifiers do not make singleton methods private/protected. private_class_method can be used for that.

Example:

# bad

class C
  private

  def self.method
    puts 'hi'
  end
end

Example:

# good

class C
  def self.method
    puts 'hi'
  end

  private_class_method :method
end

Example:

# good

class C
  class << self
    private

    def method
      puts 'hi'
    end
  end
end

Use each_key instead of each.
Open

        schema.navigation_properties[name].each do |nav_name, details|
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop checks for uses of each_key and each_value Hash methods.

Note: If you have an array of two-element arrays, you can put parentheses around the block arguments to indicate that you're not working with a hash, and suppress RuboCop offenses.

Example:

# bad
hash.keys.each { |k| p k }
hash.values.each { |v| p v }
hash.each { |k, _v| p k }
hash.each { |_k, v| p v }

# good
hash.each_key { |k| p k }
hash.each_value { |v| p v }

Missing top-level module documentation comment.
Open

    module InBatches
Severity: Minor
Found in lib/frodata/query/in_batches.rb by rubocop

This cop checks for missing top-level documentation of classes and modules. Classes with no body are exempt from the check and so are namespace modules - modules that have nothing in their bodies except classes, other modules, or constant definitions.

The documentation requirement is annulled if the class or module has a "#:nodoc:" comment next to it. Likewise, "#:nodoc: all" does the same for all its children.

Example:

# bad
class Person
  # ...
end

# good
# Description/Explanation of Person class
class Person
  # ...
end

Missing top-level module documentation comment.
Open

      module DateFunctions

This cop checks for missing top-level documentation of classes and modules. Classes with no body are exempt from the check and so are namespace modules - modules that have nothing in their bodies except classes, other modules, or constant definitions.

The documentation requirement is annulled if the class or module has a "#:nodoc:" comment next to it. Likewise, "#:nodoc: all" does the same for all its children.

Example:

# bad
class Person
  # ...
end

# good
# Description/Explanation of Person class
class Person
  # ...
end

Unused block argument - val. If it's necessary, use _ or _val as an argument name to indicate that it won't be used.
Open

      json.delete_if { |key, val| key =~ /@odata/ }
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop checks for unused block arguments.

Example:

# bad

do_something do |used, unused|
  puts used
end

do_something do |bar|
  puts :foo
end

define_method(:foo) do |bar|
  puts :baz
end

Example:

#good

do_something do |used, _unused|
  puts used
end

do_something do
  puts :foo
end

define_method(:foo) do |_bar|
  puts :baz
end

Missing space after #.
Open

    #def and(criteria)
Severity: Minor
Found in lib/frodata/query.rb by rubocop

This cop checks whether comments have a leading space after the # denoting the start of the comment. The leading space is not required for some RDoc special syntax, like #++, #--, #:nodoc, =begin- and =end comments, "shebang" directives, or rackup options.

Example:

# bad
#Some comment

# good
# Some comment

Use attr_reader to define trivial reader methods.
Open

      def type_definition
Severity: Minor
Found in lib/frodata/schema/complex_type.rb by rubocop

This cop looks for trivial reader/writer methods, that could have been created with the attr_* family of functions automatically.

Example:

# bad
def foo
  @foo
end

def bar=(val)
  @bar = val
end

def self.baz
  @baz
end

# good
attr_reader :foo
attr_writer :bar

class << self
  attr_reader :baz
end

private (on line 236) does not make singleton methods private. Use private_class_method or private inside a class << self block instead.
Open

    def self.process_metadata(entity, metadata)
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop checks for private or protected access modifiers which are applied to a singleton method. These access modifiers do not make singleton methods private/protected. private_class_method can be used for that.

Example:

# bad

class C
  private

  def self.method
    puts 'hi'
  end
end

Example:

# good

class C
  def self.method
    puts 'hi'
  end

  private_class_method :method
end

Example:

# good

class C
  class << self
    private

    def method
      puts 'hi'
    end
  end
end

Line is too long. [102/80]
Open

            next unless node.attributes['type'].value =~ /^application\/atom\+xml;type=(feed|entry)$/i
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

Line is too long. [82/80]
Open

    # ComplexTypes are used in FrOData to either encapsulate richer data types for
Severity: Minor
Found in lib/frodata/schema/complex_type.rb by rubocop

Line is too long. [83/80]
Open

        property = instantiate_property(prop_name, properties_xml_value[prop_name])
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

Use Hash#key? instead of Hash#has_key?.
Open

      if properties_xml_value.has_key?(prop_name)
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop (by default) checks for uses of methods Hash#haskey? and Hash#hasvalue? where it enforces Hash#key? and Hash#value? It is configurable to enforce the inverse, using verbose method names also.

Example: EnforcedStyle: short (default)

# bad Hash#haskey? Hash#hasvalue?

# good Hash#key? Hash#value?

Example: EnforcedStyle: verbose

# bad Hash#key? Hash#value?

# good Hash#haskey? Hash#hasvalue?

Use Hash#key? instead of Hash#has_key?.
Open

      if properties.has_key? prop_name
Severity: Minor
Found in lib/frodata/entity.rb by rubocop

This cop (by default) checks for uses of methods Hash#haskey? and Hash#hasvalue? where it enforces Hash#key? and Hash#value? It is configurable to enforce the inverse, using verbose method names also.

Example: EnforcedStyle: short (default)

# bad Hash#haskey? Hash#hasvalue?

# good Hash#key? Hash#value?

Example: EnforcedStyle: verbose

# bad Hash#key? Hash#value?

# good Hash#haskey? Hash#hasvalue?

Dependencies should be sorted in an alphabetical order within their section of the gemspec. Dependency equivalent-xml should appear before timecop.
Open

  spec.add_development_dependency 'equivalent-xml', '~> 0.6'
Severity: Minor
Found in frodata.gemspec by rubocop

Dependencies in the gemspec should be alphabetically sorted.

Example:

# bad
spec.add_dependency 'rubocop'
spec.add_dependency 'rspec'

# good
spec.add_dependency 'rspec'
spec.add_dependency 'rubocop'

# good
spec.add_dependency 'rubocop'

spec.add_dependency 'rspec'

# bad
spec.add_development_dependency 'rubocop'
spec.add_development_dependency 'rspec'

# good
spec.add_development_dependency 'rspec'
spec.add_development_dependency 'rubocop'

# good
spec.add_development_dependency 'rubocop'

spec.add_development_dependency 'rspec'

# bad
spec.add_runtime_dependency 'rubocop'
spec.add_runtime_dependency 'rspec'

# good
spec.add_runtime_dependency 'rspec'
spec.add_runtime_dependency 'rubocop'

# good
spec.add_runtime_dependency 'rubocop'

spec.add_runtime_dependency 'rspec'

# good only if TreatCommentsAsGroupSeparators is true
# For code quality
spec.add_dependency 'rubocop'
# For tests
spec.add_dependency 'rspec'
Severity
Category
Status
Source
Language