Class: WebifyRuby::Convert

Inherits:
Object
  • Object
show all
Defined in:
lib/webify_ruby/convert.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file, dir: nil, css: nil, link_to: nil) ⇒ Convert

Returns a new instance of Convert.

Raises:

  • (Errno::ENOENT)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/webify_ruby/convert.rb', line 10

def initialize(file, dir: nil, css: nil, link_to: nil)
  [file, dir]

  @desired_dir = dir
  @css = css
  @link_to = link_to

  raise Errno::ENOENT, "The font file '#{file}' does not exist" unless File.exists?(file)
  @original_file = file

  raise Error, "The font file '#{file}' is not valid" unless WebifyRuby::EXT.include? File.extname(@original_file)

  @original_dir = File.dirname(@original_file)
  raise Errno::ENOENT, "Can't find directory '#{@original_dir}'" unless File.directory? @original_dir

  @result_dir = Dir.mktmpdir(nil, destination_dir)

  FileUtils.cp(@original_file, @result_dir)

  @file = File.join(@result_dir, File.basename(@original_file))

  process

  if affected_files.to_a.length == 0
    WebifyRuby.logger.info "Host did not create any files\n@command\n#{@command}\n@output\n#{@output}\n"
  end

  generate_css unless @css.nil?
end

Instance Attribute Details

#commandObject (readonly)

Returns the value of attribute command.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def command
  @command
end

#cssObject (readonly)

Returns the value of attribute css.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def css
  @css
end

#desired_dirObject (readonly)

Returns the value of attribute desired_dir.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def desired_dir
  @desired_dir
end

#fileObject (readonly)

Returns the value of attribute file.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def file
  @file
end

#generatedObject (readonly)

Returns the value of attribute generated.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def generated
  @generated
end

Returns the value of attribute link_to.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def link_to
  @link_to
end

#original_dirObject (readonly)

Returns the value of attribute original_dir.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def original_dir
  @original_dir
end

#original_fileObject (readonly)

Returns the value of attribute original_file.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def original_file
  @original_file
end

#outputObject (readonly)

Returns the value of attribute output.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def output
  @output
end

#result_dirObject (readonly)

Returns the value of attribute result_dir.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def result_dir
  @result_dir
end

#stylesObject (readonly)

Returns the value of attribute styles.



8
9
10
# File 'lib/webify_ruby/convert.rb', line 8

def styles
  @styles
end

Instance Method Details

#affected_filesObject



40
41
42
# File 'lib/webify_ruby/convert.rb', line 40

def affected_files
  Dir[@result_dir + '/*.{ttf,eot,woff,svg}'].reject { |f| f[@file] }
end

#generate_cssObject



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/webify_ruby/convert.rb', line 49

def generate_css
  needs = affected_files.map { |m| File.extname(m)[1..-1].to_sym }

  if should_write_css?
    WebifyRuby::Css.relative_from = @link_to ? nil : @css
    WebifyRuby::Css.link_to = @link_to
  end

  css = WebifyRuby::Css.new(File.basename(@file, ".*"), @file, *needs)
  @styles = css.result

  css.write @css if should_write_css?
end

#is_valid?Boolean

Returns:

  • (Boolean)


44
45
46
47
# File 'lib/webify_ruby/convert.rb', line 44

def is_valid?
  false if not @output.include? 'Generating' or @output.include? 'Failed'
  true
end