Class: ColorParser::Page

Inherits:
Object
  • Object
show all
Defined in:
lib/color_parser/page.rb

Overview

a webpage

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ Page

Returns a new instance of Page.



6
7
8
9
10
11
# File 'lib/color_parser/page.rb', line 6

def initialize(url)
  @style_document = self.class.style_document.new(url)

  @url  = @style_document.location.href
  @text = @style_document.text
end

Instance Attribute Details

#textObject (readonly)

Returns the value of attribute text.



4
5
6
# File 'lib/color_parser/page.rb', line 4

def text
  @text
end

#urlObject (readonly)

Returns the value of attribute url.



4
5
6
# File 'lib/color_parser/page.rb', line 4

def url
  @url
end

Class Method Details

.style_documentObject



37
38
39
# File 'lib/color_parser/page.rb', line 37

def self.style_document
  @style_document ||= ::Stylesheet::Document
end

.style_document=(style_document) ⇒ Object



41
42
43
# File 'lib/color_parser/page.rb', line 41

def self.style_document=(style_document)
  @style_document = style_document
end

Instance Method Details

#colorsObject



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/color_parser/page.rb', line 19

def colors
  unless @colors
    @colors = {}
    stylesheets.each do |style| 
      style.colors.each do |color, freq|
        @colors[color] ? @colors[color] += freq : @colors[color] = freq
      end
    end
  end

  @colors
end

#colors_by_frequencyObject



32
33
34
# File 'lib/color_parser/page.rb', line 32

def colors_by_frequency
  colors.sort {|a,b| b[1]<=>a[1] }.map {|clr| clr.first }
end

#stylesheetsObject



13
14
15
16
17
# File 'lib/color_parser/page.rb', line 13

def stylesheets
  @stylesheets ||= @style_document.style_sheets.map do |style_sheet|
    Stylesheet.new(style_sheet)
  end
end