ziya 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. data/Manifest.txt +74 -28
  2. data/README.txt +91 -14
  3. data/Rakefile +1 -1
  4. data/bin/ziyafy +2 -0
  5. data/charts/AC_RunActiveContent.js +292 -0
  6. data/charts/charts.swf +0 -0
  7. data/charts/charts_library/ar3d.swf +0 -0
  8. data/charts/charts_library/arno.swf +0 -0
  9. data/charts/charts_library/ars3.swf +0 -0
  10. data/charts/charts_library/arst.swf +0 -0
  11. data/charts/charts_library/brfl.swf +0 -0
  12. data/charts/charts_library/brno.swf +0 -0
  13. data/charts/charts_library/brst.swf +0 -0
  14. data/charts/charts_library/buno.swf +0 -0
  15. data/charts/charts_library/cl3d.swf +0 -0
  16. data/charts/charts_library/clfl.swf +0 -0
  17. data/charts/charts_library/clno.swf +0 -0
  18. data/charts/charts_library/clp3.swf +0 -0
  19. data/charts/charts_library/cls3.swf +0 -0
  20. data/charts/charts_library/clst.swf +0 -0
  21. data/charts/charts_library/cnno.swf +0 -0
  22. data/charts/charts_library/lnno.swf +0 -0
  23. data/charts/charts_library/mxno.swf +0 -0
  24. data/charts/charts_library/pi3d.swf +0 -0
  25. data/charts/charts_library/pino.swf +0 -0
  26. data/charts/charts_library/pono.swf +0 -0
  27. data/charts/charts_library/scno.swf +0 -0
  28. data/charts/full_screen.swf +0 -0
  29. data/charts/sliders/black.swf +0 -0
  30. data/charts/sliders/preview_handle_1.swf +0 -0
  31. data/charts/sliders/preview_handle_2.swf +0 -0
  32. data/fred.rb +36 -0
  33. data/gauges/designs/circle.yml +18 -0
  34. data/gauges/designs/signal.yml +14 -0
  35. data/gauges/designs/thermo.yml +119 -0
  36. data/gauges/designs/title.yml +11 -0
  37. data/gauges/gauge.swf +0 -0
  38. data/lib/ziya.rb +17 -5
  39. data/lib/ziya/charts/area.rb +6 -1
  40. data/lib/ziya/charts/area_threed.rb +16 -0
  41. data/lib/ziya/charts/bar.rb +8 -3
  42. data/lib/ziya/charts/base.rb +210 -153
  43. data/lib/ziya/charts/bubble.rb +18 -0
  44. data/lib/ziya/charts/candle_stick.rb +6 -1
  45. data/lib/ziya/charts/column.rb +7 -2
  46. data/lib/ziya/charts/column_threed.rb +6 -1
  47. data/lib/ziya/charts/floating_bar.rb +6 -1
  48. data/lib/ziya/charts/floating_column.rb +7 -2
  49. data/lib/ziya/charts/line.rb +7 -2
  50. data/lib/ziya/charts/mixed.rb +5 -0
  51. data/lib/ziya/charts/parallel_threed_column.rb +6 -1
  52. data/lib/ziya/charts/pie.rb +7 -2
  53. data/lib/ziya/charts/pie_threed.rb +7 -2
  54. data/lib/ziya/charts/polar.rb +6 -1
  55. data/lib/ziya/charts/scatter.rb +6 -1
  56. data/lib/ziya/charts/stacked_area.rb +5 -0
  57. data/lib/ziya/charts/stacked_bar.rb +5 -0
  58. data/lib/ziya/charts/stacked_column.rb +7 -2
  59. data/lib/ziya/charts/stacked_threed_area.rb +16 -0
  60. data/lib/ziya/charts/stacked_threed_column.rb +6 -1
  61. data/lib/ziya/components/area.rb +5 -2
  62. data/lib/ziya/components/axis_category.rb +8 -60
  63. data/lib/ziya/components/axis_ticks.rb +25 -27
  64. data/lib/ziya/components/axis_value.rb +5 -48
  65. data/lib/ziya/components/base.rb +59 -17
  66. data/lib/ziya/components/bevel.rb +15 -0
  67. data/lib/ziya/components/blur.rb +13 -0
  68. data/lib/ziya/components/chart_border.rb +4 -23
  69. data/lib/ziya/components/chart_grid_h.rb +17 -19
  70. data/lib/ziya/components/chart_grid_v.rb +18 -19
  71. data/lib/ziya/components/chart_guide.rb +16 -0
  72. data/lib/ziya/components/chart_label.rb +16 -0
  73. data/lib/ziya/components/chart_pref.rb +12 -12
  74. data/lib/ziya/components/chart_rect.rb +27 -26
  75. data/lib/ziya/components/chart_transition.rb +15 -16
  76. data/lib/ziya/components/circle.rb +5 -2
  77. data/lib/ziya/components/draw.rb +12 -11
  78. data/lib/ziya/components/draw_base.rb +10 -0
  79. data/lib/ziya/components/filter.rb +26 -0
  80. data/lib/ziya/components/glow.rb +14 -0
  81. data/lib/ziya/components/image.rb +5 -1
  82. data/lib/ziya/components/legend.rb +18 -0
  83. data/lib/ziya/components/line.rb +6 -2
  84. data/lib/ziya/components/link.rb +9 -9
  85. data/lib/ziya/components/link_data.rb +9 -10
  86. data/lib/ziya/components/rect.rb +7 -2
  87. data/lib/ziya/components/scroll.rb +26 -0
  88. data/lib/ziya/components/shadow.rb +14 -0
  89. data/lib/ziya/components/text.rb +5 -1
  90. data/lib/ziya/components/update.rb +19 -0
  91. data/lib/ziya/gauges/base.rb +172 -0
  92. data/lib/ziya/gauges/radial.rb +18 -0
  93. data/lib/ziya/gauges/signal.rb +138 -0
  94. data/lib/ziya/gauges/support/area.rb +13 -0
  95. data/lib/ziya/gauges/support/base.rb +33 -0
  96. data/lib/ziya/gauges/support/circle.rb +14 -0
  97. data/lib/ziya/gauges/support/design.rb +5 -0
  98. data/lib/ziya/gauges/support/image.rb +12 -0
  99. data/lib/ziya/gauges/support/line.rb +12 -0
  100. data/lib/ziya/gauges/support/link.rb +24 -0
  101. data/lib/ziya/gauges/support/move.rb +15 -0
  102. data/lib/ziya/gauges/support/point.rb +12 -0
  103. data/lib/ziya/gauges/support/polygon.rb +13 -0
  104. data/lib/ziya/gauges/support/radial_base.rb +21 -0
  105. data/lib/ziya/gauges/support/radial_numbers.rb +41 -0
  106. data/lib/ziya/gauges/support/radial_ticks.rb +29 -0
  107. data/lib/ziya/gauges/support/rect.rb +14 -0
  108. data/lib/ziya/gauges/support/rotate.rb +15 -0
  109. data/lib/ziya/gauges/support/scale.rb +15 -0
  110. data/lib/ziya/gauges/support/text.rb +21 -0
  111. data/lib/ziya/gauges/support/update.rb +12 -0
  112. data/lib/ziya/gauges/thermo.rb +121 -0
  113. data/lib/ziya/helpers/base_helper.rb +39 -6
  114. data/lib/ziya/utils/text.rb +6 -0
  115. data/lib/ziya/version.rb +1 -1
  116. data/lib/ziya/ziya_helper.rb +289 -62
  117. data/spec/charts/base_spec.rb +35 -21
  118. data/spec/charts/chart_type_spec.rb +24 -3
  119. data/spec/components/area_spec.rb +9 -2
  120. data/spec/components/draw_spec.rb +1 -2
  121. data/spec/components/filter_spec.rb +27 -0
  122. data/spec/components/link_spec.rb +1 -2
  123. data/spec/components/series_color_spec.rb +1 -2
  124. data/spec/components/series_explode_spec.rb +1 -2
  125. data/spec/components/series_switch_spec.rb +1 -2
  126. data/spec/designs/circle.yml +7 -0
  127. data/spec/designs/crapping_out.yml +8 -0
  128. data/spec/designs/gauge_1.yml +43 -0
  129. data/spec/designs/gauge_2.yml +11 -0
  130. data/spec/designs/gauge_no_name.yml +43 -0
  131. data/spec/designs/gauge_raw.yml +5 -0
  132. data/spec/designs/thermo.yml +13 -0
  133. data/spec/gauges/base_spec.rb +90 -0
  134. data/spec/gauges/signal_spec.rb +36 -0
  135. data/spec/gauges/support/area_spec.rb +40 -0
  136. data/spec/gauges/support/circle_spec.rb +78 -0
  137. data/spec/gauges/support/image_spec.rb +35 -0
  138. data/spec/gauges/support/line_spec.rb +34 -0
  139. data/spec/gauges/support/link_spec.rb +35 -0
  140. data/spec/gauges/support/move_spec.rb +45 -0
  141. data/spec/gauges/support/polygon_spec.rb +36 -0
  142. data/spec/gauges/support/radial_numbers_spec.rb +35 -0
  143. data/spec/gauges/support/radial_ticks_spec.rb +30 -0
  144. data/spec/gauges/support/rotate_spec.rb +45 -0
  145. data/spec/gauges/support/scale_spec.rb +46 -0
  146. data/spec/gauges/support/text_spec.rb +40 -0
  147. data/spec/gauges/thermo_spec.rb +49 -0
  148. data/spec/helpers/base_helper_spec.rb +20 -6
  149. data/spec/spec_helper.rb +4 -1
  150. data/spec/test_helpers/gauge_2_helper.rb +17 -0
  151. data/spec/utils/logger_spec.rb +1 -3
  152. data/spec/utils/text_spec.rb +1 -2
  153. data/spec/ziya_helper_spec.rb +88 -11
  154. data/spec/ziya_spec.rb +1 -1
  155. data/tasks/gem.rake +1 -1
  156. metadata +79 -32
  157. data/charts/themes/commando/bar_chart.yml +0 -9
  158. data/charts/themes/commando/base_chart.yml +0 -65
  159. data/charts/themes/commando/column_chart.yml +0 -13
  160. data/charts/themes/commando/column_threed_chart.yml +0 -25
  161. data/charts/themes/commando/parallel_threed_column_chart.yml +0 -17
  162. data/charts/themes/commando/pie_chart.yml +0 -22
  163. data/charts/themes/commando/pie_threed_chart.yml +0 -28
  164. data/charts/themes/commando/polar_chart.yml +0 -11
  165. data/charts/themes/commando/stacked_bar_chart.yml +0 -9
  166. data/charts/themes/commando/stacked_column_chart.yml +0 -14
  167. data/charts/themes/commando/stacked_threed_column_chart.yml +0 -17
  168. data/charts/themes/default/bar_chart.yml +0 -3
  169. data/charts/themes/default/base_chart.yml +0 -67
  170. data/charts/themes/default/column_chart.yml +0 -13
  171. data/charts/themes/default/column_threed_chart.yml +0 -25
  172. data/charts/themes/default/parallel_threed_column_chart.yml +0 -17
  173. data/charts/themes/default/pie_chart.yml +0 -29
  174. data/charts/themes/default/pie_threed_chart.yml +0 -28
  175. data/charts/themes/default/polar_chart.yml +0 -12
  176. data/charts/themes/default/stacked_bar_chart.yml +0 -3
  177. data/charts/themes/default/stacked_column_chart.yml +0 -14
  178. data/charts/themes/default/stacked_threed_column_chart.yml +0 -17
  179. data/charts/themes/default/test.yml +0 -4
  180. data/lib/ziya/components/chart_value.rb +0 -71
  181. data/lib/ziya/components/legend_label.rb +0 -18
  182. data/lib/ziya/components/legend_rect.rb +0 -19
  183. data/lib/ziya/components/legend_transition.rb +0 -18
  184. data/lib/ziya/components/live_update.rb +0 -21
@@ -0,0 +1,46 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. spec_helper]))
2
+
3
+ describe Ziya::Gauges::Support::Scale do
4
+ before( :all ) do
5
+ @comp = Ziya::Gauges::Support::Scale.new(
6
+ :x => 3,
7
+ :y => 30,
8
+ :start_scale => 25,
9
+ :end_scale => 100,
10
+ :step => 0,
11
+ :direction => 10,
12
+ :shake_span => 100,
13
+ :shake_frequency => 10,
14
+ :shake_snap => 20,
15
+ :shadow_alpha => 100,
16
+ :shadow_x_offset => 10,
17
+ :shadow_y_offset => 20,
18
+ :components => YAML::Omap[
19
+ :line1, Ziya::Gauges::Support::Line.new( :x1 => 10, :y1 => 20 ),
20
+ :line2, Ziya::Gauges::Support::Line.new( :x1 => 20, :y1 => 30 )
21
+ ] )
22
+ end
23
+
24
+ describe "#flatten" do
25
+ it "should flatten component correctly" do
26
+ xml = Builder::XmlMarkup.new
27
+ @comp.flatten( xml )
28
+ buff = xml.to_s
29
+ @comp.class.attributes[@comp.class.name].each do |attr|
30
+ buff.scan( /\s#{attr}=\"(\w+)\"/ ).should == [ [@comp.send( attr ).to_s] ] unless attr == :components
31
+ end
32
+ buff.scan( /<line/ ).size.should == 2
33
+ buff.scan( /\sx1=\"(.*?\d+)\"/ ).should == [ ["10"], ["20"] ]
34
+ buff.scan( /\sy1=\"(.*?\d+)\"/ ).should == [ ["20"], ["30"] ]
35
+ end
36
+ end
37
+
38
+ describe "YAML load" do
39
+ it "should load from yaml correctly" do
40
+ comp = YAML.load( @comp.to_comp_yaml( :test, 1 ) ).first[:test]
41
+ @comp.options.each_pair do |k,v|
42
+ comp.send( k ).should == v
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,40 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. .. spec_helper]))
2
+
3
+ describe Ziya::Gauges::Support::Text do
4
+ before( :all ) do
5
+ @comp = Ziya::Gauges::Support::Text.new(
6
+ :x => 1,
7
+ :y => 2,
8
+ :width => 100,
9
+ :height => 100,
10
+ :rotation => 0,
11
+ :font => "arial",
12
+ :bold => true,
13
+ :size => 1,
14
+ :align => "left",
15
+ :color => "ffffff",
16
+ :alpha => 100,
17
+ :text => "Hello Bubba !!" )
18
+ end
19
+
20
+ describe "#flatten" do
21
+ it "should flatten component correctly" do
22
+ xml = Builder::XmlMarkup.new
23
+ @comp.flatten( xml )
24
+ buff = xml.to_s
25
+ @comp.class.attributes[@comp.class.name].each do |attr|
26
+ buff.scan( /#{attr}=\"(\w+)\"/ ).should == [ [@comp.send( attr ).to_s] ] unless attr == :text
27
+ end
28
+ buff.scan( />(#{@comp.text})<\/text>/ ).should == [ [@comp.text] ]
29
+ end
30
+ end
31
+
32
+ describe "YAML load" do
33
+ it "should load from yaml correctly" do
34
+ comp = YAML.load( @comp.to_comp_yaml( :test, 1 ) ).first[:test]
35
+ @comp.options.each_pair do |k,v|
36
+ comp.send( k ).should == v
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,49 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
2
+
3
+ describe Ziya::Gauges::Thermo do
4
+ describe "#initialize" do
5
+ before( :each ) do
6
+ @gauge = Ziya::Gauges::Thermo.new( "test_license", "override" )
7
+ end
8
+
9
+ it "should create a gauge with the correct license" do
10
+ @gauge.license.should == "test_license"
11
+ end
12
+
13
+ it "should create a gauge with the correct id" do
14
+ @gauge.design_id.should == "override"
15
+ end
16
+ end
17
+
18
+ describe "#to_xml" do
19
+ it "should produce the correct xml for the std gauge" do
20
+ buff = Ziya::Gauges::Thermo.new( "test_license" ).to_xml
21
+ buff.scan( /<license/ ).size.should == 1
22
+ buff.scan( /<circle/ ).size.should == 6
23
+ buff.scan( /<line/ ).size.should == 13
24
+ buff.scan( /<rect/ ).size.should == 4
25
+ buff.scan( /x1=\"(.*?\d+)\"/ ).should == [["30"], ["30"], ["30"], ["30"], ["30"], ["30"], ["30"], ["80"], ["80"], ["80"], ["80"], ["80"], ["80"]]
26
+ buff.scan( /y1=\"(.*?\d+)\"/ ).should == [["155.0"], ["138.0"], ["121.0"], ["104.0"], ["87.0"], ["70.0"], ["53.0"], ["153"], ["133"], ["113"], ["93"], ["73"], ["53"]]
27
+ buff.scan( /x2=\"(.*?\d+)\"/ ).should == [["38"], ["38"], ["38"], ["38"], ["38"], ["38"], ["38"], ["88"], ["88"], ["88"], ["88"], ["88"], ["88"]]
28
+ buff.scan( /y2=\"(.*?\d+)\"/ ).should == [["155.0"], ["138.0"], ["121.0"], ["104.0"], ["87.0"], ["70.0"], ["53.0"], ["153"], ["133"], ["113"], ["93"], ["73"], ["53"]]
29
+ buff.scan( /x=\"(.*?\d+)\"/ ).should == [["-130"], ["40"], ["60"], ["60"], ["60"], ["55"], ["20"], ["20"], ["85"], ["60"], ["44"], ["44"], ["10"], ["10"], ["10"], ["10"], ["10"], ["10"], ["10"], ["88"], ["88"], ["88"], ["88"], ["88"], ["88"], ["999"]]
30
+ # buff.scan( /y=\"(.*?\d+)\"/ ).should == [["290"], ["40"], ["210"], ["210"], ["210"], ["210"], ["20"], ["25"], ["25"], ["10"], ["153"], ["52"], ["152"], ["147.0"], ["130.0"], ["113.0"], ["96.0"], ["79.0"], ["62.0"], ["45.0"], ["145"], ["125"], ["105"], ["85"], ["65"], ["45"], ["999"]]
31
+ end
32
+
33
+ it "user can override due point" do
34
+ gauge = Ziya::Gauges::Thermo.new( "test_license" )
35
+ gauge.set_preferences( :due_point => 100 )
36
+ buff = gauge.to_xml
37
+ buff.scan( /end_scale=\"(.*?\d+)\"/ ).should == [["80"]]
38
+ end
39
+
40
+ it "user can override thermo color" do
41
+ gauge = Ziya::Gauges::Thermo.new( "test_license" )
42
+ gauge.set_preferences( :gauge_color => "00FF00" )
43
+ buff = gauge.to_xml
44
+ buff.scan( /end_scale=\"(.*?\d+)\"/ ).should == [["20"]]
45
+ buff.scan( /color=\"(\w+)\"/ ).uniq.should == [["ffffff"], ["00FF00"], ["ffff00"], ["cccccc"], ["aaaaaa"], ["880000"]]
46
+ end
47
+
48
+ end
49
+ end
@@ -1,22 +1,36 @@
1
- require 'spec/spec_helper'
2
- # require File.join(File.dirname(__FILE__), %w[.. spec_helper])
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
3
2
 
4
3
  describe Ziya::Helpers::BaseHelper do
5
4
 
5
+ it "should generate the correct chart path" do
6
+ chart_url( "http://test.me.com/blee" ).should ==
7
+ "/charts/charts.swf?library_path=/charts/charts_library&xml_source=http%3A%2F%2Ftest.me.com%2Fblee"
8
+ chart_url( "http://test.me.com/blee", "/blees" ).should ==
9
+ "/blees/charts.swf?library_path=/blees/charts_library&xml_source=http%3A%2F%2Ftest.me.com%2Fblee"
10
+ end
11
+
6
12
  it "should generate the correct yaml class name" do
7
- component( "fred" ).should == "fred: !ruby/object:Ziya::Components::Fred\n"
13
+ component( "fred" ).should == "fred: !ruby/object:Ziya::Components::Fred"
8
14
  end
9
15
 
10
16
  it "should generate the correct yaml clqss name for alias" do
11
- comp( "fred" ).should == "fred: !ruby/object:Ziya::Components::Fred\n"
17
+ comp( "fred" ).should == "fred: !ruby/object:Ziya::Components::Fred"
12
18
  end
13
19
 
14
20
  it "should generate the correct yaml drawing class name" do
15
- drawing( "fred" ).should == "!ruby/object:Ziya::Components::Fred\n"
21
+ drawing( "fred" ).should == "!ruby/object:Ziya::Components::Fred"
16
22
  end
17
23
 
18
24
  it "should generate the correct yaml chart class name" do
19
- chart( "fred" ).should == "--- !ruby/object:Ziya::Charts::Fred\n"
25
+ chart( "fred" ).should == "--- !ruby/object:Ziya::Charts::Fred"
26
+ end
27
+
28
+ it "should generate the correct yaml for a gauge" do
29
+ gauge( "fred" ).should == "--- !ruby/object:Ziya::Gauges::Fred\ncomponents: !omap"
30
+ end
31
+
32
+ it "should generate the correct yaml for a dial" do
33
+ dial( :circle, :blee ).should == "- :blee: !ruby/object:Ziya::Gauges::Support::Circle"
20
34
  end
21
35
 
22
36
  end
@@ -4,4 +4,7 @@ require 'spec'
4
4
  require File.join( File.dirname(__FILE__), %w[.. lib ziya] )
5
5
 
6
6
  # Init ZiYa...
7
- ::Ziya.initialize( :themes_dir => File.join( File.dirname(__FILE__), %w[themes] ) )
7
+ Ziya.initialize( :log_level => :debug,
8
+ :themes_dir => File.join( File.dirname(__FILE__), %w[themes] ),
9
+ :designs_dir => File.join( File.dirname(__FILE__), %w[designs] ),
10
+ :helpers_dir => File.join( File.dirname(__FILE__), %w[test_helpers] ) )
@@ -0,0 +1,17 @@
1
+ module Ziya::Gauge2Helper
2
+ def colorize
3
+ "ff00ff"
4
+ end
5
+
6
+ # creates a red circle start at coords x,y radius r
7
+ def make_circle( x, y, radius )
8
+ circle = Ziya::Gauges::Support::Circle.new(
9
+ :x => x,
10
+ :y => y,
11
+ :radius => radius,
12
+ :start => 0,
13
+ :end => 360,
14
+ :fill_color => "ff0000" )
15
+ circle.to_comp_yaml( :circle_2, 2 )
16
+ end
17
+ end
@@ -1,6 +1,4 @@
1
- require 'spec/spec_helper'
2
- # require File.join(File.dirname(__FILE__), %w[.. spec_helper] )
3
-
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
4
2
  require 'stringio'
5
3
  require "ziya/utils/logger"
6
4
 
@@ -1,5 +1,4 @@
1
- require 'spec/spec_helper'
2
- # require File.join(File.dirname(__FILE__), %w[.. spec_helper])
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
3
2
 
4
3
  describe Ziya::Utils::Text do
5
4
  describe "camelize" do
@@ -1,30 +1,97 @@
1
- require 'spec/spec_helper'
2
- # require File.join(File.dirname(__FILE__), %w[spec_helper])
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[spec_helper]))
3
2
 
4
3
  describe Ziya::Helper do
5
-
6
- describe "ziya_chart" do
7
- before( :each ) do
8
- @url = "/fred/blee/duh"
9
- end
10
-
4
+ before( :all ) do
5
+ @url = "/fred/blee/duh"
6
+ end
7
+
8
+ describe "ziya_gauge" do
11
9
  it "should generate the correct html with the default options" do
12
- ziya_chart( @url, :cache => true ).should == "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0\" data=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Ffred%2Fblee%2Fduh&amp;stage_width=400&amp;stage_height=300\" height=\"300\" id=\"ziya_chart\" stage_height=\"300\" stage_width=\"400\" style=\"\" width=\"400\"><param name=\"movie\" value=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Ffred%2Fblee%2Fduh&amp;stage_width=400&amp;stage_height=300\"><param name=\"quality\" value=\"high\"><embed bgcolor=\"#FFFFFF\" height=\"300\" name=\"ziya_chart\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" quality=\"high\" src=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Ffred%2Fblee%2Fduh&amp;stage_width=400&amp;stage_height=300\" swLiveConnect=\"true\" type=\"application/x-shockwave-flash\" width=\"400\" wmode=\"transparent\"></embed><param name=\"bgcolor\" value=\"#FFFFFF\"><param name=\"wmode\" value=\"transparent\"></object>"
10
+ ziya_gauge( @url ).should == " <object codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" id=\"ziya_gauge\" height=\"200\" width=\"200\">\n <param name=\"scale\" value=\"noscale\">\n <param name=\"align\" value=\"middle\"> \n <param name=\"bgcolor\" value=\"#FFFFFF\">\n <param name=\"wmode\" value=\"transparent\"> \n <param name=\"movie\" value=\"/gauges/gauge.swf?xml_source=/fred/blee/duh\">\n <param name=\"menu\" value=\"true\">\n <param name=\"allowFullScreen\" value=\"true\">\n <param name=\"allowScriptAccess\" value=\"sameDomain\"> \n <param name=\"quality\" value=\"high\">\n <param name=\"play\" value=\"true\"> \n <param name=\"devicefont\" value=\"false\">\n <embed scale=\"noscale\"\n allowfullscreen=\"true\" \n allowscriptaccess=\"sameDomain\" \n bgcolor=\"#FFFFFF\" \n devicefont=\"false\" \n src=\"/gauges/gauge.swf?xml_source=/fred/blee/duh\" \n menu=\"true\" \n name=\"ziya_gauge\" \n play=\"true\" \n pluginspage=\"http://www.macromedia.com/go/getflashplayer\" \n quality=\"high\" \n salign=\"\" \n src=\"/gauges/gauge.swf?xml_source=/fred/blee/duh\" \n type=\"application/x-shockwave-flash\" \n wmode=\"transparent\" \n salign=\"\" \n height=\"200\" \n width=\"200\">\n </object> \n"
13
11
  end
14
12
 
15
13
  it "should set the wmode to opaque if bg_color is set" do
16
- html = ziya_chart( @url, :bgcolor => "ffffff" )
14
+ html = ziya_gauge( @url, :bgcolor => "ffffff" )
17
15
  html.index (/name=\"wmode\" value=\"opaque\"/).should_not be_nil
18
16
  html.index (/wmode=\"opaque\"/).should_not be_nil
19
17
  end
20
18
 
21
19
  it "should handle the size has widthxheight" do
22
- html = ziya_chart( @url, :size => "100x200" )
20
+ html = ziya_gauge( @url, :size => "100x200" )
23
21
  html.index (/width=\"100\"/).should_not be_nil
24
22
  html.index (/height=\"200\"/).should_not be_nil
25
23
  end
26
24
  end
27
25
 
26
+ describe "ziya_chart" do
27
+ it "should generate the correct embed tag with the default options" do
28
+ ziya_chart( @url, :tag_type => "embed" ).should == " <object codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" id=\"ziya_chart\" height=\"300\" width=\"400\">\n <param name=\"scale\" value=\"noscale\">\n <param name=\"salign\" value=\"tl\"> \n <param name=\"bgcolor\" value=\"#FFFFFF\">\n <param name=\"wmode\" value=\"transparent\"> \n <param name=\"movie\" value=\"/charts/charts.swf\"> \n <param name=\"FlashVars\" value=\"library_path=/charts/charts_library&xml_source=%2Ffred%2Fblee%2Fduh&chart_id=ziya_chart\">\n <param name=\"menu\" value=\"true\">\n <param name=\"allowFullScreen\" value=\"true\">\n <param name=\"allowScriptAccess\" value=\"sameDomain\"> \n <param name=\"quality\" value=\"high\">\n <param name=\"play\" value=\"true\"> \n <param name=\"devicefont\" value=\"false\">\n <embed scale=\"noscale\" \n allowfullscreen=\"true\" \n allowscriptaccess=\"sameDomain\" \n bgcolor=\"#FFFFFF\" \n devicefont=\"false\" \n flashvars=\"library_path=/charts/charts_library&xml_source=%2Ffred%2Fblee%2Fduh\" \n menu=\"true\" \n name=\"ziya_chart\" \n play=\"true\" \n pluginspage=\"http://www.macromedia.com/go/getflashplayer\" \n quality=\"high\" \n salign=\"tl\" \n src=\"/charts/charts.swf\" \n type=\"application/x-shockwave-flash\" \n wmode=\"transparent\" \n align=\"l\" \n height=\"300\" \n width=\"400\"/> \n </object> \n"
29
+ end
30
+
31
+ it "should generate the correct object tag with the default options" do
32
+ ziya_chart( @url, :tag_type => "object" ).should == " <object codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0\" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" id=\"ziya_chart\" height=\"300\" width=\"400\">\n <param name=\"scale\" value=\"noscale\">\n <param name=\"salign\" value=\"tl\"> \n <param name=\"bgcolor\" value=\"#FFFFFF\">\n <param name=\"wmode\" value=\"transparent\"> \n <param name=\"movie\" value=\"/charts/charts.swf\"> \n <param name=\"FlashVars\" value=\"library_path=/charts/charts_library&xml_source=%2Ffred%2Fblee%2Fduh&chart_id=ziya_chart\">\n <param name=\"menu\" value=\"true\">\n <param name=\"allowFullScreen\" value=\"true\">\n <param name=\"allowScriptAccess\" value=\"sameDomain\"> \n <param name=\"quality\" value=\"high\">\n <param name=\"play\" value=\"true\"> \n <param name=\"devicefont\" value=\"false\">\n <embed scale=\"noscale\" \n allowfullscreen=\"true\" \n allowscriptaccess=\"sameDomain\" \n bgcolor=\"#FFFFFF\" \n devicefont=\"false\" \n flashvars=\"library_path=/charts/charts_library&xml_source=%2Ffred%2Fblee%2Fduh\" \n menu=\"true\" \n name=\"ziya_chart\" \n play=\"true\" \n pluginspage=\"http://www.macromedia.com/go/getflashplayer\" \n quality=\"high\" \n salign=\"tl\" \n src=\"/charts/charts.swf\" \n type=\"application/x-shockwave-flash\" \n wmode=\"transparent\" \n align=\"l\" \n height=\"300\" \n width=\"400\"/> \n </object> \n"
33
+ end
34
+
35
+ it "should generate the correct js tag" do
36
+ ziya_javascript_include_tag.should == " <script language=\"javascript\" type=\"text/javascript\">\n AC_FL_RunContent = 0;\n DetectFlashVer = 0;\n </script>\n <script src=\"/charts/AC_RunActiveContent.js\" language=\"javascript\"></script>\n <script language=\"javascript\" type=\"text/javascript\">\n var requiredMajorVersion = 9;\n var requiredMinorVersion = 0;\n var requiredRevision = 45;\n </script>\n"
37
+ end
38
+
39
+ it "should generate the correct js based chart tag" do
40
+ ziya_chart_js( @url ).should == " <script language=\"javascript\" type=\"text/javascript\">\n if (AC_FL_RunContent == 0 || DetectFlashVer == 0) {\n alert( \"This page requires AC_RunActiveContent.js.\" );\n } \n else {\n var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);\n if( hasRightVersion ) { \n AC_FL_RunContent(\n 'codebase' , 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0',\n 'width' , '400',\n 'height' , '300',\n 'scale' , 'noscale',\n 'salign' , 'tl',\n 'bgcolor' , '000000',\n 'wmode' , 'opaque',\n 'movie' , '/charts/charts',\n 'src' , '/charts/charts',\n 'FlashVars' , 'library_path=/charts/charts_library&xml_source=%2Ffred%2Fblee%2Fduh', \n 'id' , 'ziya_chart',\n 'name' , 'ziya_chart',\n 'menu' , 'true',\n 'allowFullScreen' , 'true',\n 'allowScriptAccess','sameDomain',\n 'quality' , 'high',\n 'align' , 'l',\n 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer',\n 'play' , 'true',\n 'devicefont' , 'false'\n ); \n } \n else { \n var alternateContent = 'This content requires the Adobe Flash Player. '\n + '<u><a href=http://www.macromedia.com/go/getflash/>Get Flash</a></u>.';\n document.write(alternateContent); \n }\n }\n </script>\n"
41
+ end
42
+
43
+ it "should set the wmode to opaque if bg_color is set" do
44
+ html = ziya_chart( @url, :bgcolor => "ffffff" )
45
+ # html.index (/name=\"wmode\" value=\"opaque\"/).should_not be_nil
46
+ # html.index (/'wmode'\s+,\s'opaque'/).should_not be_nil
47
+ html.index( /wmode=\"opaque\"/ ).should_not be_nil
48
+ end
49
+
50
+ it "should handle the size has widthxheight" do
51
+ html = ziya_chart( @url, :size => "100x200" )
52
+ html.index( /width=\"100\"/ ).should_not be_nil
53
+ html.index( /height=\"200\"/ ).should_not be_nil
54
+ # html.index (/'width'\s+,\s'100'/).should_not be_nil
55
+ # html.index (/'height'\s+,\s'200'/).should_not be_nil
56
+ end
57
+ end
58
+
59
+ describe "escape_url" do
60
+ it "should escape a plain url correctly" do
61
+ escape_url( "/fred/blee/duh" ).should == "%2Ffred%2Fblee%2Fduh"
62
+ end
63
+
64
+ it "should escape a url with args correctly" do
65
+ escape_url( "/fred?blee=hello world&bobo=10" ).should == "%2Ffred%3Fblee%3Dhello+world%26bobo%3D10"
66
+ end
67
+ end
68
+
69
+ describe "setup_mode" do
70
+ before( :each ) do
71
+ @options = { :bgcolor => "#000000" }
72
+ end
73
+
74
+ it "should set the wmode to opaque if a color is given" do
75
+ setup_wmode( @options )
76
+ @options[:wmode].should == "opaque"
77
+ end
78
+
79
+ it "should set the wmode to transparent and color to white if a color is not given" do
80
+ @options.delete(:bgcolor )
81
+ setup_wmode( @options )
82
+ @options[:wmode].should == "transparent"
83
+ @options[:bgcolor].should == "#FFFFFF"
84
+ end
85
+
86
+ it "should not set the wmode is user specified it" do
87
+ @options.delete(:bgcolor )
88
+ @options[:wmode] = 'transparent'
89
+ setup_wmode( @options )
90
+ @options[:wmode].should == "transparent"
91
+ @options[:bgcolor].should == "#FFFFFF"
92
+ end
93
+ end
94
+
28
95
  describe "content_tag" do
29
96
  it "should output an html tag correctly" do
30
97
  content_tag( :div, content_tag( :h1, "Hello" ) ).should == "<div><h1>Hello</h1></div>"
@@ -37,4 +104,14 @@ describe Ziya::Helper do
37
104
  end
38
105
  end
39
106
 
107
+ describe "tag_options" do
108
+ it "should correctly escape tag options" do
109
+ tag_options( {:blee => "<blee>", :fred => 10 }, true ).should == " blee=\"&lt;blee&gt;\" fred=\"10\""
110
+ end
111
+
112
+ it "should leave tag options unescaped" do
113
+ tag_options( {:blee => "<blee>", :fred => 10 }, false ).should == " blee=\"<blee>\" fred=\"10\""
114
+ end
115
+ end
116
+
40
117
  end
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(__FILE__), "spec_helper" )
1
+ require File.expand_path(File.join(File.dirname(__FILE__), %w[spec_helper]))
2
2
 
3
3
  describe Ziya do
4
4
  before( :all ) do
@@ -90,7 +90,7 @@ namespace :gem do
90
90
 
91
91
  desc 'Install the gem'
92
92
  task :install => [:clobber, :package] do
93
- sh "#{SUDO} #{GEM} install pkg/#{PROJ.spec.full_name}"
93
+ sh "#{SUDO} #{GEM} install pkg/#{PROJ.spec.full_name} --no-rdoc --no-ri"
94
94
  end
95
95
 
96
96
  desc 'Uninstall the gem'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ziya
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fernand Galiana
@@ -9,17 +9,18 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-05-22 00:00:00 -06:00
12
+ date: 2008-08-19 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: logging
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
20
21
  - - "="
21
22
  - !ruby/object:Gem::Version
22
- version: 0.7.1
23
+ version: 0.9.0
23
24
  version:
24
25
  description: Easily add charting to your rails/merb applications
25
26
  email: fernand@liquidrail.com
@@ -37,12 +38,16 @@ files:
37
38
  - README.txt
38
39
  - Rakefile
39
40
  - bin/ziyafy
41
+ - charts/AC_RunActiveContent.js
40
42
  - charts/charts.swf
43
+ - charts/charts_library/ar3d.swf
41
44
  - charts/charts_library/arno.swf
45
+ - charts/charts_library/ars3.swf
42
46
  - charts/charts_library/arst.swf
43
47
  - charts/charts_library/brfl.swf
44
48
  - charts/charts_library/brno.swf
45
49
  - charts/charts_library/brst.swf
50
+ - charts/charts_library/buno.swf
46
51
  - charts/charts_library/cl3d.swf
47
52
  - charts/charts_library/clfl.swf
48
53
  - charts/charts_library/clno.swf
@@ -56,33 +61,22 @@ files:
56
61
  - charts/charts_library/pino.swf
57
62
  - charts/charts_library/pono.swf
58
63
  - charts/charts_library/scno.swf
59
- - charts/themes/commando/bar_chart.yml
60
- - charts/themes/commando/base_chart.yml
61
- - charts/themes/commando/column_chart.yml
62
- - charts/themes/commando/column_threed_chart.yml
63
- - charts/themes/commando/parallel_threed_column_chart.yml
64
- - charts/themes/commando/pie_chart.yml
65
- - charts/themes/commando/pie_threed_chart.yml
66
- - charts/themes/commando/polar_chart.yml
67
- - charts/themes/commando/stacked_bar_chart.yml
68
- - charts/themes/commando/stacked_column_chart.yml
69
- - charts/themes/commando/stacked_threed_column_chart.yml
70
- - charts/themes/default/bar_chart.yml
71
- - charts/themes/default/base_chart.yml
72
- - charts/themes/default/column_chart.yml
73
- - charts/themes/default/column_threed_chart.yml
74
- - charts/themes/default/parallel_threed_column_chart.yml
75
- - charts/themes/default/pie_chart.yml
76
- - charts/themes/default/pie_threed_chart.yml
77
- - charts/themes/default/polar_chart.yml
78
- - charts/themes/default/stacked_bar_chart.yml
79
- - charts/themes/default/stacked_column_chart.yml
80
- - charts/themes/default/stacked_threed_column_chart.yml
81
- - charts/themes/default/test.yml
64
+ - charts/full_screen.swf
65
+ - charts/sliders/black.swf
66
+ - charts/sliders/preview_handle_1.swf
67
+ - charts/sliders/preview_handle_2.swf
68
+ - fred.rb
69
+ - gauges/designs/circle.yml
70
+ - gauges/designs/signal.yml
71
+ - gauges/designs/thermo.yml
72
+ - gauges/designs/title.yml
73
+ - gauges/gauge.swf
82
74
  - lib/ziya.rb
83
75
  - lib/ziya/charts/area.rb
76
+ - lib/ziya/charts/area_threed.rb
84
77
  - lib/ziya/charts/bar.rb
85
78
  - lib/ziya/charts/base.rb
79
+ - lib/ziya/charts/bubble.rb
86
80
  - lib/ziya/charts/candle_stick.rb
87
81
  - lib/ziya/charts/column.rb
88
82
  - lib/ziya/charts/column_threed.rb
@@ -98,35 +92,64 @@ files:
98
92
  - lib/ziya/charts/stacked_area.rb
99
93
  - lib/ziya/charts/stacked_bar.rb
100
94
  - lib/ziya/charts/stacked_column.rb
95
+ - lib/ziya/charts/stacked_threed_area.rb
101
96
  - lib/ziya/charts/stacked_threed_column.rb
102
97
  - lib/ziya/components/area.rb
103
98
  - lib/ziya/components/axis_category.rb
104
99
  - lib/ziya/components/axis_ticks.rb
105
100
  - lib/ziya/components/axis_value.rb
106
101
  - lib/ziya/components/base.rb
102
+ - lib/ziya/components/bevel.rb
103
+ - lib/ziya/components/blur.rb
107
104
  - lib/ziya/components/chart_border.rb
108
105
  - lib/ziya/components/chart_grid_h.rb
109
106
  - lib/ziya/components/chart_grid_v.rb
107
+ - lib/ziya/components/chart_guide.rb
108
+ - lib/ziya/components/chart_label.rb
110
109
  - lib/ziya/components/chart_pref.rb
111
110
  - lib/ziya/components/chart_rect.rb
112
111
  - lib/ziya/components/chart_transition.rb
113
- - lib/ziya/components/chart_value.rb
114
112
  - lib/ziya/components/circle.rb
115
113
  - lib/ziya/components/draw.rb
114
+ - lib/ziya/components/draw_base.rb
115
+ - lib/ziya/components/filter.rb
116
+ - lib/ziya/components/glow.rb
116
117
  - lib/ziya/components/image.rb
117
- - lib/ziya/components/legend_label.rb
118
- - lib/ziya/components/legend_rect.rb
119
- - lib/ziya/components/legend_transition.rb
118
+ - lib/ziya/components/legend.rb
120
119
  - lib/ziya/components/line.rb
121
120
  - lib/ziya/components/link.rb
122
121
  - lib/ziya/components/link_data.rb
123
- - lib/ziya/components/live_update.rb
124
122
  - lib/ziya/components/rect.rb
123
+ - lib/ziya/components/scroll.rb
125
124
  - lib/ziya/components/series_color.rb
126
125
  - lib/ziya/components/series_explode.rb
127
126
  - lib/ziya/components/series_gap.rb
128
127
  - lib/ziya/components/series_switch.rb
128
+ - lib/ziya/components/shadow.rb
129
129
  - lib/ziya/components/text.rb
130
+ - lib/ziya/components/update.rb
131
+ - lib/ziya/gauges/base.rb
132
+ - lib/ziya/gauges/radial.rb
133
+ - lib/ziya/gauges/signal.rb
134
+ - lib/ziya/gauges/support/area.rb
135
+ - lib/ziya/gauges/support/base.rb
136
+ - lib/ziya/gauges/support/circle.rb
137
+ - lib/ziya/gauges/support/design.rb
138
+ - lib/ziya/gauges/support/image.rb
139
+ - lib/ziya/gauges/support/line.rb
140
+ - lib/ziya/gauges/support/link.rb
141
+ - lib/ziya/gauges/support/move.rb
142
+ - lib/ziya/gauges/support/point.rb
143
+ - lib/ziya/gauges/support/polygon.rb
144
+ - lib/ziya/gauges/support/radial_base.rb
145
+ - lib/ziya/gauges/support/radial_numbers.rb
146
+ - lib/ziya/gauges/support/radial_ticks.rb
147
+ - lib/ziya/gauges/support/rect.rb
148
+ - lib/ziya/gauges/support/rotate.rb
149
+ - lib/ziya/gauges/support/scale.rb
150
+ - lib/ziya/gauges/support/text.rb
151
+ - lib/ziya/gauges/support/update.rb
152
+ - lib/ziya/gauges/thermo.rb
130
153
  - lib/ziya/helpers/base_helper.rb
131
154
  - lib/ziya/utils/logger.rb
132
155
  - lib/ziya/utils/text.rb
@@ -136,12 +159,36 @@ files:
136
159
  - spec/charts/chart_type_spec.rb
137
160
  - spec/components/area_spec.rb
138
161
  - spec/components/draw_spec.rb
162
+ - spec/components/filter_spec.rb
139
163
  - spec/components/link_spec.rb
140
164
  - spec/components/series_color_spec.rb
141
165
  - spec/components/series_explode_spec.rb
142
166
  - spec/components/series_switch_spec.rb
167
+ - spec/designs/circle.yml
168
+ - spec/designs/crapping_out.yml
169
+ - spec/designs/gauge_1.yml
170
+ - spec/designs/gauge_2.yml
171
+ - spec/designs/gauge_no_name.yml
172
+ - spec/designs/gauge_raw.yml
173
+ - spec/designs/thermo.yml
174
+ - spec/gauges/base_spec.rb
175
+ - spec/gauges/signal_spec.rb
176
+ - spec/gauges/support/area_spec.rb
177
+ - spec/gauges/support/circle_spec.rb
178
+ - spec/gauges/support/image_spec.rb
179
+ - spec/gauges/support/line_spec.rb
180
+ - spec/gauges/support/link_spec.rb
181
+ - spec/gauges/support/move_spec.rb
182
+ - spec/gauges/support/polygon_spec.rb
183
+ - spec/gauges/support/radial_numbers_spec.rb
184
+ - spec/gauges/support/radial_ticks_spec.rb
185
+ - spec/gauges/support/rotate_spec.rb
186
+ - spec/gauges/support/scale_spec.rb
187
+ - spec/gauges/support/text_spec.rb
188
+ - spec/gauges/thermo_spec.rb
143
189
  - spec/helpers/base_helper_spec.rb
144
190
  - spec/spec_helper.rb
191
+ - spec/test_helpers/gauge_2_helper.rb
145
192
  - spec/themes/default/fred.yml
146
193
  - spec/themes/default/line_chart.yml
147
194
  - spec/utils/logger_spec.rb
@@ -182,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
229
  requirements: []
183
230
 
184
231
  rubyforge_project: ziya
185
- rubygems_version: 1.0.1
232
+ rubygems_version: 1.2.0
186
233
  signing_key:
187
234
  specification_version: 2
188
235
  summary: Easily add charting to your rails/merb applications