Module: Compass::Configuration::Serialization::InstanceMethods

Defined in:
lib/compass/configuration/serialization.rb

Instance Method Summary collapse

Instance Method Details

#issue_deprecation_warningsObject



77
78
79
80
81
# File 'lib/compass/configuration/serialization.rb', line 77

def issue_deprecation_warnings
  if http_images_path == :relative
    $stderr.puts "DEPRECATION WARNING: Please set relative_assets = true to enable relative paths."
  end
end

#parse(config_file) ⇒ Object

parses a configuration file which is a ruby script



26
27
28
29
30
31
32
33
# File 'lib/compass/configuration/serialization.rb', line 26

def parse(config_file)
  unless File.readable?(config_file)
    raise Compass::Error, "Configuration file, #{config_file}, not found or not readable."
  end
  open(config_file) do |f|
    parse_string(f.read, config_file)
  end
end

#parse_string(contents, filename) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/compass/configuration/serialization.rb', line 35

def parse_string(contents, filename)
  bind = binding
  eval(contents, bind, filename)
  ATTRIBUTES.each do |prop|
    value = eval(prop.to_s, bind) rescue nil
    self.send("#{prop}=", value) if value
  end
  if @added_import_paths
    self.additional_import_paths ||= []
    self.additional_import_paths += @added_import_paths
  end
  issue_deprecation_warnings
end

#serializeObject



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/compass/configuration/serialization.rb', line 49

def serialize
  contents = ""
  required_libraries.each do |lib|
    contents << %Q{require '#{lib}'\n}
  end
  contents << "# Require any additional compass plugins here.\n"
  contents << "\n" if required_libraries.any?
  ATTRIBUTES.each do |prop|
    value = send("#{prop}_without_default")
    if value.is_a?(Proc)
      $stderr.puts "WARNING: #{prop} is code and cannot be written to a file. You'll need to copy it yourself."
    end
    if respond_to?("comment_for_#{prop}")
      contents << send("comment_for_#{prop}")
    end
    if block_given? && (to_emit = yield(prop, value))
      contents << to_emit
    else
      contents << serialize_property(prop, value) unless value.nil?
    end
  end
  contents
end

#serialize_property(prop, value) ⇒ Object



73
74
75
# File 'lib/compass/configuration/serialization.rb', line 73

def serialize_property(prop, value)
  %Q(#{prop} = #{value.inspect}\n)
end