class Spellr::Language

Attributes

key[R]
name[R]

Public Class Methods

new(name, key: name[0], includes: [], hashbangs: [], locale: [], addable: true) click to toggle source
# File lib/spellr/language.rb, line 12
def initialize(name, key: name[0], includes: [], hashbangs: [], locale: [], addable: true) # rubocop:disable Metrics/ParameterLists
  @name = name
  @key = key
  @includes = includes + hashbangs.map { |h| "#!:#{h}" }
  @locales = Array(locale)
  @addable = addable
end

Public Instance Methods

addable?() click to toggle source
# File lib/spellr/language.rb, line 20
def addable?
  @addable
end
matches?(file) click to toggle source
# File lib/spellr/language.rb, line 35
def matches?(file)
  return true if @includes.empty?

  fast_ignore.allowed?(file.to_s, directory: false, content: file.first_line)
end
project_wordlist() click to toggle source
# File lib/spellr/language.rb, line 28
def project_wordlist
  @project_wordlist ||= Spellr::Wordlist.new(
    Spellr.pwd.join('.spellr_wordlists', "#{name}.txt"),
    name: name
  )
end
wordlists() click to toggle source
# File lib/spellr/language.rb, line 24
def wordlists
  default_wordlists.select(&:exist?)
end

Private Instance Methods

default_wordlists() click to toggle source
# File lib/spellr/language.rb, line 63
def default_wordlists
  [
    gem_wordlist,
    *locale_wordlists,
    project_wordlist
  ]
end
fast_ignore() click to toggle source
# File lib/spellr/language.rb, line 43
def fast_ignore
  @fast_ignore ||= FastIgnore.new(
    include_rules: @includes, gitignore: false, root: Spellr.pwd_s
  )
end
gem_wordlist() click to toggle source
# File lib/spellr/language.rb, line 49
def gem_wordlist
  @gem_wordlist ||= Spellr::Wordlist.new(
    Pathname.new(__dir__).parent.parent.join('wordlists', "#{name}.txt")
  )
end
locale_wordlists() click to toggle source
# File lib/spellr/language.rb, line 55
def locale_wordlists
  @locale_wordlists ||= @locales.map do |locale|
    Spellr::Wordlist.new(
      Pathname.new(__dir__).parent.parent.join('wordlists', name.to_s, "#{locale}.txt")
    )
  end
end