Class: Page

Inherits:
BaseObject show all
Includes:
YAMLInteraction
Defined in:
lib/html_compilation/classes/objects/page.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from YAMLInteraction

#key_value_add, #read_yaml

Methods inherited from BaseObject

#initialize, #set_value

Constructor Details

This class inherits a constructor from BaseObject

Instance Attribute Details

#appObject

Returns the value of attribute app.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def app
  @app
end

#imageObject

Returns the value of attribute image.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def image
  @image
end

#pageObject

Returns the value of attribute page.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def page
  @page
end

#page_suppressed_rulesObject

Returns the value of attribute page_suppressed_rules.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def page_suppressed_rules
  @page_suppressed_rules
end

#rowsObject

Returns the value of attribute rows.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def rows
  @rows
end

#scoreObject

Returns the value of attribute score.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def score
  @score
end

#urlObject

Returns the value of attribute url.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def url
  @url
end

#valuesObject

Returns the value of attribute values.



9
10
11
# File 'lib/html_compilation/classes/objects/page.rb', line 9

def values
  @values
end

Instance Method Details

#access_spr(df_yaml_loc = "./data/suppressed_rules.yaml") ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/html_compilation/classes/objects/page.rb', line 11

def access_spr(df_yaml_loc = "./data/suppressed_rules.yaml")
  yaml = read_yaml(df_yaml_loc, app.application_name)
  output = []
  levels = ["GLOBAL", "APP", page.upcase.tr(' ', '_')]
  yaml.each do |key, value|
    if levels.include?(key)
      value.each do |value|
        hash = eval(value)
        output.push(SuppressedPageRules.new(hash[:guideline], hash[:content]))
      end

    end
  end
  set_value("page_suppressed_rules", output)
  page_suppressed_rules
end

#calc_page_scoreObject



79
80
81
82
83
84
85
# File 'lib/html_compilation/classes/objects/page.rb', line 79

def calc_page_score
  page_score = 0
  rows.each do |row|
    page_score += row.score
  end
  page_score
end

#remove_duplicate_rows_external(app, page) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/html_compilation/classes/objects/page.rb', line 41

def remove_duplicate_rows_external(app, page)
  app.pages.each do |app_page|
    unless (app_page == page)
      app_page.rows.each do |app_row|
        page.rows.delete_if do |row|
          same = same_content?(app_row, row)
          if same
            app_row.send("instances=", app_row.instances.to_i + 1)
          end
        end
      end
    end
  end
end

#remove_duplicate_rows_internalObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/html_compilation/classes/objects/page.rb', line 56

def remove_duplicate_rows_internal
  duplicate_rows = rows.clone.keep_if do |row_a|
    rows.each do |row_b|
      if row_a == row_b
        @same = false
      else
        @same = same_content?(row_b, row_a)
        if @same
          row_a.send("instances=", row_b.instances.to_f + 0.5)
          row_b.send("instances=", row_a.instances.to_f + 0.5)
        end
      end
    end
    @same
  end
  duplicate_rows.each do |duplicate_row|
    rows.delete_if do |row|
      duplicate_row == row
    end
  end
  duplicate_rows
end

#remove_duplicates(app) ⇒ Object



36
37
38
39
# File 'lib/html_compilation/classes/objects/page.rb', line 36

def remove_duplicates(app)
  remove_duplicate_rows_external(app, self)
  remove_duplicate_rows_internal
end

#remove_suppressed_rowsObject



28
29
30
31
32
33
34
# File 'lib/html_compilation/classes/objects/page.rb', line 28

def remove_suppressed_rows
  page_suppressed_rules.each do |rule|
    rows.delete_if do |row|
      include_content?(row, rule)
    end
  end
end