indexer 0.3.0 → 0.3.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/.index +6 -14
- data/lib/indexer.rb +1 -1
- data/lib/indexer/importer.rb +10 -4
- data/lib/indexer/loadable.rb +3 -3
- metadata +13 -80
- data/lib/indexer/importer/html.rb +0 -294
- data/lib/indexer/importer/markdown.rb +0 -63
- data/lib/indexer/webui.rb +0 -167
- data/lib/indexer/webui/assets/dotruby_binding.js +0 -41
- data/lib/indexer/webui/assets/dotruby_model.js +0 -203
- data/lib/indexer/webui/assets/jquery-1.4.2.min.js +0 -154
- data/lib/indexer/webui/assets/json2.js +0 -482
- data/lib/indexer/webui/assets/knockout-2.0.0.js +0 -97
- data/lib/indexer/webui/assets/testdata.json +0 -23
- data/lib/indexer/webui/assets/underscore-min.js +0 -31
- data/lib/indexer/webui/index-old.html +0 -92
- data/lib/indexer/webui/index.html +0 -286
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d0d4a32d311a17fc00a7e881a1c3b9e9395a327b
|
4
|
+
data.tar.gz: 6d4f2860f612060659a881ec3f85a08465c11974
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 397b691f3bb5e7c36a820b75d84549a9ed9a5fd13d2cbd1fd4d187f85cc462b95a342ffc7011d17b37e341174595cd3985eb3fd8ae2cdc0658e14d834ccb3075
|
7
|
+
data.tar.gz: 0a37f697701464701af20194f5c8b55b068fa4fa3c0609a32e7d5456895494adfcb3d33f7f7f5eb049d1163b66993b62e627fbf201093ef0138960e7765d7cf3
|
data/.index
CHANGED
@@ -13,15 +13,6 @@ organizations:
|
|
13
13
|
- name: Rubyworks
|
14
14
|
website: http://rubyworks.github.com
|
15
15
|
requirements:
|
16
|
-
- version: 1.5+
|
17
|
-
name: nokogiri
|
18
|
-
- version: 0.14+
|
19
|
-
name: kramdown
|
20
|
-
- groups:
|
21
|
-
- optional
|
22
|
-
version: 2.0+
|
23
|
-
development: true
|
24
|
-
name: redcarpet
|
25
16
|
- groups:
|
26
17
|
- test
|
27
18
|
version: 2.9+
|
@@ -58,10 +49,11 @@ customs:
|
|
58
49
|
paths:
|
59
50
|
lib:
|
60
51
|
- lib
|
61
|
-
summary: Enable Your Project's Metadata
|
62
|
-
title: Indexer
|
63
|
-
version: 0.3.0
|
64
52
|
name: indexer
|
65
|
-
|
53
|
+
title: Indexer
|
54
|
+
summary: Enable Your Project's Metadata
|
55
|
+
created: '2011-06-01'
|
66
56
|
description: Indexer provides projects with a universal metadata format.
|
67
|
-
|
57
|
+
example: This is just an example of custom metadata.
|
58
|
+
version: 0.3.1
|
59
|
+
date: '2013-08-07'
|
data/lib/indexer.rb
CHANGED
@@ -9,7 +9,7 @@ module Indexer
|
|
9
9
|
LOCK_FILE = '.index'
|
10
10
|
|
11
11
|
# Default metadata file name for use by end-developer.
|
12
|
-
USER_FILES = '{
|
12
|
+
USER_FILES = '{Index,Indexfile,Metadata}{,.rb,.yml,.yaml}'
|
13
13
|
|
14
14
|
# Indexer library directory.
|
15
15
|
LIBDIR = File.dirname(__FILE__) + '/indexer'
|
data/lib/indexer/importer.rb
CHANGED
@@ -18,17 +18,23 @@ module Indexer
|
|
18
18
|
#
|
19
19
|
# Require all import mixins.
|
20
20
|
#
|
21
|
+
# This method calls `super` if it is defined which makes it easy
|
22
|
+
# for plugins to add new importers.
|
23
|
+
#
|
21
24
|
def self.require_importers
|
22
25
|
require_relative 'importer/file'
|
23
26
|
require_relative 'importer/ruby'
|
24
27
|
require_relative 'importer/yaml'
|
25
|
-
require_relative 'importer/html'
|
26
|
-
require_relative 'importer/markdown'
|
27
|
-
#require_relative 'importer/rdoc'
|
28
|
-
#require_relative 'importer/textile'
|
29
28
|
require_relative 'importer/gemspec'
|
30
29
|
require_relative 'importer/gemfile'
|
31
30
|
require_relative 'importer/version'
|
31
|
+
#require_relative 'importer/html'
|
32
|
+
#require_relative 'importer/markdown'
|
33
|
+
#require_relative 'importer/rdoc'
|
34
|
+
#require_relative 'importer/textile'
|
35
|
+
|
36
|
+
# for plugins to easily add additional importers
|
37
|
+
super if defined?(super)
|
32
38
|
end
|
33
39
|
|
34
40
|
#
|
data/lib/indexer/loadable.rb
CHANGED
@@ -131,10 +131,10 @@ module Indexer
|
|
131
131
|
if sources.empty?
|
132
132
|
if file = exists?
|
133
133
|
metadata = Metadata.open
|
134
|
-
sources
|
134
|
+
sources = metadata.sources
|
135
135
|
else
|
136
|
-
sources = Dir.glob(USER_FILES, File::FNM_CASEFOLD)
|
137
|
-
raise Error.exception("
|
136
|
+
#sources = Dir.glob(USER_FILES, File::FNM_CASEFOLD)
|
137
|
+
raise Error.exception("Could not find a metadata source.") if sources.empty?
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: indexer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- trans
|
@@ -10,86 +9,34 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-08-07 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: nokogiri
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ! '>='
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '1.5'
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ! '>='
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
version: '1.5'
|
31
|
-
- !ruby/object:Gem::Dependency
|
32
|
-
name: kramdown
|
33
|
-
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
|
-
requirements:
|
36
|
-
- - ! '>='
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: '0.14'
|
39
|
-
type: :runtime
|
40
|
-
prerelease: false
|
41
|
-
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ! '>='
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: '0.14'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: redcarpet
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.0'
|
55
|
-
type: :development
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
|
-
requirements:
|
60
|
-
- - ! '>='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '2.0'
|
63
14
|
- !ruby/object:Gem::Dependency
|
64
15
|
name: qed
|
65
16
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
17
|
requirements:
|
68
|
-
- -
|
18
|
+
- - '>='
|
69
19
|
- !ruby/object:Gem::Version
|
70
20
|
version: '2.9'
|
71
21
|
type: :development
|
72
22
|
prerelease: false
|
73
23
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
24
|
requirements:
|
76
|
-
- -
|
25
|
+
- - '>='
|
77
26
|
- !ruby/object:Gem::Version
|
78
27
|
version: '2.9'
|
79
28
|
- !ruby/object:Gem::Dependency
|
80
29
|
name: ae
|
81
30
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
31
|
requirements:
|
84
|
-
- -
|
32
|
+
- - '>='
|
85
33
|
- !ruby/object:Gem::Version
|
86
34
|
version: '0'
|
87
35
|
type: :development
|
88
36
|
prerelease: false
|
89
37
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
38
|
requirements:
|
92
|
-
- -
|
39
|
+
- - '>='
|
93
40
|
- !ruby/object:Gem::Version
|
94
41
|
version: '0'
|
95
42
|
description: Indexer provides projects with a universal metadata format.
|
@@ -99,8 +46,8 @@ executables:
|
|
99
46
|
- index
|
100
47
|
extensions: []
|
101
48
|
extra_rdoc_files:
|
102
|
-
- HISTORY.md
|
103
49
|
- README.md
|
50
|
+
- HISTORY.md
|
104
51
|
files:
|
105
52
|
- .index
|
106
53
|
- .yardopts
|
@@ -135,8 +82,6 @@ files:
|
|
135
82
|
- lib/indexer/importer/file.rb
|
136
83
|
- lib/indexer/importer/gemfile.rb
|
137
84
|
- lib/indexer/importer/gemspec.rb
|
138
|
-
- lib/indexer/importer/html.rb
|
139
|
-
- lib/indexer/importer/markdown.rb
|
140
85
|
- lib/indexer/importer/ruby.rb
|
141
86
|
- lib/indexer/importer/version.rb
|
142
87
|
- lib/indexer/importer/yaml.rb
|
@@ -150,43 +95,31 @@ files:
|
|
150
95
|
- lib/indexer/version/constraint.rb
|
151
96
|
- lib/indexer/version/exceptions.rb
|
152
97
|
- lib/indexer/version/number.rb
|
153
|
-
- lib/indexer/webui/assets/dotruby_binding.js
|
154
|
-
- lib/indexer/webui/assets/dotruby_model.js
|
155
|
-
- lib/indexer/webui/assets/jquery-1.4.2.min.js
|
156
|
-
- lib/indexer/webui/assets/json2.js
|
157
|
-
- lib/indexer/webui/assets/knockout-2.0.0.js
|
158
|
-
- lib/indexer/webui/assets/testdata.json
|
159
|
-
- lib/indexer/webui/assets/underscore-min.js
|
160
|
-
- lib/indexer/webui/index-old.html
|
161
|
-
- lib/indexer/webui/index.html
|
162
|
-
- lib/indexer/webui.rb
|
163
98
|
- lib/indexer.rb
|
164
|
-
- HISTORY.md
|
165
99
|
- README.md
|
100
|
+
- HISTORY.md
|
166
101
|
homepage: http://rubyworks.github.com/indexer
|
167
102
|
licenses:
|
168
103
|
- BSD-2-Clause
|
104
|
+
metadata: {}
|
169
105
|
post_install_message:
|
170
106
|
rdoc_options: []
|
171
107
|
require_paths:
|
172
108
|
- lib
|
173
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
-
none: false
|
175
110
|
requirements:
|
176
|
-
- -
|
111
|
+
- - '>='
|
177
112
|
- !ruby/object:Gem::Version
|
178
113
|
version: '0'
|
179
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
|
-
none: false
|
181
115
|
requirements:
|
182
|
-
- -
|
116
|
+
- - '>='
|
183
117
|
- !ruby/object:Gem::Version
|
184
118
|
version: '0'
|
185
119
|
requirements: []
|
186
120
|
rubyforge_project:
|
187
|
-
rubygems_version:
|
121
|
+
rubygems_version: 2.0.3
|
188
122
|
signing_key:
|
189
|
-
specification_version:
|
123
|
+
specification_version: 4
|
190
124
|
summary: Enable Your Project's Metadata
|
191
125
|
test_files: []
|
192
|
-
has_rdoc:
|
@@ -1,294 +0,0 @@
|
|
1
|
-
module Indexer
|
2
|
-
|
3
|
-
class Importer
|
4
|
-
|
5
|
-
# Import metadata from a HTML source using microformats.
|
6
|
-
#
|
7
|
-
# NOTE: The implementation using css selectors is fairly slow.
|
8
|
-
# If we even think it important to speed up then we might
|
9
|
-
# try traversing instead.
|
10
|
-
#
|
11
|
-
module HTMLImportation
|
12
|
-
|
13
|
-
#
|
14
|
-
# YAML import procedure.
|
15
|
-
#
|
16
|
-
def import(source)
|
17
|
-
if File.file?(source)
|
18
|
-
case File.extname(source)
|
19
|
-
when '.html'
|
20
|
-
load_html(source)
|
21
|
-
return true
|
22
|
-
end
|
23
|
-
end
|
24
|
-
super(source) if defined?(super)
|
25
|
-
end
|
26
|
-
|
27
|
-
#
|
28
|
-
# Import metadata from HTML file.
|
29
|
-
#
|
30
|
-
def load_html(file)
|
31
|
-
require 'nokogiri'
|
32
|
-
|
33
|
-
case file
|
34
|
-
when Nokogiri::XML::Document
|
35
|
-
doc = file
|
36
|
-
when File
|
37
|
-
doc = Nokogiri::HTML(file)
|
38
|
-
else
|
39
|
-
doc = Nokogiri::HTML(File.new(file))
|
40
|
-
end
|
41
|
-
|
42
|
-
data = {}
|
43
|
-
|
44
|
-
%w{version summary description created}.each do |field|
|
45
|
-
load_html_simple(field, doc, data)
|
46
|
-
end
|
47
|
-
|
48
|
-
load_html_name(doc, data)
|
49
|
-
load_html_title(doc, data)
|
50
|
-
load_html_authors(doc, data)
|
51
|
-
load_html_organizations(doc, data)
|
52
|
-
load_html_requirements(doc, data)
|
53
|
-
load_html_resources(doc, data)
|
54
|
-
load_html_repositories(doc, data)
|
55
|
-
load_html_copyrights(doc, data)
|
56
|
-
load_html_categories(doc, data)
|
57
|
-
|
58
|
-
metadata.merge!(data)
|
59
|
-
end
|
60
|
-
|
61
|
-
#
|
62
|
-
# Load a simple field value.
|
63
|
-
#
|
64
|
-
def load_html_simple(field, doc, data)
|
65
|
-
nodes = doc.css(".i#{field}")
|
66
|
-
return if (nodes.nil? or nodes.empty?)
|
67
|
-
text = nodes.first.content.strip
|
68
|
-
data[field] = text
|
69
|
-
end
|
70
|
-
|
71
|
-
#
|
72
|
-
# Load name, and use it for title too if not already set.
|
73
|
-
#
|
74
|
-
def load_html_name(doc, data)
|
75
|
-
nodes = doc.css(".iname")
|
76
|
-
return if (nodes.nil? or nodes.empty?)
|
77
|
-
text = nodes.first.content.strip
|
78
|
-
|
79
|
-
unless metadata.title
|
80
|
-
data['title'] = text.capitalize
|
81
|
-
end
|
82
|
-
|
83
|
-
data['name'] = text
|
84
|
-
end
|
85
|
-
|
86
|
-
#
|
87
|
-
# Load title, and use it for name too if not already set.
|
88
|
-
#
|
89
|
-
def load_html_title(doc, data)
|
90
|
-
nodes = doc.css(".ititle")
|
91
|
-
return if (nodes.nil? or nodes.empty?)
|
92
|
-
text = nodes.first.content.strip
|
93
|
-
|
94
|
-
unless metadata.name
|
95
|
-
data['name'] = text.downcase.gsub(/\s+/, '_')
|
96
|
-
end
|
97
|
-
|
98
|
-
data['title'] = text
|
99
|
-
end
|
100
|
-
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
def load_html_categories(doc, data)
|
105
|
-
nodes = doc.css('.icategory')
|
106
|
-
return if (nodes.nil? or nodes.empty?)
|
107
|
-
|
108
|
-
data['categories'] ||= []
|
109
|
-
|
110
|
-
nodes.each do |node|
|
111
|
-
entry = node.content.strip
|
112
|
-
data['categories'] << entry unless entry == ""
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
#
|
117
|
-
#
|
118
|
-
#
|
119
|
-
def load_html_resources(doc, data)
|
120
|
-
nodes = doc.css('.iresource')
|
121
|
-
return if (nodes.nil? or nodes.empty?)
|
122
|
-
|
123
|
-
data['resources'] ||= []
|
124
|
-
|
125
|
-
nodes.each do |node|
|
126
|
-
entry = {}
|
127
|
-
|
128
|
-
entry['uri'] = node.attr('href')
|
129
|
-
entry['type'] = node.attr('name') || node.attr('title') # best choice for this?
|
130
|
-
entry['label'] = node.content.strip
|
131
|
-
|
132
|
-
data['resources'] << entry if entry['uri']
|
133
|
-
end
|
134
|
-
end
|
135
|
-
|
136
|
-
#
|
137
|
-
#
|
138
|
-
#
|
139
|
-
def load_html_requirements(doc, data)
|
140
|
-
nodes = doc.css('.irequirement')
|
141
|
-
return if (nodes.nil? or nodes.empty?)
|
142
|
-
|
143
|
-
data['requirements'] ||= []
|
144
|
-
|
145
|
-
nodes.each do |node|
|
146
|
-
entry = {}
|
147
|
-
|
148
|
-
if n = node.at_css('.name')
|
149
|
-
entry['name'] = n.content.strip
|
150
|
-
end
|
151
|
-
|
152
|
-
if n = node.at_css('.version')
|
153
|
-
entry['version'] = n.content.strip
|
154
|
-
end
|
155
|
-
|
156
|
-
# TODO: better approach to optional field?
|
157
|
-
if n = node.at_css('.optional')
|
158
|
-
entry['optional'] = true #n.content.strip != "false"
|
159
|
-
end
|
160
|
-
|
161
|
-
if n = (node.at_css('.groups') || node.at_css('.group'))
|
162
|
-
text = n.content.strip
|
163
|
-
text = text.sub(/^[(]/, '').sub(/[)]$/, '').strip
|
164
|
-
entry['groups'] = text.split(/\s+/)
|
165
|
-
|
166
|
-
if %w{test build document development}.any?{ |g| entry['groups'].include?(g) }
|
167
|
-
entry['development'] = true
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
data['requirements'] << entry if entry['name']
|
172
|
-
end
|
173
|
-
end
|
174
|
-
|
175
|
-
#
|
176
|
-
# Class is `iauthor`.
|
177
|
-
#
|
178
|
-
def load_html_authors(doc, data)
|
179
|
-
nodes = doc.css('.iauthor')
|
180
|
-
return if (nodes.nil? or nodes.empty?)
|
181
|
-
|
182
|
-
data['authors'] ||= []
|
183
|
-
|
184
|
-
nodes.each do |node|
|
185
|
-
entry = {}
|
186
|
-
|
187
|
-
if n = (node.at_css('.name') || node.at_css('.nickname'))
|
188
|
-
entry['name'] = n.content.strip
|
189
|
-
end
|
190
|
-
|
191
|
-
if n = node.at_css('.email')
|
192
|
-
text = n.attr(:href) || n.content.strip
|
193
|
-
text = text.sub(/^mailto\:/i, '')
|
194
|
-
entry['email'] = text
|
195
|
-
end
|
196
|
-
|
197
|
-
if n = node.at_css('.website') || node.at_css('.uri') || node.at_css('.url')
|
198
|
-
text = n.attr(:href) || n.content.strip
|
199
|
-
entry['website'] = text
|
200
|
-
end
|
201
|
-
|
202
|
-
data['authors'] << entry if entry['name']
|
203
|
-
end
|
204
|
-
end
|
205
|
-
|
206
|
-
#
|
207
|
-
# Class is `iorg`.
|
208
|
-
#
|
209
|
-
def load_html_organizations(doc, data)
|
210
|
-
nodes = doc.css('.iorg')
|
211
|
-
return if (nodes.nil? or nodes.empty?)
|
212
|
-
|
213
|
-
data['organizations'] ||= []
|
214
|
-
|
215
|
-
nodes.each do |node|
|
216
|
-
entry = {}
|
217
|
-
|
218
|
-
if n = node.at_css('.name')
|
219
|
-
entry['name'] = n.content.strip
|
220
|
-
end
|
221
|
-
|
222
|
-
if n = node.at_css('.email')
|
223
|
-
text = n.attr(:href) || n.content.strip
|
224
|
-
text = text.sub(/^mailto\:/i, '')
|
225
|
-
entry['email'] = text
|
226
|
-
end
|
227
|
-
|
228
|
-
if n = node.at_css('.website') || node.at_css('.uri') || node.at_css('.url')
|
229
|
-
text = n.attr(:href) || n.content.strip
|
230
|
-
entry['website'] = text
|
231
|
-
end
|
232
|
-
|
233
|
-
data['organizations'] << entry if entry['name']
|
234
|
-
end
|
235
|
-
end
|
236
|
-
|
237
|
-
#
|
238
|
-
# Class is `irepo`.
|
239
|
-
#
|
240
|
-
def load_html_repositories(doc, data)
|
241
|
-
nodes = doc.css('.irepo')
|
242
|
-
return if (nodes.nil? or nodes.empty?)
|
243
|
-
|
244
|
-
data['repositories'] ||= []
|
245
|
-
|
246
|
-
nodes.each do |node|
|
247
|
-
entry = {}
|
248
|
-
|
249
|
-
entry['uri'] = node.attr('href')
|
250
|
-
entry['type'] = node.attr('name') || node.attr('title') # best choice for this?
|
251
|
-
entry['label'] = node.content.strip
|
252
|
-
|
253
|
-
data['resources'] << entry if entry['uri']
|
254
|
-
end
|
255
|
-
end
|
256
|
-
|
257
|
-
#
|
258
|
-
#
|
259
|
-
#
|
260
|
-
def load_html_copyrights(doc, data)
|
261
|
-
nodes = doc.css('.icopyright')
|
262
|
-
return if (nodes.nil? or nodes.empty?)
|
263
|
-
|
264
|
-
data['copyrights'] ||= []
|
265
|
-
|
266
|
-
nodes.each do |node|
|
267
|
-
entry = {}
|
268
|
-
|
269
|
-
if n = node.at_css('.holder')
|
270
|
-
entry['holder'] = n.content.strip
|
271
|
-
end
|
272
|
-
|
273
|
-
if n = node.at_css('.year')
|
274
|
-
entry['year'] = n.content.strip
|
275
|
-
end
|
276
|
-
|
277
|
-
if n = node.at_css('.license')
|
278
|
-
text = n.content.strip
|
279
|
-
text = text.sub(/license$/i,'').strip
|
280
|
-
entry['license'] = text
|
281
|
-
end
|
282
|
-
|
283
|
-
data['copyrights'] << entry
|
284
|
-
end
|
285
|
-
end
|
286
|
-
|
287
|
-
end
|
288
|
-
|
289
|
-
# Include YAMLImportation mixin into Builder class.
|
290
|
-
include HTMLImportation
|
291
|
-
|
292
|
-
end
|
293
|
-
|
294
|
-
end
|