class DocomoCss::Stylesheet

Attributes

path[R]

Public Class Methods

new(href) click to toggle source
# File lib/docomo_css/stylesheet.rb, line 5
def initialize(href)
  @href = href
  @path = href && path_from_href(href)
end

Public Instance Methods

asset_css() click to toggle source
# File lib/docomo_css/stylesheet.rb, line 14
def asset_css
  return nil unless Rails.application.config.assets.prefix

  path, query = extract_path_and_query(@href)
  path = path.sub(/^#{ Rails.application.config.assets.prefix }/, '').
              sub(/^\//, '')

  if Rails.application.config.assets.digest
    path = path.sub(/(.+)\-\w+(.+)/, '\1\2')
  end

  asset = Rails.application.assets.
    find_asset(path, :bundle => !body_only?(query))
  asset ? asset.to_s : nil
end
valid?() click to toggle source
# File lib/docomo_css/stylesheet.rb, line 10
def valid?
  path && FileTest.exist?(path)
end

Private Instance Methods

body_only?(query) click to toggle source
# File lib/docomo_css/stylesheet.rb, line 47
def body_only?(query)
  query =~ /body=(1|t)/
end
extract_path_and_query(href) click to toggle source
# File lib/docomo_css/stylesheet.rb, line 38
def extract_path_and_query(href)
  if href =~ /(.+)\?(.+)/
    path, query = $1, $2
  else
    path, query = href, ''
  end
  [path, query]
end
path_from_href(href) click to toggle source
# File lib/docomo_css/stylesheet.rb, line 32
def path_from_href(href)
  base_path = href.gsub(ActionController::Base.asset_host.to_s, '').
                   gsub(/\?\d+/, '')
  File.join(Rails.root, 'public', base_path)
end