Class: Csspin::VendorWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/csspin/vendor_writer.rb

Instance Method Summary collapse

Constructor Details

#initialize(root: Dir.pwd) ⇒ VendorWriter

Returns a new instance of VendorWriter.



7
8
9
# File 'lib/csspin/vendor_writer.rb', line 7

def initialize(root: Dir.pwd)
  @root = root
end

Instance Method Details

#write(package_name:, content:) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/csspin/vendor_writer.rb', line 11

def write(package_name:, content:)
  package_name = package_name.tr("/", "-").gsub(/[^a-zA-Z0-9\-_]/, "")

  dir = File.join(@root, "vendor/assets/stylesheets")
  FileUtils.mkdir_p(dir)

  path = File.join(dir, "#{package_name}.css")
  File.write(path, content)
  path
rescue Errno::ENOENT, Errno::EACCES => e
  raise "Failed to write vendor file: #{e.message}"
end