Module: Classifieds::Utils

Included in:
Main, Parser
Defined in:
lib/classifieds/utils.rb

Instance Method Summary collapse

Instance Method Details

#classifiedsObject



5
6
7
# File 'lib/classifieds/utils.rb', line 5

def classifieds
  Parser.parse(File.read(File.join(root_directory, SOURCE_FILE)).chomp)
end

#classifieds_repository?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/classifieds/utils.rb', line 9

def classifieds_repository?
  !!root_directory
end

#decrypt_data(data) ⇒ Object



38
39
40
41
# File 'lib/classifieds/utils.rb', line 38

def decrypt_data(data)
  encryptor = Encryptor.new(@password, root_directory.split('/').pop)
  encryptor.decrypt(data)
end

#decrypted?(file) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/classifieds/utils.rb', line 49

def decrypted?(file)
  !encrypted?(file)
end

#encrypt_data(data) ⇒ Object



33
34
35
36
# File 'lib/classifieds/utils.rb', line 33

def encrypt_data(data)
  encryptor = Encryptor.new(@password, root_directory.split('/').pop)
  encryptor.encrypt(data)
end

#encrypted?(file) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
47
# File 'lib/classifieds/utils.rb', line 43

def encrypted?(file)
  File.open(file, 'r') do |f|
    !!f.read(@prefix.size).to_s.match(/\A#{@prefix}\z/)
  end
end

#keygenerated?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/classifieds/utils.rb', line 13

def keygenerated?
  File.exists?(File.join(root_directory, PUBLIC_KEY_PATH)) && File.exists?(File.join(root_directory, COMMON_KEY_PATH))
end

#root_directoryObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/classifieds/utils.rb', line 17

def root_directory
  @root_directory ||=
    begin
      target_directory = File.expand_path(Dir.pwd)
      until target_directory == '/' do
        Find.find(target_directory) do |path|
          return target_directory if path =~ %r|/#{Regexp.escape(SOURCE_FILE)}$|
          Find.prune if path =~ %r|^#{target_directory}/|
        end
        target_directory = File.expand_path('..', target_directory)
      end

      nil
    end
end