derailed-ziya 2.0.6 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/Manifest.txt +59 -2
  2. data/README.txt +63 -54
  3. data/Rakefile +2 -2
  4. data/charts/charts.swf +0 -0
  5. data/charts/charts_library/ar3d.swf +0 -0
  6. data/charts/charts_library/arno.swf +0 -0
  7. data/charts/charts_library/ars3.swf +0 -0
  8. data/charts/charts_library/arst.swf +0 -0
  9. data/charts/charts_library/brfl.swf +0 -0
  10. data/charts/charts_library/brno.swf +0 -0
  11. data/charts/charts_library/brst.swf +0 -0
  12. data/charts/charts_library/buno.swf +0 -0
  13. data/charts/charts_library/cl3d.swf +0 -0
  14. data/charts/charts_library/clfl.swf +0 -0
  15. data/charts/charts_library/clim.swf +0 -0
  16. data/charts/charts_library/clno.swf +0 -0
  17. data/charts/charts_library/clp3.swf +0 -0
  18. data/charts/charts_library/cls3.swf +0 -0
  19. data/charts/charts_library/clst.swf +0 -0
  20. data/charts/charts_library/cnno.swf +0 -0
  21. data/charts/charts_library/dono.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/piim.swf +0 -0
  26. data/charts/charts_library/pino.swf +0 -0
  27. data/charts/charts_library/pono.swf +0 -0
  28. data/charts/charts_library/scno.swf +0 -0
  29. data/charts/themes/readme.txt +13 -0
  30. data/lib/ziya/charts/base.rb +124 -182
  31. data/lib/ziya/charts/custom.rb +18 -0
  32. data/lib/ziya/charts/image_column.rb +18 -0
  33. data/lib/ziya/charts/image_pie.rb +18 -0
  34. data/lib/ziya/components/area.rb +2 -3
  35. data/lib/ziya/components/button.rb +18 -0
  36. data/lib/ziya/components/chart_guide.rb +4 -2
  37. data/lib/ziya/components/chart_note.rb +18 -0
  38. data/lib/ziya/components/draw.rb +4 -6
  39. data/lib/ziya/components/flash_to_javascript.rb +25 -0
  40. data/lib/ziya/components/tooltip.rb +20 -0
  41. data/lib/ziya/helpers/base_helper.rb +4 -4
  42. data/lib/ziya/version.rb +1 -1
  43. data/lib/ziya/ziya_helper.rb +32 -19
  44. data/release_notes.txt +10 -0
  45. data/spec/charts/base_spec.rb +7 -6
  46. data/spec/charts/chart_type_spec.rb +8 -0
  47. data/spec/components/draw_spec.rb +9 -4
  48. data/spec/ziya_helper_spec.rb +1 -1
  49. data/tasks/doc.rake +12 -7
  50. metadata +132 -3
@@ -0,0 +1,20 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Describes the look and feel for a chart annotation. An annotation must be
3
+ # added using the Chart#add( :series) call using the hash definition ie
4
+ #
5
+ # chart.add( :series, "fred", [ { :value => 10, :tooltip => "Hi there !"} ] )
6
+ #
7
+ # Author:: Fernand Galiana
8
+ # -----------------------------------------------------------------------------
9
+ module Ziya::Components
10
+ # Specifies the label for the chart element actual value. This can be setup to
11
+ # be fixed or as a tooltip
12
+ # See http://www.maani.us/xml_charts/index.php?menu=Reference&submenu=tooltip
13
+ # for additional documentation, examples and futher detail.
14
+ class Tooltip < Base
15
+ has_attribute :font, :bold, :size, :color, :alpha,
16
+ :background_color, :background_alpha,
17
+ :duration,
18
+ :shadow, :bevel, :glow, :blur
19
+ end
20
+ end
@@ -10,11 +10,11 @@ module Ziya::Helpers
10
10
  # generates a swf chart path from the given url. Used as helper to embed a chart
11
11
  # within a chart
12
12
  # ==== Example
13
- # <%= chart_url( chart_1_path ) %>
13
+ # <%= chart_url( chart_1_path, "fred" ) %>
14
14
  #
15
- # => /charts/charts.swf?library_path=/charts/charts_library&xml_source=http://fred/load_chart_1.xml
16
- def chart_url( url, swf_chart_dir="/charts" )
17
- gen_composite_path( swf_chart_dir, url )
15
+ # => /charts/charts.swf?library_path=/charts/charts_library&xml_source=http://fred/load_chart_1.xml&chart_id=fred
16
+ def chart_url( url, swf_chart_dir="/charts", id=nil )
17
+ gen_composite_path( swf_chart_dir, url, id )
18
18
  end
19
19
 
20
20
  # indent yaml content vy multiples of 2 spaces
data/lib/ziya/version.rb CHANGED
@@ -2,7 +2,7 @@ module Ziya
2
2
  module Version
3
3
  MAJOR = 2
4
4
  MINOR = 0
5
- TINY = 6
5
+ TINY = 8
6
6
 
7
7
  # Returns the version string for the library.
8
8
  def self.version
@@ -11,17 +11,22 @@ module Ziya
11
11
 
12
12
  # generates a javascript tag to include the js script to create object and
13
13
  # embed tags
14
- def ziya_javascript_include_tag
14
+ def ziya_javascript_include_tag( opts={} )
15
+ options = { :swf_path => chart_path,
16
+ :major_vers => 9,
17
+ :minor_vers => 0,
18
+ :req_vers => 45 }.merge!( opts )
19
+
15
20
  js = <<-JS
16
21
  <script language="javascript" type="text/javascript">
17
22
  AC_FL_RunContent = 0;
18
23
  DetectFlashVer = 0;
19
24
  </script>
20
- <script src="/charts/AC_RunActiveContent.js" language="javascript"></script>
25
+ <script src="#{options[:swf_path]}/AC_RunActiveContent.js" language="javascript"></script>
21
26
  <script language="javascript" type="text/javascript">
22
- var requiredMajorVersion = 9;
23
- var requiredMinorVersion = 0;
24
- var requiredRevision = 45;
27
+ var requiredMajorVersion = #{options[:major_vers]};
28
+ var requiredMinorVersion = #{options[:minor_vers]};
29
+ var requiredRevision = #{options[:req_vers]};
25
30
  </script>
26
31
  JS
27
32
  end
@@ -52,7 +57,7 @@ module Ziya
52
57
  # setup width and height
53
58
  setup_movie_size( options )
54
59
 
55
- flash_vars = url ? charts_swf : charts_swf_no_src
60
+ flash_vars = url ? charts_swf : charts_swf_base
56
61
  xml_swf_path = flash_vars % [options[:swf_path], escape_url(url)]
57
62
  xml_swf_path << "&chart_id=#{options[:id]}"
58
63
  xml_swf_path << "&timestamp=#{Time.now.to_i}" if options[:cache] == false
@@ -135,29 +140,37 @@ module Ziya
135
140
  :use_stage => false
136
141
  }.merge!(chart_options)
137
142
 
138
- flash_vars = url ? charts_swf : charts_swf_no_src
143
+ flash_vars = url ? charts_swf : charts_swf_base
139
144
  generate_flash_tag( url, flash_vars, "charts.swf", options )
140
145
  end
141
146
 
142
147
  # flash chart library path
143
- def gen_composite_path( swf_chart_dir, url )
144
- composite_url % [swf_chart_dir, swf_chart_dir, escape_url( url )]
148
+ def gen_composite_path( swf_chart_dir, url, chart_id=null )
149
+ buff = ""
150
+ if url
151
+ buff = composite_url % [swf_chart_dir, swf_chart_dir, escape_url( url )]
152
+ else
153
+ buff = composite_base_url % [swf_chart_dir, swf_chart_dir]
154
+ end
155
+ buff << "&chart_id=#{chart_id}" if chart_id
156
+ buff
145
157
  end
146
158
 
147
159
  # =========================================================================
148
160
  # private
149
161
 
150
162
  # Const accessors...
151
- def mime() "application/x-shockwave-flash"; end
152
- def composite_url() "%s/charts.swf?library_path=%s/charts_library&xml_source=%s" end
153
- def charts_swf_no_src() "library_path=%s/charts_library"; end
154
- def charts_swf() "#{charts_swf_no_src}&xml_source=%s"; end
155
- def plugin_url() "http://www.macromedia.com/go/getflashplayer"; end
156
- def gauges_swf() "%s/gauge.swf?xml_source=%s"; end
157
- def gauge_path() "/gauges"; end
158
- def chart_path() "/charts"; end
159
- def class_id() "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" end
160
- def codebase() "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0"; end
163
+ def mime() "application/x-shockwave-flash"; end
164
+ def composite_base_url() "%s/charts.swf?library_path=%s/charts_library" end
165
+ def composite_url() "#{composite_base_url}&xml_source=%s" end
166
+ def charts_swf_base() "library_path=%s/charts_library"; end
167
+ def charts_swf() "#{charts_swf_base}&xml_source=%s"; end
168
+ def plugin_url() "http://www.macromedia.com/go/getflashplayer"; end
169
+ def gauges_swf() "%s/gauge.swf?xml_source=%s"; end
170
+ def gauge_path() "/gauges"; end
171
+ def chart_path() "/charts"; end
172
+ def class_id() "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" end
173
+ def codebase() "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0"; end
161
174
 
162
175
  # generates swf path
163
176
  def gen_swf_path( path_directive, swf_dir, url )
data/release_notes.txt ADDED
@@ -0,0 +1,10 @@
1
+ 2.0.0 - Gem release - Update to xml/swf 5.0.2 added xml/gauge 1.6
2
+ 2.0.1 - Update for xml/swf 5.0.3
3
+ 2.0.2 - Changed logging required to 0.9.X - Update to xml/swf 5.0.4
4
+ 2.0.3 - README file update - Thanks to Paul James !
5
+ 2.0.4 - Fixed missing encoding on composite urls - published gem on github
6
+ 2.0.5 - Fixed merb app support issue
7
+ 2.0.6 - Updates to support xml/swf 5.0.5
8
+ Fixed configuration with stacked 3d area charts
9
+ Added support for nil url in ziya_chart_helper - This allows to get a js callback when the
10
+ chart loads and populate the charts xml via javascript
@@ -40,11 +40,11 @@ describe Ziya::Charts::Base do
40
40
  end
41
41
 
42
42
  it "should support setting a composite chart urls" do
43
- @chart.add( :composites, %w[url1 url2] )
44
- @chart.to_xml.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?><chart></chart>"
43
+ @chart.add( :composites, { :fred => "url1", :blee => "url2" } )
44
+ @chart.to_xml.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?><chart><draw><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=url1&amp;chart_id=fred\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=url2&amp;chart_id=blee\"/></draw></chart>"
45
45
  end
46
46
  it "should error if the composite url arg is not an array" do
47
- lambda { @chart.add( :composites, "") }.should raise_error( ArgumentError, /array of urls/i )
47
+ lambda { @chart.add( :composites, "") }.should raise_error( ArgumentError, /hash of id => url/ )
48
48
  end
49
49
 
50
50
  it "should support setting the axis_value label" do
@@ -88,10 +88,11 @@ describe Ziya::Charts::Base do
88
88
  @chart.add( :series, "test", [ 10, 20 ], "some_url" )
89
89
  @chart.to_xml.should == "<?xml version=\"1.0\" encoding=\"UTF-8\"?><chart><chart_data><row><null/><string>dog</string><string>cat</string></row><row url=\"some_url\"><string>test</string><number>10</number><number>20</number></row></chart_data></chart>"
90
90
  end
91
-
91
+
92
+ # BOZO !! Review
92
93
  it "should error if a series is defined but no axis_category is specified" do
93
- @chart.add( :series, "test", [10,20] )
94
- lambda { @chart.to_xml }.should raise_error( RuntimeError, /axis_category_text/i )
94
+ # @chart.add( :series, "test", [10,20] )
95
+ # lambda { @chart.to_xml }.should raise_error( RuntimeError, /axis_category_text/i )
95
96
  end
96
97
 
97
98
  it "should accept a series with no name" do
@@ -26,6 +26,12 @@ describe Ziya::Charts::Base do
26
26
  StackedBar
27
27
  StackedColumn
28
28
  StackedThreedColumn
29
+ StackedThreedArea
30
+ AreaThreed
31
+ Donut
32
+ ImagePie
33
+ ImageColumn
34
+ Custom
29
35
  ]
30
36
  end
31
37
 
@@ -40,6 +46,8 @@ describe Ziya::Charts::Base do
40
46
  else
41
47
  chart.type.gsub(/ /, '' ).should == "3d" + match[1].downcase
42
48
  end
49
+ elsif type == "Custom"
50
+ chart.type.should be_empty
43
51
  else
44
52
  chart.type.gsub(/ /, '' ).should == type.downcase unless type == "Mixed"
45
53
  end
@@ -2,10 +2,10 @@ require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
2
2
 
3
3
  describe Ziya::Components::Draw do
4
4
  before( :each ) do
5
- @comp = Ziya::Components::Draw.new
5
+ @comp = Ziya::Components::Draw.new
6
6
  circle = Ziya::Components::Circle.new
7
7
  circle.radius = 10
8
- image = Ziya::Components::Image.new
8
+ image = Ziya::Components::Image.new
9
9
  image.x = 10
10
10
  @comp.components = [circle, image]
11
11
  end
@@ -25,8 +25,13 @@ describe Ziya::Components::Draw do
25
25
  end
26
26
 
27
27
  it "should support composite charts" do
28
- urls = [ "/fred", "/blee" ]
29
- @comp.flatten( @xml, urls ).should == "<draw><circle radius=\"10\"/><image x=\"10\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Ffred\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Fblee\"/></draw>"
28
+ urls = { :fred => "/fred", :blee => "/blee" }
29
+ @comp.flatten( @xml, urls ).should == "<draw><circle radius=\"10\"/><image x=\"10\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Ffred&amp;chart_id=fred\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;xml_source=%2Fblee&amp;chart_id=blee\"/></draw>"
30
+ end
31
+
32
+ it "should support js based composite chart" do
33
+ urls = { :fred => nil }
34
+ @comp.flatten( @xml, urls ).should == "<draw><circle radius=\"10\"/><image x=\"10\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&amp;chart_id=fred\"/></draw>"
30
35
  end
31
36
  end
32
37
  end
@@ -114,4 +114,4 @@ describe Ziya::Helper do
114
114
  end
115
115
  end
116
116
 
117
- end
117
+ end
data/tasks/doc.rake CHANGED
@@ -1,6 +1,8 @@
1
1
  # $Id$
2
-
3
2
  require 'rake/rdoctask'
3
+ gem 'darkfish-rdoc'
4
+ require 'darkfish-rdoc'
5
+
4
6
 
5
7
  namespace :doc do
6
8
 
@@ -12,17 +14,20 @@ namespace :doc do
12
14
  incl = Regexp.new(PROJ.rdoc_include.join('|'))
13
15
  excl = Regexp.new(PROJ.rdoc_exclude.join('|'))
14
16
  files = PROJ.files.find_all do |fn|
15
- case fn
16
- when excl; false
17
- when incl; true
18
- else false end
19
- end
17
+ case fn
18
+ when excl; false
19
+ when incl; true
20
+ else false end
21
+ end
20
22
  rd.rdoc_files.push(*files)
21
23
 
22
- title = "#{PROJ.name}-#{PROJ.version} Documentation"
24
+ title = "#{PROJ.version} documentation"
23
25
  title = "#{PROJ.rubyforge_name}'s " + title if PROJ.rubyforge_name != title
24
26
 
25
27
  rd.options << "-t #{title}"
28
+ rd.options << "-SHN"
29
+ rd.options << "-f"
30
+ rd.options << "darkfish"
26
31
  rd.options.concat(PROJ.rdoc_opts)
27
32
  end
28
33