Sha256: bfa204c59702fdba43a8cbb1bb34494b24e05f7b8ba43b226c982193e5e3f713

Contents?: true

Size: 1.07 KB

Versions: 6

Compression:

Stored size: 1.07 KB

Contents

require_relative '../classes/error'

module ClassName
  def self.check_class_name_res(error_bin, path)
    bad_class_lines = check_class_name(path)
    bad_class_lines.each { |line| error_bin << line if !bad_class_lines.empty? }

    error_bin
  end

  private_class_method def self.raise_err(line, message, path)
    error = Error.new(line, message, path)
    naming_err = error.print_err(line, message, path) if error
    naming_err
  end

  def self.bad_class_name(crime)
    fes_pat = /[\s]*(class)[\s]*[\d]*[\-]*[a-z]+[\-]*[\w\W]*/
    sec_pat = /[\s]*(class)[\s]*[\p{Alpha}]+[\-]+[\p{Alpha}]+/

    commented_line = crime.match?(%r{^\W+[\/\/]})

    !commented_line && (fes_pat.match?(crime) || sec_pat.match?(crime))
  end

  def self.check_class_name(file)
    bad_class_named_lines = []
    line_check = lambda { |line|
      bad_class_named_lines << line.number if bad_class_name(line.content)
    }
    file.lines.each(&line_check)

    err_type = 'CLASS_NAME_ERR'
    bad_class_named_lines.each { |line| raise_err(line, err_type, file.filename) }

    bad_class_named_lines
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
jscop-0.1.9 lib/jscop/class_name.rb
jscop-0.1.8 lib/jscop/class_name.rb
jscop-0.1.7 lib/jscop/class_name.rb
jscop-0.1.6 lib/jscop/class_name.rb
jscop-0.1.5 lib/jscop/class_name.rb
jscop-0.1.4 lib/jscop/class_name.rb