object-view 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/object_view.rb +13 -12
- data/lib/object_view/body.rb +0 -1
- data/lib/object_view/element.rb +22 -9
- data/lib/object_view/errors/illegal_child_element_error.rb +11 -0
- data/lib/object_view/{object_view_error.rb → errors/object_view_error.rb} +0 -0
- data/lib/object_view/head.rb +7 -1
- data/lib/object_view/page.rb +6 -15
- data/lib/object_view/table.rb +6 -0
- data/lib/object_view/ul.rb +29 -0
- metadata +67 -12
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8bcb640a20873dfc971e661a2a8be808f9f75bb2
|
4
|
+
data.tar.gz: f189faf326b1b7208ee77e11e8152f4d36180691
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6cf882620ca6d5e0dfb84b639215d84dafb57e8e6f7145ae61f27714e45fe4ec7c2be96965c9aac014f828f4eb39462638ae1d6529710097d85961f3be228ce9
|
7
|
+
data.tar.gz: 108239d74990cc90a67612e68ff3bea6ec749c1570510870889fc1ea82c158b1838ce309004cd4a34f2ed225e9837e8cf412670ba4d1e7ca13a2d687823f16d5
|
data/lib/object_view.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
1
|
+
require_relative 'object_view/page.rb'
|
2
|
+
require_relative 'object_view/element.rb'
|
3
|
+
require_relative 'object_view/body'
|
4
|
+
require_relative 'object_view/head'
|
5
|
+
require_relative 'object_view/header'
|
6
|
+
require_relative 'object_view/javascript_file'
|
7
|
+
require_relative 'object_view/div'
|
8
|
+
require_relative 'object_view/span'
|
9
|
+
require_relative 'object_view/javascript'
|
10
|
+
require_relative 'object_view/table'
|
11
|
+
require_relative "object_view/link"
|
12
|
+
require_relative "object_view/ul"
|
13
|
+
require_relative "object_view/chart_data"
|
13
14
|
|
14
15
|
|
15
16
|
module ObjectView
|
data/lib/object_view/body.rb
CHANGED
data/lib/object_view/element.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require_relative './
|
1
|
+
require_relative './errors/illegal_child_element_error'
|
2
2
|
|
3
3
|
module ObjectView
|
4
4
|
|
5
5
|
class Element
|
6
|
-
attr_accessor :tag, :attributes, :single_line
|
7
|
-
attr_reader :children
|
6
|
+
attr_accessor :tag, :attributes, :single_line
|
7
|
+
attr_reader :children, :acceptable_children
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
@tab = " "
|
@@ -30,13 +30,16 @@ module ObjectView
|
|
30
30
|
else
|
31
31
|
return found
|
32
32
|
end
|
33
|
-
|
34
33
|
end
|
35
34
|
|
36
35
|
def attr(name, value)
|
37
36
|
@attributes[name] = value
|
38
37
|
end
|
39
38
|
|
39
|
+
def acceptable_children=(value)
|
40
|
+
@acceptable_children = value
|
41
|
+
end
|
42
|
+
|
40
43
|
def on_click=(value)
|
41
44
|
self.attr("onclick", value)
|
42
45
|
end
|
@@ -70,9 +73,8 @@ module ObjectView
|
|
70
73
|
add child
|
71
74
|
end
|
72
75
|
else
|
73
|
-
raise "Parent: #{self.tag} - Attempt to add an element that is not a valid child, and not an ObjectView::Element. Class of element: #{element_or_string.class.name}: #{element_or_string}\nTag of parent: #{self.tag}.\nAcceptable children: #{@acceptable_children.join(',')}"
|
76
|
+
raise IllegalChildElementError.new "Parent: #{self.tag} - Attempt to add an element that is not a valid child, and not an ObjectView::Element. Class of element: #{element_or_string.class.name}: #{element_or_string}\nTag of parent: #{self.tag}.\nAcceptable children: #{@acceptable_children.join(',')}"
|
74
77
|
end
|
75
|
-
|
76
78
|
return element_or_string
|
77
79
|
end
|
78
80
|
|
@@ -88,7 +90,7 @@ module ObjectView
|
|
88
90
|
end
|
89
91
|
|
90
92
|
def <<(item)
|
91
|
-
self.
|
93
|
+
self.add item
|
92
94
|
end
|
93
95
|
|
94
96
|
def render_children(indent = 0)
|
@@ -114,14 +116,25 @@ module ObjectView
|
|
114
116
|
html = StringIO.new
|
115
117
|
if (@attributes.length > 0)
|
116
118
|
@attributes.each do |name, value|
|
117
|
-
|
119
|
+
if (value.class == Hash)
|
120
|
+
attr_value = ''
|
121
|
+
value.keys.each do |key|
|
122
|
+
attr_value += "#{key.to_s.gsub('_', '-')}: #{value[key]}"
|
123
|
+
if (key != value.keys.last)
|
124
|
+
attr_value += "; "
|
125
|
+
end
|
126
|
+
end
|
127
|
+
html << " #{name}=\"#{attr_value}\""
|
128
|
+
else
|
129
|
+
html << " #{name}=\"#{value}\""
|
130
|
+
end
|
118
131
|
end
|
119
132
|
end
|
120
133
|
return html.string
|
121
134
|
end
|
122
135
|
|
123
136
|
def render(indent = 0)
|
124
|
-
|
137
|
+
raise "tag not defined for class: #{self.class}" if (tag == nil) || (tag.strip.length == 0)
|
125
138
|
html = StringIO.new
|
126
139
|
if (indent != nil)
|
127
140
|
html << (@tab * indent)
|
File without changes
|
data/lib/object_view/head.rb
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
require_relative './element'
|
2
|
+
require_relative './javascript'
|
3
|
+
require_relative './javascript_file'
|
4
|
+
require_relative './link'
|
5
|
+
|
2
6
|
module ObjectView
|
3
7
|
|
4
8
|
class Head < Element
|
9
|
+
|
5
10
|
def initialize
|
6
11
|
super
|
7
12
|
@tag = "head"
|
13
|
+
self.acceptable_children = [Javascript, JavascriptFile, Link]
|
8
14
|
end
|
9
|
-
|
10
15
|
end
|
16
|
+
|
11
17
|
end
|
data/lib/object_view/page.rb
CHANGED
@@ -20,24 +20,25 @@ module ObjectView
|
|
20
20
|
|
21
21
|
def initialize
|
22
22
|
super
|
23
|
-
puts "Element tag: #{@tag}"
|
24
23
|
self.tag = "html"
|
25
24
|
@head = Head.new
|
26
|
-
@title = "No Title"
|
27
25
|
self.add @head
|
28
26
|
@body = Body.new
|
29
27
|
self.add @body
|
30
|
-
@top_div =
|
31
|
-
@title_div =
|
32
|
-
@title =
|
28
|
+
@top_div = nil
|
29
|
+
@title_div = nil
|
30
|
+
@title = nil
|
33
31
|
@acceptable_children = [Head, Body]
|
34
32
|
end
|
35
33
|
|
36
34
|
def displayed_title=(title)
|
35
|
+
@top_div = self.body.add Div.new
|
36
|
+
@title_div = self.body.add Div.new
|
37
37
|
self.title_div.add(Header.new(1, title))
|
38
38
|
end
|
39
39
|
|
40
40
|
def title=(title)
|
41
|
+
@title = title
|
41
42
|
title_element = @head.find_element_with_tag("title")
|
42
43
|
if (title_element == nil)
|
43
44
|
title_element = @head.add_with_tag("title", title)
|
@@ -45,15 +46,5 @@ module ObjectView
|
|
45
46
|
title_element.add(title)
|
46
47
|
end
|
47
48
|
|
48
|
-
def use_google_charts(chart_load_js_content)
|
49
|
-
self.head.add JavascriptFile.new("https://www.google.com/jsapi")
|
50
|
-
self.body.add ChartLoadJavascript.new(chart_load_js_content)
|
51
|
-
end
|
52
|
-
|
53
|
-
def use_google_charts_ajax(chart_load_js_content, refresh_seconds = nil, prepend_js_script = "")
|
54
|
-
self.head.add JavascriptFile.new("https://www.google.com/jsapi")
|
55
|
-
self.body.add ChartLoadJavascriptAjax.new(chart_load_js_content, refresh_seconds, prepend_js_script)
|
56
|
-
end
|
57
|
-
|
58
49
|
end
|
59
50
|
end
|
data/lib/object_view/table.rb
CHANGED
@@ -6,6 +6,7 @@ module ObjectView
|
|
6
6
|
def initialize
|
7
7
|
super()
|
8
8
|
@tag = "table"
|
9
|
+
self.acceptable_children = [TBody, THead]
|
9
10
|
end
|
10
11
|
|
11
12
|
def header_row(labels = nil)
|
@@ -44,6 +45,7 @@ module ObjectView
|
|
44
45
|
super()
|
45
46
|
self.single_line = true
|
46
47
|
@tag = "thead"
|
48
|
+
self.acceptable_children = [TRow]
|
47
49
|
end
|
48
50
|
|
49
51
|
def row
|
@@ -58,6 +60,7 @@ module ObjectView
|
|
58
60
|
def initialize
|
59
61
|
super()
|
60
62
|
@tag = "tbody"
|
63
|
+
self.acceptable_children = [TRow]
|
61
64
|
end
|
62
65
|
|
63
66
|
def row
|
@@ -73,6 +76,7 @@ module ObjectView
|
|
73
76
|
def initialize
|
74
77
|
super()
|
75
78
|
@tag = "tr"
|
79
|
+
self.acceptable_children = [TCell, THeadCell]
|
76
80
|
end
|
77
81
|
|
78
82
|
def cell(content = nil)
|
@@ -89,6 +93,7 @@ module ObjectView
|
|
89
93
|
def initialize
|
90
94
|
super()
|
91
95
|
@tag = "tr"
|
96
|
+
self.acceptable_children = [THeadCell]
|
92
97
|
end
|
93
98
|
|
94
99
|
def cell(content = nil)
|
@@ -107,6 +112,7 @@ module ObjectView
|
|
107
112
|
super()
|
108
113
|
self.single_line = true
|
109
114
|
@tag = "td"
|
115
|
+
self.acceptable_children = [Table, Div, Span, Javascript, Link, String]
|
110
116
|
end
|
111
117
|
end
|
112
118
|
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require_relative './span'
|
2
|
+
|
3
|
+
|
4
|
+
module ObjectView
|
5
|
+
|
6
|
+
class Ul < Element
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super()
|
10
|
+
@tag = "ul"
|
11
|
+
self.acceptable_children = [Li]
|
12
|
+
end
|
13
|
+
|
14
|
+
def item(content = nil)
|
15
|
+
return self.add Li.new(content)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
class Li < Element
|
21
|
+
def initialize(content = nil)
|
22
|
+
super()
|
23
|
+
@tag = "li"
|
24
|
+
if (content != nil)
|
25
|
+
self.add content
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: object-view
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mike Moore
|
@@ -10,54 +9,110 @@ autorequire:
|
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
11
|
date: 2014-03-10 00:00:00.000000000 Z
|
13
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: byebug
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '6.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.6.8
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.6.8
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-its
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.2'
|
14
69
|
description: Object oriented approach to generating HTML content
|
15
70
|
email: m.moore.denver@gmail.com
|
16
71
|
executables: []
|
17
72
|
extensions: []
|
18
73
|
extra_rdoc_files: []
|
19
74
|
files:
|
75
|
+
- lib/object_view.rb
|
20
76
|
- lib/object_view/body.rb
|
21
77
|
- lib/object_view/chart_data.rb
|
22
78
|
- lib/object_view/chart_load_javascript.rb
|
23
79
|
- lib/object_view/chart_load_javascript_ajax.rb
|
24
80
|
- lib/object_view/div.rb
|
25
81
|
- lib/object_view/element.rb
|
82
|
+
- lib/object_view/errors/illegal_child_element_error.rb
|
83
|
+
- lib/object_view/errors/object_view_error.rb
|
26
84
|
- lib/object_view/head.rb
|
27
85
|
- lib/object_view/header.rb
|
28
86
|
- lib/object_view/javascript.rb
|
29
87
|
- lib/object_view/javascript_file.rb
|
30
88
|
- lib/object_view/link.rb
|
31
|
-
- lib/object_view/object_view_error.rb
|
32
89
|
- lib/object_view/page.rb
|
33
90
|
- lib/object_view/span.rb
|
34
91
|
- lib/object_view/table.rb
|
35
|
-
- lib/object_view.rb
|
92
|
+
- lib/object_view/ul.rb
|
36
93
|
homepage: https://github.com/mikejmoore/object-view
|
37
94
|
licenses:
|
38
95
|
- MIT
|
96
|
+
metadata: {}
|
39
97
|
post_install_message:
|
40
98
|
rdoc_options: []
|
41
99
|
require_paths:
|
42
100
|
- lib
|
43
101
|
- lib/object_view
|
44
102
|
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
-
none: false
|
46
103
|
requirements:
|
47
|
-
- -
|
104
|
+
- - ">="
|
48
105
|
- !ruby/object:Gem::Version
|
49
106
|
version: '0'
|
50
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
108
|
requirements:
|
53
|
-
- -
|
109
|
+
- - ">="
|
54
110
|
- !ruby/object:Gem::Version
|
55
111
|
version: '0'
|
56
112
|
requirements: []
|
57
113
|
rubyforge_project:
|
58
|
-
rubygems_version:
|
114
|
+
rubygems_version: 2.4.5.1
|
59
115
|
signing_key:
|
60
|
-
specification_version:
|
116
|
+
specification_version: 4
|
61
117
|
summary: Object oriented views
|
62
118
|
test_files: []
|
63
|
-
has_rdoc:
|