tagcloudbase 0.1.0 → 0.1.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.
- data/lib/tagcloud.css +23 -0
- data/lib/tagcloud.xsl +27 -0
- data/lib/tagcloudbase.rb +15 -3
- data/lib/tagcloudbase.rb~ +27 -0
- metadata +16 -2
data/lib/tagcloud.css
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
/* file: tag_cloud.css */
|
2
|
+
|
3
|
+
.tag {
|
4
|
+
font-family: Arial,'Luxi Sans', Helvetica, Impact; line-height: 2em
|
5
|
+
}
|
6
|
+
.tag a {background-color: #444; padding: 0.3em; margin: 0.9em 0.2em;}
|
7
|
+
.tag a:link {background-color: #000; color: #fff; text-decoration: none}
|
8
|
+
.tag a:visited {background-color: #555;}
|
9
|
+
.tag a:hover {background-color: #000; text-decoration: none; color: #ccc}
|
10
|
+
.tag a:active {background-color: #666;}
|
11
|
+
.tag a:focus {background-color: #666;}
|
12
|
+
|
13
|
+
.s1 { background-color: transparent; color: #123; font-size: 1.13em }
|
14
|
+
.s2 { background-color: transparent; color: #123; font-size: 1.36em }
|
15
|
+
.s3 { background-color: transparent; color: #123; font-size: 1.59em }
|
16
|
+
.s4 { background-color: transparent; color: #123; font-size: 1.82em; font-weight: 300 }
|
17
|
+
.s5 { background-color: transparent; color: #123; font-size: 2.05em; font-weight: 400 }
|
18
|
+
.s6 { background-color: transparent; color: #123; font-size: 2.28em; font-weight: 500 }
|
19
|
+
.s7 { background-color: transparent; color: #123; font-size: 2.51em; font-weight: 600 }
|
20
|
+
.s8 { background-color: transparent; color: #123; font-size: 2.74em; font-weight: 700 }
|
21
|
+
.s9 { background-color: transparent; color: #123; font-size: 2.9em; font-weight: 800 }
|
22
|
+
.s10 { background-color: transparent; color: #123; font-size: 3.2em; font-weight: 900}
|
23
|
+
|
data/lib/tagcloud.xsl
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
|
3
|
+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
|
4
|
+
|
5
|
+
<xsl:template match="tags">
|
6
|
+
<xsl:apply-templates select="summary"/>
|
7
|
+
<div id="articles">
|
8
|
+
<div id="records">
|
9
|
+
<xsl:apply-templates select="records/tag">
|
10
|
+
<xsl:sort order="ascending" select="word"/>
|
11
|
+
</xsl:apply-templates>
|
12
|
+
</div>
|
13
|
+
</div></xsl:template>
|
14
|
+
|
15
|
+
<xsl:template match="summary">
|
16
|
+
<h1><xsl:value-of select="title"/></h1>
|
17
|
+
</xsl:template>
|
18
|
+
|
19
|
+
<xsl:template match="records/tag">
|
20
|
+
|
21
|
+
<span class="tag s{gauge}">
|
22
|
+
<a href="{href}"><xsl:value-of select="word"/></a>
|
23
|
+
</span><xsl:text> </xsl:text>
|
24
|
+
|
25
|
+
</xsl:template>
|
26
|
+
|
27
|
+
</xsl:stylesheet>
|
data/lib/tagcloudbase.rb
CHANGED
@@ -3,10 +3,12 @@
|
|
3
3
|
# file: tagcloudbase.rb
|
4
4
|
|
5
5
|
require 'dynarex'
|
6
|
+
require 'rexslt'
|
6
7
|
|
7
8
|
class TagCloudBase
|
8
9
|
|
9
10
|
attr_reader :to_dynarex
|
11
|
+
attr_accessor :xsl
|
10
12
|
|
11
13
|
def initialize(all_tags={})
|
12
14
|
tags = all_tags.sort_by {|name,count| -count.to_i}
|
@@ -15,13 +17,23 @@ class TagCloudBase
|
|
15
17
|
# sort in alphabetical order
|
16
18
|
abc_tags = tags.sort_by &:first
|
17
19
|
|
18
|
-
@to_dynarex = Dynarex.new('tags/tag(
|
20
|
+
@to_dynarex = Dynarex.new('tags/tag(word,href,gauge,count)')
|
19
21
|
abc_tags.each do |word, word_size|
|
20
22
|
weight = 100 / (biggest_tag / word_size.to_i)
|
21
23
|
gauge = (weight / 10).to_i
|
22
24
|
gauge = 8 if gauge > 8
|
23
|
-
@to_dynarex.create
|
25
|
+
@to_dynarex.create word: word, gauge: gauge.to_s, count: word_size
|
24
26
|
end
|
25
27
|
end
|
28
|
+
|
29
|
+
def to_webpage()
|
30
|
+
|
31
|
+
lib = File.dirname(__FILE__)
|
32
|
+
xsl = open(lib + '/tagcloud.xsl','UserAgent' => 'TagCloudBase').read
|
33
|
+
css = open(lib + '/tagcloud.css','UserAgent' => 'TagCloudBase').read
|
34
|
+
|
35
|
+
html = Rexslt.new(@xsl || xsl, @to_dynarex.to_xml).to_s
|
36
|
+
return {html: html, css: css}
|
37
|
+
end
|
26
38
|
|
27
|
-
end
|
39
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# file: tagcloudbase.rb
|
4
|
+
|
5
|
+
require 'dynarex'
|
6
|
+
|
7
|
+
class TagCloudBase
|
8
|
+
|
9
|
+
attr_reader :to_dynarex
|
10
|
+
|
11
|
+
def initialize(all_tags={})
|
12
|
+
tags = all_tags.sort_by {|name,count| -count.to_i}
|
13
|
+
biggest_tag = tags.first[1].to_i
|
14
|
+
|
15
|
+
# sort in alphabetical order
|
16
|
+
abc_tags = tags.sort_by &:first
|
17
|
+
|
18
|
+
@to_dynarex = Dynarex.new('tags/tag(name,gauge,count)')
|
19
|
+
abc_tags.each do |word, word_size|
|
20
|
+
weight = 100 / (biggest_tag / word_size.to_i)
|
21
|
+
gauge = (weight / 10).to_i
|
22
|
+
gauge = 8 if gauge > 8
|
23
|
+
@to_dynarex.create name: word, gauge: gauge.to_s, count: word_size
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: tagcloudbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Robertson
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-04-
|
13
|
+
date: 2012-04-08 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -24,6 +24,17 @@ dependencies:
|
|
24
24
|
version: "0"
|
25
25
|
type: :runtime
|
26
26
|
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rexslt
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
27
38
|
description:
|
28
39
|
email:
|
29
40
|
executables: []
|
@@ -33,7 +44,10 @@ extensions: []
|
|
33
44
|
extra_rdoc_files: []
|
34
45
|
|
35
46
|
files:
|
47
|
+
- lib/tagcloud.css
|
36
48
|
- lib/tagcloudbase.rb
|
49
|
+
- lib/tagcloudbase.rb~
|
50
|
+
- lib/tagcloud.xsl
|
37
51
|
has_rdoc: true
|
38
52
|
homepage:
|
39
53
|
licenses: []
|