wordcram 1.0.0
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/wordcram.rb +20 -0
- data/lib/wordcram/placer.rb +25 -0
- data/lib/wordcram/sketch.rb +28 -0
- data/lib/wordcram/styles/styles.rb +164 -0
- data/lib/wordcram/version.rb +3 -0
- data/lib/wordcram/wordcram.rb +5 -0
- data/vendor/WordCram.jar +0 -0
- data/vendor/ant-googlecode/ant-googlecode-0.0.2.jar +0 -0
- data/vendor/cue.language.jar +0 -0
- data/vendor/jsoup-1.3.3.jar +0 -0
- data/vendor/junit/junit-4.8.2.jar +0 -0
- data/vendor/junit/junit-dep-4.8.2.jar +0 -0
- data/vendor/mockito-all-1.8.5.jar +0 -0
- data/vendor/processing/core.jar +0 -0
- data/vendor/processing/itext.jar +0 -0
- data/vendor/processing/pdf.jar +0 -0
- data/vendor/svnant/ganymed.jar +0 -0
- data/vendor/svnant/svnClientAdapter.jar +0 -0
- data/vendor/svnant/svnant.jar +0 -0
- data/vendor/svnant/svnjavahl.jar +0 -0
- data/vendor/svnant/svnkit.jar +0 -0
- metadata +79 -0
data/lib/wordcram.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'java'
|
2
|
+
|
3
|
+
require 'ruby-processing'
|
4
|
+
|
5
|
+
# Wordcram dependencies
|
6
|
+
require_relative '../vendor/WordCram.jar'
|
7
|
+
require_relative '../vendor/jsoup-1.3.3.jar'
|
8
|
+
require_relative '../vendor/cue.language.jar'
|
9
|
+
require_relative '../vendor/processing/core.jar'
|
10
|
+
require_relative '../vendor/processing/itext.jar'
|
11
|
+
require_relative '../vendor/processing/pdf.jar'
|
12
|
+
|
13
|
+
require_relative 'wordcram/wordcram'
|
14
|
+
require_relative 'wordcram/styles/styles'
|
15
|
+
require_relative 'wordcram/placer'
|
16
|
+
require_relative 'wordcram/sketch'
|
17
|
+
require_relative 'wordcram/version'
|
18
|
+
Processing::App::SKETCH_PATH = '.'
|
19
|
+
|
20
|
+
# This is the main interface. The API that most users are going to use.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class Wordcram
|
2
|
+
class Placer
|
3
|
+
def initialize(&block)
|
4
|
+
@block = block
|
5
|
+
end
|
6
|
+
|
7
|
+
# This method is called from the java side, so I can't make the arguments
|
8
|
+
# a hash key. Blame Java T_T
|
9
|
+
def place(word, index, count, word_width, word_height, field_width, field_height)
|
10
|
+
data = {}
|
11
|
+
data[:word] = word
|
12
|
+
data[:index] = index
|
13
|
+
data[:count] = count
|
14
|
+
data[:word_width] = word_width
|
15
|
+
data[:word_height] = word_height
|
16
|
+
data[:field_width] = field_width
|
17
|
+
data[:field_height] = field_height
|
18
|
+
|
19
|
+
pos = @block.call(data)
|
20
|
+
|
21
|
+
Processing::PVector.new(pos[0], pos[1])
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Wordcram
|
2
|
+
class Sketch < Processing::App
|
3
|
+
include Style
|
4
|
+
attr_accessor :wordcram, :block
|
5
|
+
|
6
|
+
def initialize(&block)
|
7
|
+
@block = block
|
8
|
+
super()
|
9
|
+
end
|
10
|
+
|
11
|
+
def canvas(&block)
|
12
|
+
self.instance_eval(&block)
|
13
|
+
end
|
14
|
+
|
15
|
+
def setup
|
16
|
+
@wordcram = Java.wordcram.WordCram.new(self)
|
17
|
+
|
18
|
+
self.instance_eval(&@block)
|
19
|
+
|
20
|
+
@wordcram.draw_all()
|
21
|
+
end
|
22
|
+
|
23
|
+
def save_to(path)
|
24
|
+
saveFrame(path)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,164 @@
|
|
1
|
+
class Wordcram
|
2
|
+
module Style
|
3
|
+
|
4
|
+
#######################
|
5
|
+
# Angler
|
6
|
+
#######################
|
7
|
+
|
8
|
+
def angled_at(angle)
|
9
|
+
wordcram.angled_at(angle)
|
10
|
+
end
|
11
|
+
|
12
|
+
def angled_between(from, to)
|
13
|
+
wordcram.angled_between(from, to)
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
#######################
|
18
|
+
# Case
|
19
|
+
#######################
|
20
|
+
|
21
|
+
def text_case(option)
|
22
|
+
wordcram.send :"#{option}_case"
|
23
|
+
rescue NoMethodError
|
24
|
+
wordcram.keep_case
|
25
|
+
end
|
26
|
+
|
27
|
+
|
28
|
+
#######################
|
29
|
+
# Color
|
30
|
+
#######################
|
31
|
+
|
32
|
+
def colors(*colors)
|
33
|
+
if colors.size == 1
|
34
|
+
wordcram.with_color(*colors)
|
35
|
+
else
|
36
|
+
wordcram.with_colors(*colors)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def blue
|
41
|
+
color(0, 0, 255)
|
42
|
+
end
|
43
|
+
|
44
|
+
def green
|
45
|
+
color(0, 255, 0)
|
46
|
+
end
|
47
|
+
|
48
|
+
def orange
|
49
|
+
color(255, 127, 0)
|
50
|
+
end
|
51
|
+
|
52
|
+
def black
|
53
|
+
color(0, 0, 0)
|
54
|
+
end
|
55
|
+
|
56
|
+
def white
|
57
|
+
color(255, 255, 255)
|
58
|
+
end
|
59
|
+
|
60
|
+
def yellow
|
61
|
+
color(255, 255, 0)
|
62
|
+
end
|
63
|
+
|
64
|
+
def red
|
65
|
+
color(255, 0, 0)
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
#######################
|
70
|
+
# Font
|
71
|
+
#######################
|
72
|
+
|
73
|
+
def fonts(*fonts)
|
74
|
+
if fonts.size == 1
|
75
|
+
wordcram.with_font(*fonts)
|
76
|
+
else
|
77
|
+
wordcram.with_fonts(*fonts)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
|
82
|
+
#######################
|
83
|
+
# Padding
|
84
|
+
#######################
|
85
|
+
|
86
|
+
def word_padding(padding)
|
87
|
+
wordcram.with_word_padding(padding)
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
#######################
|
92
|
+
# Sizer
|
93
|
+
#######################
|
94
|
+
|
95
|
+
def sized_by_weight(options)
|
96
|
+
wordcram.sized_by_weight(options[:min], options[:max])
|
97
|
+
end
|
98
|
+
|
99
|
+
def sized_by_rank(options)
|
100
|
+
wordcram.sized_by_rank(options[:min], options[:max])
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
#######################
|
105
|
+
# Sources
|
106
|
+
#######################
|
107
|
+
|
108
|
+
def from(content, options = {})
|
109
|
+
wordcram.send(:"from_#{options[:as]}", content)
|
110
|
+
rescue NoMethodError
|
111
|
+
wordcram.send(:from_text_string, content)
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
#########################
|
116
|
+
# Placer
|
117
|
+
#########################
|
118
|
+
|
119
|
+
def create_placer(name)
|
120
|
+
placer = send(name)
|
121
|
+
rescue NoMethodError
|
122
|
+
placer = ''
|
123
|
+
end
|
124
|
+
|
125
|
+
def placer(placer=nil, &block)
|
126
|
+
if placer.nil?
|
127
|
+
placer = Placer.new &block
|
128
|
+
else
|
129
|
+
placer = create_placer(placer)
|
130
|
+
end
|
131
|
+
wordcram.with_placer(placer)
|
132
|
+
end
|
133
|
+
|
134
|
+
|
135
|
+
##########################
|
136
|
+
# Bundled Placers
|
137
|
+
##########################
|
138
|
+
|
139
|
+
def horizontal_line
|
140
|
+
Java.wordcram.Placers.horiz_line
|
141
|
+
end
|
142
|
+
|
143
|
+
def center_clump
|
144
|
+
Java.wordcram.Placers.center_clump
|
145
|
+
end
|
146
|
+
|
147
|
+
def horiz_band_anchored_left
|
148
|
+
Java.wordcram.Placers.horiz_band_anchored_left
|
149
|
+
end
|
150
|
+
|
151
|
+
def swirl
|
152
|
+
Java.wordcram.Placers.swirl
|
153
|
+
end
|
154
|
+
|
155
|
+
def upper_left
|
156
|
+
Java.wordcram.Placers.upper_left
|
157
|
+
end
|
158
|
+
|
159
|
+
def wave
|
160
|
+
Java.wordcram.Placers.wave
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
164
|
+
end
|
data/vendor/WordCram.jar
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,79 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wordcram
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Gonzalo Rodriguez-Baltanas Diaz
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-09-13 00:00:00.000000000 +02:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ruby-processing
|
17
|
+
version_requirements: &2070 !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
none: false
|
23
|
+
requirement: *2070
|
24
|
+
prerelease: false
|
25
|
+
type: :runtime
|
26
|
+
description: A wrapper for the WordCram java library
|
27
|
+
email: siotopo@gmail.com
|
28
|
+
executables: []
|
29
|
+
extensions: []
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
32
|
+
- lib/wordcram.rb
|
33
|
+
- lib/wordcram/placer.rb
|
34
|
+
- lib/wordcram/sketch.rb
|
35
|
+
- lib/wordcram/version.rb
|
36
|
+
- lib/wordcram/wordcram.rb
|
37
|
+
- lib/wordcram/styles/styles.rb
|
38
|
+
- vendor/cue.language.jar
|
39
|
+
- vendor/jsoup-1.3.3.jar
|
40
|
+
- vendor/mockito-all-1.8.5.jar
|
41
|
+
- vendor/WordCram.jar
|
42
|
+
- vendor/ant-googlecode/ant-googlecode-0.0.2.jar
|
43
|
+
- vendor/junit/junit-4.8.2.jar
|
44
|
+
- vendor/junit/junit-dep-4.8.2.jar
|
45
|
+
- vendor/processing/core.jar
|
46
|
+
- vendor/processing/itext.jar
|
47
|
+
- vendor/processing/pdf.jar
|
48
|
+
- vendor/svnant/ganymed.jar
|
49
|
+
- vendor/svnant/svnant.jar
|
50
|
+
- vendor/svnant/svnClientAdapter.jar
|
51
|
+
- vendor/svnant/svnjavahl.jar
|
52
|
+
- vendor/svnant/svnkit.jar
|
53
|
+
has_rdoc: true
|
54
|
+
homepage: https://github.com/Nerian/s9-e1
|
55
|
+
licenses: []
|
56
|
+
post_install_message:
|
57
|
+
rdoc_options: []
|
58
|
+
require_paths:
|
59
|
+
- lib
|
60
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '0'
|
65
|
+
none: false
|
66
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
none: false
|
72
|
+
requirements: []
|
73
|
+
rubyforge_project:
|
74
|
+
rubygems_version: 1.5.1
|
75
|
+
signing_key:
|
76
|
+
specification_version: 3
|
77
|
+
summary: Create cool Word Clouds programatically
|
78
|
+
test_files: []
|
79
|
+
...
|