rsvgr 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd4d756ecd876ced14a6866dd9594a1c93666f6e
4
- data.tar.gz: d3e3f0d0e9da5624f44ebe704132cf6adfb2a17e
3
+ metadata.gz: 57ae7236d7ad70541c443a79ff46b350b329a18b
4
+ data.tar.gz: 3b2b17d2b27be8fe4902585000716a469e759c1f
5
5
  SHA512:
6
- metadata.gz: f508fc6214a96e9411ef2830e5e6bd79ae9476425be762854812b0edbf4f79f2e08928e99376f465d718483e9232b27e4d63919fb285f7e2993a7654e90e4098
7
- data.tar.gz: 37c542277ac4c4f7184458b83820067259ae155c056f24c0dc8d7dfa63794beef0a406ded045f5473972d52f81af941730d0bda0da6fe009b39a5ba25897235e
6
+ metadata.gz: aa6b1014cad2b629d67bce579080339a6159b962e8b77043a610c79f66272f4c6e312466966e313f9d66ea38c2dcd18f95c492deb74543f5a543917a437d9669
7
+ data.tar.gz: 879debc0e25101c7bccbcf4912379d2a972bba407c9a9f2b721adca70e18a6974f3f82d736490fef5bea3a7b9f1847b03b3bbe7283e466025f029ef1cfd424bb
data/examples/chart.rb ADDED
@@ -0,0 +1,28 @@
1
+ require_relative "../rsvgr"
2
+ include RSVGR
3
+
4
+ world = {
5
+ "4000 до н.э." => 7,
6
+ "1000 до н.э." => 50,
7
+ "500 до н.э." => 100,
8
+ 1 => 300,
9
+ 1000 => 400,
10
+ 1800 => 1000,
11
+ 1900 => 1650,
12
+ 1990 => 5264,
13
+ }
14
+ asia = {
15
+ "10000 до н.э." => 1,
16
+ "4000 до н.э." => 4,
17
+ "1000 до н.э." => 34,
18
+ 1000 => 270,
19
+ 1900 => 962,
20
+ 1990 => 3216,
21
+ }
22
+ ticks_x = (world.keys + asia.keys).sort_by{ |date| date.is_a?(String) ? [0, -date.to_i] : [1, date] }.uniq
23
+
24
+ svg = Root.new << plot = Samples::Plot.new(ticks_x:ticks_x)
25
+ plot.add_line(title: "население Земли", data_pairs: world)\
26
+ .add_line(title: "население Азии", data_pairs: asia)
27
+
28
+ svg.cat.save.open_with "Chromium"
data/examples/crowd.rb ADDED
@@ -0,0 +1,11 @@
1
+ require_relative "../lib/rsvgr"
2
+ include RSVGR
3
+
4
+ grid_size_x, grid_size_y = 30, 20
5
+
6
+ svg = Root.new
7
+ svg << Samples::Grid.new(xn:grid_size_x, yn:grid_size_y){ |cell,i,j|
8
+ cell << Samples::face(rotate:rand(360)) if i&j==0
9
+ }
10
+
11
+ svg.cat.save#.open_with "Chromium"
@@ -0,0 +1,9 @@
1
+ require_relative "../lib/rsvgr"
2
+ include RSVGR
3
+
4
+ svg = Root.new
5
+ svg << Samples::Grid.new(xn:9, yn:9, grid:true){ |cell,i,j|
6
+ cell << (Text.new << (i+1)*(j+1))
7
+ }
8
+
9
+ svg.cat.save#.open_with "Chromium"
data/lib/rsvgr.rb CHANGED
@@ -1,16 +1,14 @@
1
- # I don't give a fuck about namespaces, xslt, etc.
2
1
  # I don't use any xml library, because I just don't really need it here
3
- # I don't give a fuck about xslt and other shit
4
- # I JUST A PSYCHO REDING THIS AND DOING THE EASIEST WAY
5
2
 
6
3
  # http://www.w3.org/TR/SVGTiny12/single-page.html
7
4
 
8
5
 
9
6
  module RSVGR
10
7
 
11
- DEFAULT_SIZE = 100.0
12
8
  UNSUPPORTED = ->{ raise "not supported currently" }
13
9
 
10
+ DEFAULT_SIZE = 100.0 # if we use such small value as 1.0 vertical text alignment goes mad
11
+
14
12
  class Node
15
13
  def initialize args = {}
16
14
  args[:x1] ||= 0
@@ -56,6 +54,9 @@ module RSVGR
56
54
  "#{" stroke=\"#{@stroke_color}\"" if @stroke_color}" \
57
55
  ">\n" + to_s_children(additional_child) + "</g>\n"
58
56
  end
57
+ # def []= k,v
58
+ # instance_variable_set "@#{k}",v
59
+ # end
59
60
  end
60
61
 
61
62
  class Root < CanIHazChildren
@@ -109,7 +110,7 @@ module RSVGR
109
110
  save_as to_s, "temp.svg"
110
111
  end
111
112
  def save_html
112
- UNSUPPORTED
113
+ UNSUPPORTED
113
114
  save_as to_html, "temp.html"
114
115
  end
115
116
  def save_as what, where
@@ -239,8 +240,6 @@ module RSVGR
239
240
  end
240
241
  class Grid < Group
241
242
  def initialize args = {}
242
- #args[:x2] ||= args[:xn] + args[:x1] ||= 0
243
- #args[:y2] ||= args[:yn] + args[:y1] ||= 0
244
243
  args[:fill_color] = "white"
245
244
  super
246
245
  if @xn*(@y2-@y1) > (@x2-@x1)*@yn
@@ -261,7 +260,8 @@ module RSVGR
261
260
  scale_x: w/DEFAULT_SIZE,
262
261
  scale_y: h/DEFAULT_SIZE,
263
262
  )
264
- cell << Rect.new(stroke_color:"silver", stroke_width:DEFAULT_SIZE/10) << inside = Group.new(
263
+ cell << Rect.new(stroke_color:"silver", stroke_width:DEFAULT_SIZE/10) if args[:grid]
264
+ cell << inside = Group.new(
265
265
  x: DEFAULT_SIZE*0.1,
266
266
  y: DEFAULT_SIZE*0.1,
267
267
  scale_x: 0.8,
@@ -398,8 +398,3 @@ module RSVGR
398
398
 
399
399
  end
400
400
 
401
-
402
- if __FILE__ == $0
403
- puts `ruby -Cexamples chart.rb`
404
- end
405
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsvgr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Victor Maslov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-10 00:00:00.000000000 Z
11
+ date: 2014-07-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: not ready for public usage -- uploaded for personal usage
14
14
  email: nakilon@gmail.com
@@ -17,6 +17,9 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/rsvgr.rb
20
+ - examples/multable.rb
21
+ - examples/crowd.rb
22
+ - examples/chart.rb
20
23
  homepage: http://rubygems.org/gems/rsvgr
21
24
  licenses:
22
25
  - MIT