ruby_wordcram 1.0.0 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 616a361159792b410841d9e54042cd3d16ff8a23
4
- data.tar.gz: db46fb1a2506db6ae48e868d9509162fb5f22baf
3
+ metadata.gz: 8dffd63b98ef0a8e0cd3336d91c64662079ec4e0
4
+ data.tar.gz: 1b31a614bde993c6dec20492cb7bef6eab9a0851
5
5
  SHA512:
6
- metadata.gz: 2595dfdede93834d5c759a7027184841103c03ef52c973bad8f400255e67de9119dbb7a300e53374093423ef062b4eca6200c324819168b86c19e3c7d4367c0c
7
- data.tar.gz: fe828d692de7245f994deba65de7496b0db791a636bd1f3da31b1a80316916b588810232e7a314634b33821a0f64a860dd1509b60104fa3ca4881db83270cb73
6
+ metadata.gz: d545addf7573a8d98ffd4db464189718f8cce0f7666575916446d9a7ea358195990e65bbf3dba97ca7f0b88282bda751dd659d0ef99cc56d7b169e01b87de95a
7
+ data.tar.gz: eca3feed2429f3aaceb68a7af39d5299f975ce2b51c4ffd545587e1b16c95f1ce427b58cd32587a31c1ef4fb97d93af500ed705c88052a5945704d9bb0e76d45
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ **v1.0.1** Supports Placers, specifically ShapeBasedPlacer, and Observer (hence callbacks)
2
+
3
+ **v1.0.0** First release depends on WordCram-1.0 to supply jars
data/Rakefile CHANGED
@@ -1,6 +1,11 @@
1
- task default: [:gem]
1
+ task default: [:install_jars, :gem]
2
2
 
3
3
  desc 'Build gem'
4
4
  task :gem do
5
5
  sh 'gem build ruby_wordcram.gemspec'
6
6
  end
7
+
8
+ desc 'Install jars'
9
+ task :install_jars do
10
+ sh "cd vendors && rake"
11
+ end
data/docs/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+
2
+ *~
3
+ _site
4
+ .sass-cache
5
+ .jekyll-metadata
6
+ Gemfile.lock
data/docs/_config.yml ADDED
@@ -0,0 +1,22 @@
1
+ # Site settings
2
+ port: 4000
3
+ title: WordCram gem for JRubyArt and propane
4
+ email: mamba2928@yahoo.co.uk
5
+ description: > # this means to ignore newlines until "baseurl:"
6
+ The ruby_wordcram gem is wrapper around the WordCram library by Dan Bernier,
7
+ that makes it very easy to use with JRubyArt and propane. Create fancy word
8
+ clouds with ruby_wordcram.
9
+ baseurl: "" # the subpath of your site, e.g. /blog
10
+ regenerate: true
11
+ url: "https://ruby-processing.github.io/WordCram"
12
+
13
+ urls:
14
+ bugs: https://github.com/ruby-processing/WordCram/issues
15
+ github: https://github.com/ruby-processing/WordCram/
16
+ twitter_username: monkstoneT
17
+ github_username: monkstone
18
+
19
+ syntax-highlighting:
20
+ enabled: true
21
+ # Build settings
22
+ markdown: kramdown
@@ -0,0 +1,38 @@
1
+ <footer class="site-footer">
2
+
3
+ <div class="wrapper">
4
+
5
+ <h2 class="footer-heading">{{ site.title }}</h2>
6
+
7
+ <div class="footer-col-wrapper">
8
+ <div class="footer-col footer-col-1">
9
+ <ul class="contact-list">
10
+ <li>{{ site.title }}</li>
11
+ <li><a href="mailto:{{ site.email }}">{{ site.email }}</a></li>
12
+ </ul>
13
+ </div>
14
+
15
+ <div class="footer-col footer-col-2">
16
+ <ul class="social-media-list">
17
+ {% if site.github_username %}
18
+ <li>
19
+ {% include icon-github.html username=site.github_username %}
20
+ </li>
21
+ {% endif %}
22
+
23
+ {% if site.twitter_username %}
24
+ <li>
25
+ {% include icon-twitter.html username=site.twitter_username %}
26
+ </li>
27
+ {% endif %}
28
+ </ul>
29
+ </div>
30
+
31
+ <div class="footer-col footer-col-3">
32
+ <p>{{ site.description }}</p>
33
+ </div>
34
+ </div>
35
+
36
+ </div>
37
+
38
+ </footer>
@@ -0,0 +1,15 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ {% if page.keywords %}
6
+ <meta name="keywords" content="{{ page.keywords }}" />
7
+ {% else %}
8
+ <meta name="keywords" content="art, JRubyArt, code, blog, ruby" />
9
+ {% endif %}<title>{% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
10
+ <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
11
+
12
+ <link rel="stylesheet" href="https://ruby-processing.github.io/JRubyArt/css/main.css"/>
13
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.github.url | prepend: site.url }}">
14
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.github.url | prepend: site.url }}" />
15
+ </head>
@@ -0,0 +1,27 @@
1
+ <header class="site-header">
2
+
3
+ <div class="wrapper">
4
+
5
+ <a class="site-title" href="{{ site.baseurl }}/">{{ site.title }}</a>
6
+
7
+ <nav class="site-nav">
8
+ <a href="#" class="menu-icon">
9
+ <svg viewBox="0 0 18 15">
10
+ <path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
11
+ <path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
12
+ <path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
13
+ </svg>
14
+ </a>
15
+
16
+ <div class="trigger">
17
+ {% for my_page in site.pages %}
18
+ {% if my_page.title %}
19
+ <a class="page-link" href="{{ my_page.url | prepend: site.github.url }}">{{ my_page.title }}</a>
20
+ {% endif %}
21
+ {% endfor %}
22
+ </div>
23
+ </nav>
24
+
25
+ </div>
26
+
27
+ </header>
@@ -0,0 +1 @@
1
+ <a href="https://github.com/{{ include.username }}"><span class="icon icon--github">{% include icon-github.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
@@ -0,0 +1 @@
1
+ <a href="https://twitter.com/{{ include.username }}"><span class="icon icon--twitter">{% include icon-twitter.svg %}</span><span class="username">{{ include.username }}</span></a>
@@ -0,0 +1 @@
1
+ <svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% include header.html %}
9
+
10
+ <div class="page-content">
11
+ <div class="wrapper">
12
+ {{ content }}
13
+ </div>
14
+ </div>
15
+
16
+ {% include footer.html %}
17
+
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title">{{ page.title }}</h1>
8
+ </header>
9
+
10
+ <div class="post-content">
11
+ {{ content }}
12
+ </div>
13
+
14
+ </article>
@@ -0,0 +1,15 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title" itemprop="name headline">{{ page.title }}</h1>
8
+ <p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}</p>
9
+ </header>
10
+
11
+ <div class="post-content" itemprop="articleBody">
12
+ {{ content }}
13
+ </div>
14
+
15
+ </article>
@@ -0,0 +1,54 @@
1
+ ---
2
+ layout: post
3
+ title: "A first Sketch"
4
+ date: 2017-03-07 07:34:13
5
+ categories: wordcram update
6
+ ---
7
+
8
+ ### Requirements
9
+
10
+ Requires JRubyArt-1.3.0+ (hence jruby-9.0.8.0+)
11
+
12
+ ### Install the ruby_wordcram gem
13
+
14
+ ```bash
15
+ jruby -S gem install ruby_wordcram # safe way
16
+ gem install ruby_wordcram # using rvm rbenv to use jruby instead of MRI
17
+ ```
18
+
19
+ Create basic sketch
20
+
21
+ `mkdir data` and install fonts see below
22
+
23
+ ```ruby
24
+ # This sketch shows how to make a WordCram from any webpage.
25
+ # It uses my blog
26
+ # Minya Nouvelle font available at http://www.1001fonts.com/font_details.html?font_id=59
27
+
28
+ require 'ruby_wordcram'
29
+
30
+ def settings
31
+ size 800, 400
32
+ end
33
+
34
+ def setup
35
+ sketch_title 'WordCram from Web Page'
36
+ color_mode(HSB)
37
+ background(255)
38
+ WordCram.new(self)
39
+ .from_web_page('https://ruby-processing.github.io/about/')
40
+ .with_font(create_font(data_path('MINYN___.TTF'), 1))
41
+ .with_colorer(Colorers.two_hues_random_sats_on_white(self))
42
+ .sized_by_weight(7, 100)
43
+ .draw_all
44
+ end
45
+ ```
46
+
47
+ ### Output
48
+
49
+ <img src="{{ site.github.url }}/assets/wordcram.png" />
50
+ See more examples [here][examples].
51
+
52
+ Usage with propane is very similar, to be elaborated.
53
+
54
+ [examples]:https://github.com/ruby-processing/JRubyArt-examples/tree/master/external_library/gem/ruby_wordcram/
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Reset some basic elements
3
+ */
4
+ body, h1, h2, h3, h4, h5, h6,
5
+ p, blockquote, pre, hr,
6
+ dl, dd, ol, ul, figure {
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+
12
+
13
+ /**
14
+ * Basic styling
15
+ */
16
+ body {
17
+ font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
18
+ color: $text-color;
19
+ background-color: $background-color;
20
+ -webkit-text-size-adjust: 100%;
21
+ -webkit-font-feature-settings: "kern" 1;
22
+ -moz-font-feature-settings: "kern" 1;
23
+ -o-font-feature-settings: "kern" 1;
24
+ font-feature-settings: "kern" 1;
25
+ font-kerning: normal;
26
+ }
27
+
28
+
29
+
30
+ /**
31
+ * Set `margin-bottom` to maintain vertical rhythm
32
+ */
33
+ h1, h2, h3, h4, h5, h6,
34
+ p, blockquote, pre,
35
+ ul, ol, dl, figure,
36
+ %vertical-rhythm {
37
+ margin-bottom: $spacing-unit / 2;
38
+ }
39
+
40
+
41
+
42
+ /**
43
+ * Images
44
+ */
45
+ img {
46
+ max-width: 100%;
47
+ vertical-align: middle;
48
+ }
49
+
50
+
51
+
52
+ /**
53
+ * Figures
54
+ */
55
+ figure > img {
56
+ display: block;
57
+ }
58
+
59
+ figcaption {
60
+ font-size: $small-font-size;
61
+ }
62
+
63
+
64
+
65
+ /**
66
+ * Lists
67
+ */
68
+ ul, ol {
69
+ margin-left: $spacing-unit;
70
+ }
71
+
72
+ li {
73
+ > ul,
74
+ > ol {
75
+ margin-bottom: 0;
76
+ }
77
+ }
78
+
79
+
80
+
81
+ /**
82
+ * Headings
83
+ */
84
+ h1, h2, h3, h4, h5, h6 {
85
+ font-weight: $base-font-weight;
86
+ }
87
+
88
+
89
+
90
+ /**
91
+ * Links
92
+ */
93
+ a {
94
+ color: $brand-color;
95
+ text-decoration: none;
96
+
97
+ &:visited {
98
+ color: darken($brand-color, 15%);
99
+ }
100
+
101
+ &:hover {
102
+ color: $text-color;
103
+ text-decoration: underline;
104
+ }
105
+ }
106
+
107
+
108
+
109
+ /**
110
+ * Blockquotes
111
+ */
112
+ blockquote {
113
+ color: $grey-color;
114
+ border-left: 4px solid $grey-color-light;
115
+ padding-left: $spacing-unit / 2;
116
+ font-size: 18px;
117
+ letter-spacing: -1px;
118
+ font-style: italic;
119
+
120
+ > :last-child {
121
+ margin-bottom: 0;
122
+ }
123
+ }
124
+
125
+
126
+
127
+ /**
128
+ * Code formatting
129
+ */
130
+ pre,
131
+ code {
132
+ font-size: 15px;
133
+ border: 1px solid $grey-color-light;
134
+ border-radius: 3px;
135
+ background-color: #eef;
136
+ }
137
+
138
+ code {
139
+ padding: 1px 5px;
140
+ }
141
+
142
+ pre {
143
+ padding: 8px 12px;
144
+ overflow-x: auto;
145
+
146
+ > code {
147
+ border: 0;
148
+ padding-right: 0;
149
+ padding-left: 0;
150
+ }
151
+ }
152
+
153
+
154
+
155
+ /**
156
+ * Wrapper
157
+ */
158
+ .wrapper {
159
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
160
+ max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
161
+ margin-right: auto;
162
+ margin-left: auto;
163
+ padding-right: $spacing-unit;
164
+ padding-left: $spacing-unit;
165
+ @extend %clearfix;
166
+
167
+ @include media-query($on-laptop) {
168
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
169
+ max-width: calc(#{$content-width} - (#{$spacing-unit}));
170
+ padding-right: $spacing-unit / 2;
171
+ padding-left: $spacing-unit / 2;
172
+ }
173
+ }
174
+
175
+
176
+
177
+ /**
178
+ * Clearfix
179
+ */
180
+ %clearfix {
181
+
182
+ &:after {
183
+ content: "";
184
+ display: table;
185
+ clear: both;
186
+ }
187
+ }
188
+
189
+
190
+
191
+ /**
192
+ * Icons
193
+ */
194
+ .icon {
195
+
196
+ > svg {
197
+ display: inline-block;
198
+ width: 16px;
199
+ height: 16px;
200
+ vertical-align: middle;
201
+
202
+ path {
203
+ fill: $grey-color;
204
+ }
205
+ }
206
+ }
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Site header
3
+ */
4
+ .site-header {
5
+ border-top: 5px solid $grey-color-dark;
6
+ border-bottom: 1px solid $grey-color-light;
7
+ min-height: 56px;
8
+
9
+ // Positioning context for the mobile navigation icon
10
+ position: relative;
11
+ }
12
+
13
+ .site-title {
14
+ font-size: 26px;
15
+ font-weight: 300;
16
+ line-height: 56px;
17
+ letter-spacing: -1px;
18
+ margin-bottom: 0;
19
+ float: left;
20
+
21
+ &,
22
+ &:visited {
23
+ color: $grey-color-dark;
24
+ }
25
+ }
26
+
27
+ .site-nav {
28
+ float: right;
29
+ line-height: 56px;
30
+
31
+ .menu-icon {
32
+ display: none;
33
+ }
34
+
35
+ .page-link {
36
+ color: $text-color;
37
+ line-height: $base-line-height;
38
+
39
+ // Gaps between nav items, but not on the last one
40
+ &:not(:last-child) {
41
+ margin-right: 20px;
42
+ }
43
+ }
44
+
45
+ @include media-query($on-palm) {
46
+ position: absolute;
47
+ top: 9px;
48
+ right: $spacing-unit / 2;
49
+ background-color: $background-color;
50
+ border: 1px solid $grey-color-light;
51
+ border-radius: 5px;
52
+ text-align: right;
53
+
54
+ .menu-icon {
55
+ display: block;
56
+ float: right;
57
+ width: 36px;
58
+ height: 26px;
59
+ line-height: 0;
60
+ padding-top: 10px;
61
+ text-align: center;
62
+
63
+ > svg {
64
+ width: 18px;
65
+ height: 15px;
66
+
67
+ path {
68
+ fill: $grey-color-dark;
69
+ }
70
+ }
71
+ }
72
+
73
+ .trigger {
74
+ clear: both;
75
+ display: none;
76
+ }
77
+
78
+ &:hover .trigger {
79
+ display: block;
80
+ padding-bottom: 5px;
81
+ }
82
+
83
+ .page-link {
84
+ display: block;
85
+ padding: 5px 10px;
86
+
87
+ &:not(:last-child) {
88
+ margin-right: 0;
89
+ }
90
+ margin-left: 20px;
91
+ }
92
+ }
93
+ }
94
+
95
+
96
+
97
+ /**
98
+ * Site footer
99
+ */
100
+ .site-footer {
101
+ border-top: 1px solid $grey-color-light;
102
+ padding: $spacing-unit 0;
103
+ }
104
+
105
+ .footer-heading {
106
+ font-size: 18px;
107
+ margin-bottom: $spacing-unit / 2;
108
+ }
109
+
110
+ .contact-list,
111
+ .social-media-list {
112
+ list-style: none;
113
+ margin-left: 0;
114
+ }
115
+
116
+ .footer-col-wrapper {
117
+ font-size: 15px;
118
+ color: $grey-color;
119
+ margin-left: -$spacing-unit / 2;
120
+ @extend %clearfix;
121
+ }
122
+
123
+ .footer-col {
124
+ float: left;
125
+ margin-bottom: $spacing-unit / 2;
126
+ padding-left: $spacing-unit / 2;
127
+ }
128
+
129
+ .footer-col-1 {
130
+ width: -webkit-calc(35% - (#{$spacing-unit} / 2));
131
+ width: calc(35% - (#{$spacing-unit} / 2));
132
+ }
133
+
134
+ .footer-col-2 {
135
+ width: -webkit-calc(20% - (#{$spacing-unit} / 2));
136
+ width: calc(20% - (#{$spacing-unit} / 2));
137
+ }
138
+
139
+ .footer-col-3 {
140
+ width: -webkit-calc(45% - (#{$spacing-unit} / 2));
141
+ width: calc(45% - (#{$spacing-unit} / 2));
142
+ }
143
+
144
+ @include media-query($on-laptop) {
145
+ .footer-col-1,
146
+ .footer-col-2 {
147
+ width: -webkit-calc(50% - (#{$spacing-unit} / 2));
148
+ width: calc(50% - (#{$spacing-unit} / 2));
149
+ }
150
+
151
+ .footer-col-3 {
152
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
153
+ width: calc(100% - (#{$spacing-unit} / 2));
154
+ }
155
+ }
156
+
157
+ @include media-query($on-palm) {
158
+ .footer-col {
159
+ float: none;
160
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
161
+ width: calc(100% - (#{$spacing-unit} / 2));
162
+ }
163
+ }
164
+
165
+
166
+
167
+ /**
168
+ * Page content
169
+ */
170
+ .page-content {
171
+ padding: $spacing-unit 0;
172
+ }
173
+
174
+ .page-heading {
175
+ font-size: 20px;
176
+ }
177
+
178
+ .post-list {
179
+ margin-left: 0;
180
+ list-style: none;
181
+
182
+ > li {
183
+ margin-bottom: $spacing-unit;
184
+ }
185
+ }
186
+
187
+ .post-meta {
188
+ font-size: $small-font-size;
189
+ color: $grey-color;
190
+ }
191
+
192
+ .post-link {
193
+ display: block;
194
+ font-size: 24px;
195
+ }
196
+
197
+
198
+
199
+ /**
200
+ * Posts
201
+ */
202
+ .post-header {
203
+ margin-bottom: $spacing-unit;
204
+ }
205
+
206
+ .post-title {
207
+ font-size: 42px;
208
+ letter-spacing: -1px;
209
+ line-height: 1;
210
+
211
+ @include media-query($on-laptop) {
212
+ font-size: 36px;
213
+ }
214
+ }
215
+
216
+ .post-content {
217
+ margin-bottom: $spacing-unit;
218
+
219
+ h2 {
220
+ font-size: 32px;
221
+
222
+ @include media-query($on-laptop) {
223
+ font-size: 28px;
224
+ }
225
+ }
226
+
227
+ h3 {
228
+ font-size: 26px;
229
+
230
+ @include media-query($on-laptop) {
231
+ font-size: 22px;
232
+ }
233
+ }
234
+
235
+ h4 {
236
+ font-size: 20px;
237
+
238
+ @include media-query($on-laptop) {
239
+ font-size: 18px;
240
+ }
241
+ }
242
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Syntax highlighting styles
3
+ */
4
+ .highlight {
5
+ background: #fff;
6
+ @extend %vertical-rhythm;
7
+
8
+ .highlighter-rouge & {
9
+ background: #eef;
10
+ }
11
+
12
+ .c { color: #998; font-style: italic } // Comment
13
+ .err { color: #a61717; background-color: #e3d2d2 } // Error
14
+ .k { font-weight: bold } // Keyword
15
+ .o { font-weight: bold } // Operator
16
+ .cm { color: #998; font-style: italic } // Comment.Multiline
17
+ .cp { color: #999; font-weight: bold } // Comment.Preproc
18
+ .c1 { color: #998; font-style: italic } // Comment.Single
19
+ .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
20
+ .gd { color: #000; background-color: #fdd } // Generic.Deleted
21
+ .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
22
+ .ge { font-style: italic } // Generic.Emph
23
+ .gr { color: #a00 } // Generic.Error
24
+ .gh { color: #999 } // Generic.Heading
25
+ .gi { color: #000; background-color: #dfd } // Generic.Inserted
26
+ .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
27
+ .go { color: #888 } // Generic.Output
28
+ .gp { color: #555 } // Generic.Prompt
29
+ .gs { font-weight: bold } // Generic.Strong
30
+ .gu { color: #aaa } // Generic.Subheading
31
+ .gt { color: #a00 } // Generic.Traceback
32
+ .kc { font-weight: bold } // Keyword.Constant
33
+ .kd { font-weight: bold } // Keyword.Declaration
34
+ .kp { font-weight: bold } // Keyword.Pseudo
35
+ .kr { font-weight: bold } // Keyword.Reserved
36
+ .kt { color: #458; font-weight: bold } // Keyword.Type
37
+ .m { color: #099 } // Literal.Number
38
+ .s { color: #d14 } // Literal.String
39
+ .na { color: #008080 } // Name.Attribute
40
+ .nb { color: #0086B3 } // Name.Builtin
41
+ .nc { color: #458; font-weight: bold } // Name.Class
42
+ .no { color: #008080 } // Name.Constant
43
+ .ni { color: #800080 } // Name.Entity
44
+ .ne { color: #900; font-weight: bold } // Name.Exception
45
+ .nf { color: #900; font-weight: bold } // Name.Function
46
+ .nn { color: #555 } // Name.Namespace
47
+ .nt { color: #000080 } // Name.Tag
48
+ .nv { color: #008080 } // Name.Variable
49
+ .ow { font-weight: bold } // Operator.Word
50
+ .w { color: #bbb } // Text.Whitespace
51
+ .mf { color: #099 } // Literal.Number.Float
52
+ .mh { color: #099 } // Literal.Number.Hex
53
+ .mi { color: #099 } // Literal.Number.Integer
54
+ .mo { color: #099 } // Literal.Number.Oct
55
+ .sb { color: #d14 } // Literal.String.Backtick
56
+ .sc { color: #d14 } // Literal.String.Char
57
+ .sd { color: #d14 } // Literal.String.Doc
58
+ .s2 { color: #d14 } // Literal.String.Double
59
+ .se { color: #d14 } // Literal.String.Escape
60
+ .sh { color: #d14 } // Literal.String.Heredoc
61
+ .si { color: #d14 } // Literal.String.Interpol
62
+ .sx { color: #d14 } // Literal.String.Other
63
+ .sr { color: #009926 } // Literal.String.Regex
64
+ .s1 { color: #d14 } // Literal.String.Single
65
+ .ss { color: #990073 } // Literal.String.Symbol
66
+ .bp { color: #999 } // Name.Builtin.Pseudo
67
+ .vc { color: #008080 } // Name.Variable.Class
68
+ .vg { color: #008080 } // Name.Variable.Global
69
+ .vi { color: #008080 } // Name.Variable.Instance
70
+ .il { color: #099 } // Literal.Number.Integer.Long
71
+ }
data/docs/about.md ADDED
@@ -0,0 +1,12 @@
1
+ ---
2
+ layout: page
3
+ title: About
4
+ permalink: /about/
5
+ ---
6
+
7
+ WordCram is a library for Processing by [Dan Bernier][dan]. WordCram lets you generate word clouds in Processing. It does the heavy lifting – text analysis, collision detection – for you, so you can focus on making your word clouds as beautiful, as revealing, or as silly as you like. [ruby_wordcram gem][gem] is a ruby wrapper for the java processing library Wordcram library by [Dan Bernier][dan]. If you create processing sketches using [JRubyArt][jruby_art] or [propane][propane], mostly all you need to do is `require 'ruby_wordcram'` to use the WordCram library.
8
+
9
+ [jruby_art]: https://ruby-processing.github.io/index.html
10
+ [gem]:https://github.com/ruby-processing/WordCram/
11
+ [dan]:http://wordcram.org/
12
+ [propane]:https://ruby-processing.github.io/propane/
Binary file
@@ -0,0 +1,38 @@
1
+ ---
2
+ # Only the main Sass file needs front matter (the dashes are enough)
3
+ ---
4
+ @charset "utf-8";
5
+
6
+ // Our variables
7
+ $base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
8
+ $base-font-size: 16px;
9
+ $base-font-weight: 400;
10
+ $small-font-size: $base-font-size * 0.875;
11
+ $base-line-height: 1.5;
12
+
13
+ $spacing-unit: 30px;
14
+
15
+ $text-color: #111;
16
+ $background-color: #fdfdfd;
17
+ $brand-color: #2a7ae2;
18
+
19
+ $grey-color: #828282;
20
+ $grey-color-light: lighten($grey-color, 40%);
21
+ $grey-color-dark: darken($grey-color, 25%);
22
+
23
+ // Width of the content area
24
+ $content-width: 800px;
25
+
26
+ $on-palm: 600px;
27
+ $on-laptop: 800px;
28
+
29
+ // Minima also includes a mixin for defining media queries.
30
+ // Use media queries like this:
31
+ // @include media-query($on-palm) {
32
+ // .wrapper {
33
+ // padding-right: $spacing-unit / 2;
34
+ // padding-left: $spacing-unit / 2;
35
+ // }
36
+ // }
37
+
38
+ // Import partials from the `minima` theme.
data/docs/favicon.ico ADDED
Binary file
data/docs/index.html ADDED
@@ -0,0 +1,38 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <section role="banner">
5
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
6
+ width="256px" height="256px" viewBox="10 10 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve" fill="#380E99">
7
+ <g>
8
+ <path d="M56.161,183.028l4.452-43.162l7.904,6.584L56,185.335L56.161,183.028z M70.823,152.055l19.61,39.046l-32.951,4.116
9
+ L70.823,152.055z M92.739,195.552v0.161V195.552l0.657-0.161v0.161l93.095,3.62l-126.703,0.496L92.739,195.552z M127.997,90.604
10
+ l-30.645,34.098l-27.186,17.137l-7.743-6.584l10.874-20.435l25.872-28.842l24.711-17.297l11.371,3.138L127.997,90.604z
11
+ M90.266,182.036l-18.122-36.082l25.375-16.144L90.266,182.036z M154.693,141.181l-61.129,48.271l8.24-59.306L154.693,141.181z
12
+ M158.152,144.479l38.06,51.569l-98.532-3.795L158.152,144.479z M130.638,94.546l22.734,43.015l-51.241-11.371L130.638,94.546z
13
+ M171.004,56.332l-34.111,11.035l-6.094-1.649L171.004,56.332z M132.945,90.604l7.576-19.281l42.183,6.758L132.945,90.604z
14
+ M134.922,94.546l53.875-14.494l-30.973,57.83L134.922,94.546z M194.234,76.257l-45.146-7.897l36.082-11.706L194.234,76.257z
15
+ M200,195.391l-39.213-53.218l33.943-63.609L200,195.391z"/>
16
+ </g>
17
+ </svg>
18
+ </section>
19
+
20
+ <div class="home">
21
+
22
+ <h1 class="page-heading">Articles</h1>
23
+ {% if page.description %}<meta name="description" content="{{ page.description }}">{% endif %}
24
+ <ul class="post-list">
25
+ {% for post in site.posts %}
26
+ <li>
27
+ <span class="post-meta">{{ post.date | date: "%b %-d, %Y" }}</span>
28
+
29
+ <h2>
30
+ <a class="post-link" href="{{ post.url | prepend: site.github.url }}">{{ post.title }}</a>
31
+ </h2>
32
+ </li>
33
+ {% endfor %}
34
+ </ul>
35
+
36
+ <p class="rss-subscribe">subscribe <a href="{{ "/feed.xml" | prepend: site.github.url }}">via RSS</a></p>
37
+
38
+ </div>
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module WordCram
3
- VERSION = '1.0.0'.freeze
3
+ VERSION = '1.0.1'.freeze
4
4
  end
data/lib/ruby_wordcram.rb CHANGED
@@ -3,7 +3,10 @@ if RUBY_PLATFORM == 'java'
3
3
  require 'WordCram.jar'
4
4
  require 'jsoup-1.7.2.jar'
5
5
  require 'cue.language.jar'
6
- %w(Colorers Word WordAngler WordColorer WordCram WordFonter WordPlacer).each do |klass|
6
+ wc = %w(WordAngler WordColorer WordCram WordFonter WordPlacer WordSkipReason)
7
+ sh = %w(Colorers ImageShaper Observer Placers Word ShapeBasedPlacer)
8
+ WC = wc.concat(sh).freeze
9
+ WC.each do |klass|
7
10
  java_import "wordcram.#{klass}"
8
11
  end
9
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_wordcram
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Bernier
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-03-06 00:00:00.000000000 Z
13
+ date: 2017-03-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -42,9 +42,31 @@ extra_rdoc_files:
42
42
  - LICENSE
43
43
  files:
44
44
  - ".gitignore"
45
+ - CHANGELOG.md
45
46
  - LICENSE
46
47
  - README.md
47
48
  - Rakefile
49
+ - docs/.gitignore
50
+ - docs/_config.yml
51
+ - docs/_includes/footer.html
52
+ - docs/_includes/head.html
53
+ - docs/_includes/header.html
54
+ - docs/_includes/icon-github.html
55
+ - docs/_includes/icon-github.svg
56
+ - docs/_includes/icon-twitter.html
57
+ - docs/_includes/icon-twitter.svg
58
+ - docs/_layouts/default.html
59
+ - docs/_layouts/page.html
60
+ - docs/_layouts/post.html
61
+ - docs/_posts/2017-03-07-getting_started.md
62
+ - docs/_sass/_base.scss
63
+ - docs/_sass/_layout.scss
64
+ - docs/_sass/_syntax-highlighting.scss
65
+ - docs/about.md
66
+ - docs/assets/wordcram.png
67
+ - docs/css/main.scss
68
+ - docs/favicon.ico
69
+ - docs/index.html
48
70
  - example/data/MINYN___.TTF
49
71
  - example/test.rb
50
72
  - lib/WordCram.jar