Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Ruby CSS Parser

v1.3.5

latest commit 51d0100ece
Michael Grosser grosser authored
Octocat-spinner-32 lib v1.3.5 August 24, 2013
Octocat-spinner-32 test Merge pull request #42 from mzsanford/media_query_support August 05, 2013
Octocat-spinner-32 .travis.yml apply ocd March 12, 2013
Octocat-spinner-32 CHANGELOG Version bump September 09, 2011
Octocat-spinner-32 Gemfile cleanup March 12, 2013
Octocat-spinner-32 Gemfile.lock v1.3.5 August 24, 2013
Octocat-spinner-32 MIT-LICENSE cleanup March 12, 2013
Octocat-spinner-32 Rakefile release March 12, 2013
Octocat-spinner-32 Readme.md cleanup March 12, 2013
Octocat-spinner-32 css_parser.gemspec fix them crazy requires and only define version once March 12, 2013
Readme.md

Ruby CSS Parser

Load, parse and cascade CSS rule sets in Ruby.

Setup

gem install css_parser

Usage

require 'css_parser'
include CssParser

parser = CssParser::Parser.new
parser.load_uri!('http://example.com/styles/style.css')

parser = CssParser::Parser.new
parser.load_uri!('file://home/user/styles/style.css')

# load a remote file, setting the base_uri and media_types
parser.load_uri!('../style.css', {:base_uri => 'http://example.com/styles/inc/', :media_types => [:screen, :handheld])

# load a local file, setting the base_dir and media_types
parser.load_file!('print.css', '~/styles/', :print)

# lookup a rule by a selector
parser.find_by_selector('#content')
#=> 'font-size: 13px; line-height: 1.2;'

# lookup a rule by a selector and media type
parser.find_by_selector('#content', [:screen, :handheld])

# iterate through selectors by media type
parser.each_selector(:screen) do |selector, declarations, specificity|
  ...
end

# add a block of CSS
css = <<-EOT
  body { margin: 0 1em; }
EOT

parser.add_block!(css)

# output all CSS rules in a single stylesheet
parser.to_s
=> #content { font-size: 13px; line-height: 1.2; }
   body { margin: 0 1em; }

Testing

bundle
bundle exec rake

Runs on Ruby 1.8.7, Ruby 1.9.2, Ruby 1.9.3, REE 1.8.7 and JRuby.

Credits

By Alex Dunae (dunae.ca, e-mail 'code' at the same domain), 2007-11.

License: MIT

Thanks to all the wonderful contributors for their updates.

Made on Vancouver Island.

Build Status

Something went wrong with that request. Please try again.