tagcloudbase 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|