Sha256: 3a02d8e8f77903a333e9a2386e32ed6bfa99d3595e497e932a74ca3bd3172ba6

Contents?: true

Size: 1.55 KB

Versions: 2

Compression:

Stored size: 1.55 KB

Contents

= deadweight

Deadweight is RCov for CSS, kind of. Given a set of stylesheets and a set of URLs, it determines which selectors are actually used and reports which can be "safely" deleted.

Simple example:
  # lib/tasks/deadweight.rake

  require 'deadweight'

  description "run Deadweight (script/server needs to be running)"
  task :deadweight do
    dw = Deadweight.new
    dw.stylesheets = %w( /stylesheets/style.css )
    dw.pages = %w( / /page/1 /about )
    puts dw.run
  end

This will output all unused selectors, one per line.

Things to note:
- By default, it looks at http://localhost:3000.
- It's completely dumb about any classes, IDs or tags that are only added by your Javascript layer, but you can filter them out by setting +ignore_selectors+.
- You can optionally tell it to use Mechanize, and set up more complicated targets for scraping by specifying them as Procs.

More complex example:

  # lib/tasks/deadweight.rake

  require 'deadweight'

  description "run Deadweight on staging server"
  task :deadweight do
    dw = Deadweight.new

    dw.mechanize = true

    dw.root = 'http://staging.example.com'

    dw.stylesheets = %w( /stylesheets/style.css )

    dw.pages = %w( / /page/1 /about )

    dw.pages << proc {
      fetch('/login')
      form = agent.page.forms.first
      form.username = 'username'
      form.password = 'password'
      agent.submit(form)
      fetch('/secret-page')
    }

    dw.ignore_selectors = /hover|lightbox|superimposed_kittens/

    puts dw.run
  end

== Copyright

Copyright (c) 2009 Aanand Prasad. See LICENSE for details.

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
aanand-deadweight-0.0.1 README.rdoc
aanand-deadweight-0.0.2 README.rdoc