Module: CompassRails4

Extended by:
CompassRails4
Included in:
CompassRails4
Defined in:
lib/compass-rails4.rb,
lib/compass-rails4/version.rb,
lib/compass-rails4/configuration.rb,
lib/compass-rails4/patches/sass_importer.rb,
lib/compass-rails4/patches/sprite_importer.rb,
lib/compass-rails4/railtie.rb

Defined Under Namespace

Modules: Configuration, SassTemplate Classes: Railtie, SpriteImporter

Constant Summary collapse

RAILS_4 =
%r{^4.[0|1]}
VERSION =

based on 1.1.7

"0.1.1"

Instance Method Summary collapse

Instance Method Details

#appObject



22
23
24
# File 'lib/compass-rails4.rb', line 22

def app
  ::Rails.application
end

#boot_configObject



128
129
130
131
132
133
134
135
136
# File 'lib/compass-rails4.rb', line 128

def boot_config
  config = if (config_file = Compass.detect_configuration_file) && (config_data = Compass.configuration_for(config_file))
    config_data
  else
    Compass::Configuration::Data.new("compass_rails_boot")
  end
  config.top_level.project_type = :rails
  config
end

#booted!Object



67
68
69
# File 'lib/compass-rails4.rb', line 67

def booted!
  CompassRails4.const_set(:BOOTED, true)
end

#booted?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/compass-rails4.rb', line 71

def booted?
  defined?(CompassRails4::BOOTED) && CompassRails4::BOOTED
end

#check_for_double_boot!Object



98
99
100
101
102
103
104
# File 'lib/compass-rails4.rb', line 98

def check_for_double_boot!
  if booted?
    Compass::Util.compass_warn("Warning: Compass was booted twice. Compass-rails4 has got your back; please remove your compass initializer.")
  else
    booted!
  end
end

#configurationObject



75
76
77
78
79
80
# File 'lib/compass-rails4.rb', line 75

def configuration
  load_rails
  config = Compass::Configuration::Data.new('rails')
  config.extend(Configuration::AssetPipeline)
  config
end

#configure_rails!(app) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/compass-rails4.rb', line 106

def configure_rails!(app)
  return unless app.config.respond_to?(:sass)
  sass_config = app.config.sass
  compass_config = app.config.compass

  sass_config.load_paths.concat(compass_config.sass_load_paths)

  { :output_style => :style,
    :line_comments => :line_comments,
    :cache => :cache,
    :disable_warnings => :quiet,
    :preferred_syntax => :preferred_syntax
  }.each do |compass_option, sass_option|
    set_maybe sass_config, compass_config, sass_option, compass_option
  end
  if compass_config.sass_options
    compass_config.sass_options.each do |config, value|
      sass_config.send("#{config}=", value)
    end
  end
end

#contextObject



40
41
42
43
# File 'lib/compass-rails4.rb', line 40

def context
  load_rails
  @context ||= sprockets.context_class
end

#envObject



82
83
84
# File 'lib/compass-rails4.rb', line 82

def env
  env_production? ? :production : :development
end

#env_production?Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/compass-rails4.rb', line 90

def env_production?
  rails? && ::Rails.env.production?
end

#load_railsObject



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/compass-rails4.rb', line 10

def load_rails
  return if rails_loaded?

  rails_config_path = Dir.pwd
  until File.exists?(File.join(rails_config_path, 'config', 'environment.rb')) do
    raise 'Rails application not found' if rails_config_path == '/'
    rails_config_path = File.join(rails_config_path, '..')
  end

  require "#{rails_config_path}/config/environment"
end

#prefixObject



86
87
88
# File 'lib/compass-rails4.rb', line 86

def prefix
  rails_config.assets.prefix
end

#rails4?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/compass-rails4.rb', line 59

def rails4?
  rails? && version_match(RAILS_4)
end

#rails?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/compass-rails4.rb', line 45

def rails?
  defined?(::Rails)
end

#rails_configObject



26
27
28
# File 'lib/compass-rails4.rb', line 26

def rails_config
  app.config
end

#rails_loaded?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/compass-rails4.rb', line 49

def rails_loaded?
  rails? && app
end

#rails_versionObject



53
54
55
56
57
# File 'lib/compass-rails4.rb', line 53

def rails_version
  rails_spec = Gem.loaded_specs["railties"]
  raise "You have to require Rails before compass" unless rails_spec
  rails_spec.version.to_s
end

#rootObject



94
95
96
# File 'lib/compass-rails4.rb', line 94

def root
  @root ||= rails? ? ::Rails.root : Pathname.new(Dir.pwd)
end

#sass_configObject



30
31
32
33
# File 'lib/compass-rails4.rb', line 30

def sass_config
  load_rails
  rails_config.sass
end

#sprocketsObject



35
36
37
38
# File 'lib/compass-rails4.rb', line 35

def sprockets
  load_rails
  @sprockets ||= app.assets
end

#version_match(version) ⇒ Object



63
64
65
# File 'lib/compass-rails4.rb', line 63

def version_match(version)
  !(rails_version =~ version).nil?
end