derailed-ziya 2.0.6 → 2.0.8

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.
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