derailed-ziya 2.0.8 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +240 -432
- data/README.txt +104 -97
- data/Rakefile +3 -2
- data/bin/ziyafy +33 -10
- data/examples/charts/basic_chart.rb +47 -0
- data/{charts → examples/charts/public/charts}/AC_RunActiveContent.js +0 -0
- data/{charts → examples/charts/public/charts}/charts.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/ar3d.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/arno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/ars3.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/arst.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/brfl.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/brno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/brst.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/buno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/cl3d.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/clfl.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/clim.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/clno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/clp3.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/cls3.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/clst.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/cnno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/dono.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/lnno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/mxno.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/pi3d.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/piim.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/pino.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/pono.swf +0 -0
- data/{charts → examples/charts/public/charts}/charts_library/scno.swf +0 -0
- data/{charts → examples/charts/public/charts}/full_screen.swf +0 -0
- data/{charts → examples/charts/public/charts}/scripts/output_jpg.php +0 -0
- data/{charts → examples/charts/public/charts}/sliders/black.swf +0 -0
- data/{charts → examples/charts/public/charts}/sliders/preview_handle_1.swf +0 -0
- data/{charts → examples/charts/public/charts}/sliders/preview_handle_2.swf +0 -0
- data/examples/charts/public/charts/themes/cool_theme/column_chart.yml +150 -0
- data/{charts → examples/charts/public/charts}/themes/readme.txt +0 -0
- data/examples/charts/views/index.erb +12 -0
- data/examples/maps/basic_map.rb +72 -0
- data/examples/maps/helpers/map_helper.rb +15 -0
- data/examples/maps/models/confidential_herpes_report.rb +78 -0
- data/examples/maps/public/javascripts/jquery-1.3.2.js +4376 -0
- data/examples/maps/public/map.xml +336 -0
- data/examples/maps/public/maps/js/Exception.js +45 -0
- data/examples/maps/public/maps/js/FlashProxy.js +72 -0
- data/examples/maps/public/maps/js/FlashSerializer.js +165 -0
- data/examples/maps/public/maps/js/FlashTag.js +111 -0
- data/examples/maps/public/maps/js/JavaScriptFlashGateway.js +455 -0
- data/examples/maps/public/maps/js/JavaScriptFlashGateway.swf +0 -0
- data/examples/maps/public/maps/map_library/australia.swf +0 -0
- data/examples/maps/public/maps/map_library/belgium.swf +0 -0
- data/examples/maps/public/maps/map_library/brazil.swf +0 -0
- data/examples/maps/public/maps/map_library/canada.swf +0 -0
- data/examples/maps/public/maps/map_library/europe.swf +0 -0
- data/examples/maps/public/maps/map_library/france.swf +0 -0
- data/examples/maps/public/maps/map_library/germany.swf +0 -0
- data/examples/maps/public/maps/map_library/italy.swf +0 -0
- data/examples/maps/public/maps/map_library/mexico.swf +0 -0
- data/examples/maps/public/maps/map_library/sweden.swf +0 -0
- data/examples/maps/public/maps/map_library/uk_ireland.swf +0 -0
- data/examples/maps/public/maps/map_library/us.swf +0 -0
- data/examples/maps/public/maps/map_library/us_canada.swf +0 -0
- data/examples/maps/public/maps/map_library/world.swf +0 -0
- data/examples/maps/public/maps/themes/default/base_map.yml +27 -0
- data/examples/maps/public/maps/themes/default/us_map.yml +20 -0
- data/examples/maps/public/maps/themes/default/us_map_2.yml +17 -0
- data/examples/maps/public/maps/themes/readme.txt +13 -0
- data/examples/maps/public/stylesheets/map.css +16 -0
- data/examples/maps/views/index.erb +26 -0
- data/examples/maps/views/layout.erb +21 -0
- data/lib/ziya/charts/base.rb +15 -14
- data/lib/ziya/{components → charts/support}/area.rb +2 -2
- data/lib/ziya/{components → charts/support}/axis_category.rb +1 -1
- data/lib/ziya/{components → charts/support}/axis_ticks.rb +1 -1
- data/lib/ziya/{components → charts/support}/axis_value.rb +1 -1
- data/lib/ziya/{components → charts/support}/base.rb +9 -21
- data/lib/ziya/{components → charts/support}/bevel.rb +1 -1
- data/lib/ziya/{components → charts/support}/blur.rb +1 -1
- data/lib/ziya/{components → charts/support}/button.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_border.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_grid_h.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_grid_v.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_guide.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_label.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_note.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_pref.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_rect.rb +1 -1
- data/lib/ziya/{components → charts/support}/chart_transition.rb +1 -1
- data/lib/ziya/{components → charts/support}/circle.rb +1 -1
- data/lib/ziya/{components → charts/support}/context_menu.rb +1 -3
- data/lib/ziya/{components → charts/support}/draw.rb +31 -8
- data/lib/ziya/{components → charts/support}/draw_base.rb +1 -1
- data/lib/ziya/{components → charts/support}/filter.rb +1 -1
- data/lib/ziya/{components → charts/support}/flash_to_javascript.rb +1 -3
- data/lib/ziya/{components → charts/support}/glow.rb +1 -1
- data/lib/ziya/{components → charts/support}/image.rb +1 -1
- data/lib/ziya/{components → charts/support}/legend.rb +1 -1
- data/lib/ziya/{components → charts/support}/line.rb +1 -1
- data/lib/ziya/{components → charts/support}/link.rb +1 -1
- data/lib/ziya/{components → charts/support}/link_data.rb +1 -1
- data/lib/ziya/{components → charts/support}/rect.rb +1 -1
- data/lib/ziya/{components → charts/support}/scroll.rb +1 -3
- data/lib/ziya/{components → charts/support}/series.rb +1 -3
- data/lib/ziya/{components → charts/support}/series_color.rb +1 -1
- data/lib/ziya/{components → charts/support}/series_explode.rb +1 -1
- data/lib/ziya/{components → charts/support}/shadow.rb +1 -1
- data/lib/ziya/{components → charts/support}/text.rb +9 -1
- data/lib/ziya/{components → charts/support}/tooltip.rb +1 -1
- data/lib/ziya/{components → charts/support}/update.rb +1 -1
- data/lib/ziya/core_ext/string.rb +31 -0
- data/lib/ziya/gauges/base.rb +17 -12
- data/lib/ziya/gauges/support/base.rb +4 -12
- data/lib/ziya/gauges/support/radial_numbers.rb +1 -1
- data/lib/ziya/html_helpers/base.rb +91 -0
- data/lib/ziya/html_helpers/charts.rb +200 -0
- data/lib/ziya/html_helpers/gauges.rb +90 -0
- data/lib/ziya/html_helpers/maps.rb +74 -0
- data/lib/ziya/html_helpers.rb +1 -0
- data/lib/ziya/maps/australia.rb +9 -0
- data/lib/ziya/maps/base.rb +409 -0
- data/lib/ziya/maps/belgium.rb +7 -0
- data/lib/ziya/maps/brazil.rb +7 -0
- data/lib/ziya/maps/canada.rb +7 -0
- data/lib/ziya/maps/europe.rb +7 -0
- data/lib/ziya/maps/france.rb +7 -0
- data/lib/ziya/maps/geocode.rb +18 -0
- data/lib/ziya/maps/germany.rb +7 -0
- data/lib/ziya/maps/italy.rb +7 -0
- data/lib/ziya/maps/mexico.rb +7 -0
- data/lib/ziya/maps/support/arc.rb +7 -0
- data/lib/ziya/maps/support/arc_color.rb +7 -0
- data/lib/ziya/maps/support/arc_range.rb +7 -0
- data/lib/ziya/maps/support/background_color.rb +7 -0
- data/lib/ziya/maps/support/base.rb +34 -0
- data/lib/ziya/maps/support/default_color.rb +7 -0
- data/lib/ziya/maps/support/default_point.rb +7 -0
- data/lib/ziya/maps/support/first_zoom.rb +7 -0
- data/lib/ziya/maps/support/heat_range.rb +35 -0
- data/lib/ziya/maps/support/hover.rb +7 -0
- data/lib/ziya/maps/support/line.rb +7 -0
- data/lib/ziya/maps/support/line_color.rb +7 -0
- data/lib/ziya/maps/support/line_range.rb +7 -0
- data/lib/ziya/maps/support/outline_color.rb +7 -0
- data/lib/ziya/maps/support/point.rb +8 -0
- data/lib/ziya/maps/support/point_range.rb +7 -0
- data/lib/ziya/maps/support/range.rb +31 -0
- data/lib/ziya/maps/support/ranges.rb +18 -0
- data/lib/ziya/maps/support/region.rb +7 -0
- data/lib/ziya/maps/support/scale_points.rb +7 -0
- data/lib/ziya/maps/support/show_name.rb +7 -0
- data/lib/ziya/maps/support/state.rb +7 -0
- data/lib/ziya/maps/support/state_info_icon.rb +7 -0
- data/lib/ziya/maps/support/zoom_mode.rb +7 -0
- data/lib/ziya/maps/support/zoom_out_button.rb +7 -0
- data/lib/ziya/maps/support/zoom_out_scale.rb +7 -0
- data/lib/ziya/maps/sweden.rb +7 -0
- data/lib/ziya/maps/uk.rb +7 -0
- data/lib/ziya/maps/us.rb +7 -0
- data/lib/ziya/maps/world.rb +7 -0
- data/lib/ziya/version.rb +3 -3
- data/lib/ziya/yaml_helpers/base.rb +20 -0
- data/lib/ziya/yaml_helpers/charts.rb +49 -0
- data/lib/ziya/yaml_helpers/gauges.rb +33 -0
- data/lib/ziya/yaml_helpers/maps.rb +17 -0
- data/lib/ziya/yaml_helpers.rb +1 -0
- data/lib/ziya.rb +20 -11
- data/resources/charts/AC_RunActiveContent.js +292 -0
- data/resources/charts/charts.swf +0 -0
- data/resources/charts/charts_library/ar3d.swf +0 -0
- data/resources/charts/charts_library/arno.swf +0 -0
- data/resources/charts/charts_library/ars3.swf +0 -0
- data/resources/charts/charts_library/arst.swf +0 -0
- data/resources/charts/charts_library/brfl.swf +0 -0
- data/resources/charts/charts_library/brno.swf +0 -0
- data/resources/charts/charts_library/brst.swf +0 -0
- data/resources/charts/charts_library/buno.swf +0 -0
- data/resources/charts/charts_library/cl3d.swf +0 -0
- data/resources/charts/charts_library/clfl.swf +0 -0
- data/resources/charts/charts_library/clim.swf +0 -0
- data/resources/charts/charts_library/clno.swf +0 -0
- data/resources/charts/charts_library/clp3.swf +0 -0
- data/resources/charts/charts_library/cls3.swf +0 -0
- data/resources/charts/charts_library/clst.swf +0 -0
- data/resources/charts/charts_library/cnno.swf +0 -0
- data/resources/charts/charts_library/dono.swf +0 -0
- data/resources/charts/charts_library/lnno.swf +0 -0
- data/resources/charts/charts_library/mxno.swf +0 -0
- data/resources/charts/charts_library/pi3d.swf +0 -0
- data/resources/charts/charts_library/piim.swf +0 -0
- data/resources/charts/charts_library/pino.swf +0 -0
- data/resources/charts/charts_library/pono.swf +0 -0
- data/resources/charts/charts_library/scno.swf +0 -0
- data/resources/charts/full_screen.swf +0 -0
- data/resources/charts/scripts/output_jpg.php +23 -0
- data/resources/charts/sliders/black.swf +0 -0
- data/resources/charts/sliders/preview_handle_1.swf +0 -0
- data/resources/charts/sliders/preview_handle_2.swf +0 -0
- data/resources/charts/themes/readme.txt +13 -0
- data/{gauges → resources/gauges}/designs/circle.yml +0 -0
- data/{gauges → resources/gauges}/designs/signal.yml +0 -0
- data/{gauges → resources/gauges}/designs/thermo.yml +0 -0
- data/{gauges → resources/gauges}/designs/title.yml +0 -0
- data/{gauges → resources/gauges}/gauge.swf +0 -0
- data/resources/maps/js/Exception.js +45 -0
- data/resources/maps/js/FlashProxy.js +72 -0
- data/resources/maps/js/FlashSerializer.js +165 -0
- data/resources/maps/js/FlashTag.js +111 -0
- data/resources/maps/js/JavaScriptFlashGateway.js +455 -0
- data/resources/maps/js/JavaScriptFlashGateway.swf +0 -0
- data/resources/maps/map_library/australia.swf +0 -0
- data/resources/maps/map_library/belgium.swf +0 -0
- data/resources/maps/map_library/brazil.swf +0 -0
- data/resources/maps/map_library/canada.swf +0 -0
- data/resources/maps/map_library/europe.swf +0 -0
- data/resources/maps/map_library/france.swf +0 -0
- data/resources/maps/map_library/germany.swf +0 -0
- data/resources/maps/map_library/italy.swf +0 -0
- data/resources/maps/map_library/mexico.swf +0 -0
- data/resources/maps/map_library/sweden.swf +0 -0
- data/resources/maps/map_library/uk_ireland.swf +0 -0
- data/resources/maps/map_library/us.swf +0 -0
- data/resources/maps/map_library/us_canada.swf +0 -0
- data/resources/maps/map_library/world.swf +0 -0
- data/resources/maps/themes/readme.txt +13 -0
- data/spec/charts/base_spec.rb +2 -2
- data/spec/charts/chart_type_spec.rb +3 -4
- data/spec/{components → charts/support}/area_spec.rb +8 -8
- data/spec/charts/support/draw_spec.rb +41 -0
- data/spec/{components → charts/support}/filter_spec.rb +6 -6
- data/spec/{components → charts/support}/link_spec.rb +6 -6
- data/spec/{components → charts/support}/series.rb +4 -4
- data/spec/{components → charts/support}/series_color_spec.rb +4 -4
- data/spec/{components → charts/support}/series_explode.rb +4 -4
- data/spec/{components → charts/support}/series_explode_spec.rb +4 -4
- data/spec/core_ext/string_spec.rb +40 -0
- data/spec/gauges/base_spec.rb +1 -1
- data/spec/html_helpers/base_spec.rb +50 -0
- data/spec/html_helpers/charts_spec.rb +23 -0
- data/spec/html_helpers/gauges_spec.rb +16 -0
- data/spec/html_helpers/maps_spec.rb +20 -0
- data/spec/maps/base_spec.rb +82 -0
- data/spec/maps/support/default_color_spec.rb +29 -0
- data/spec/maps/support/heat_range_spec.rb +29 -0
- data/spec/maps/us_spec.rb +12 -0
- data/spec/maps/world_spec.rb +18 -0
- data/spec/spec_helper.rb +5 -4
- data/spec/themes/maps/base_map.yml +81 -0
- data/spec/themes/maps/us_map.yml +6 -0
- data/spec/themes/maps/world_map.yml +6 -0
- data/spec/themes/maps/world_ov_map.yml +6 -0
- data/spec/{helpers/base_helper_spec.rb → yaml_helpers/charts_spec.rb} +10 -13
- data/spec/yaml_helpers/gauges_spec.rb +15 -0
- data/spec/ziya_helper_spec.rb +118 -116
- data/tasks/gem.rake +1 -1
- data/tasks/setup.rb +1 -1
- data/ziya.gemspec +39 -0
- metadata +259 -438
- data/lib/ziya/helpers/base_helper.rb +0 -91
- data/lib/ziya/utils/text.rb +0 -39
- data/lib/ziya/ziya_helper.rb +0 -362
- data/spec/components/draw_spec.rb +0 -37
- data/spec/utils/text_spec.rb +0 -33
@@ -1,91 +0,0 @@
|
|
1
|
-
require "ziya/utils/text"
|
2
|
-
require "ziya/ziya_helper"
|
3
|
-
|
4
|
-
module Ziya::Helpers
|
5
|
-
module BaseHelper
|
6
|
-
include Ziya::Utils::Text, Ziya::Helper
|
7
|
-
|
8
|
-
# Defines various helpers to assist in writing ZiYa yaml stylesheets.
|
9
|
-
|
10
|
-
# generates a swf chart path from the given url. Used as helper to embed a chart
|
11
|
-
# within a chart
|
12
|
-
# ==== Example
|
13
|
-
# <%= chart_url( chart_1_path, "fred" ) %>
|
14
|
-
#
|
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
|
-
end
|
19
|
-
|
20
|
-
# indent yaml content vy multiples of 2 spaces
|
21
|
-
def indent( multiple= 1 )
|
22
|
-
" " * multiple
|
23
|
-
end
|
24
|
-
|
25
|
-
# generates a gauge yaml class declaration
|
26
|
-
# ==== Example
|
27
|
-
# <%= gauge :thermo %>
|
28
|
-
#
|
29
|
-
# produces:
|
30
|
-
#
|
31
|
-
# --- !ruby/object:Ziya::Gauges::Thermo
|
32
|
-
# components: !omap
|
33
|
-
def gauge( class_name )
|
34
|
-
"--- #{clazz( class_name, 'Gauges' )}\n#{dials}"
|
35
|
-
end
|
36
|
-
|
37
|
-
# generates a gauge element declaration
|
38
|
-
# ==== Example
|
39
|
-
# <%= dial :rect %>
|
40
|
-
# => --- !ruby/object:Ziya::Gauges::Support::Rect
|
41
|
-
def dial( comp_class, comp_name=nil )
|
42
|
-
clazz = clazz( comp_class, "Gauges::Support" )
|
43
|
-
comp_name ? "- :#{comp_name}: #{clazz}" : "- #{clazz}"
|
44
|
-
end
|
45
|
-
|
46
|
-
# generates a yaml hash of dials
|
47
|
-
# ==== Example
|
48
|
-
# <%= dials %>
|
49
|
-
# => components: !omap
|
50
|
-
def dials
|
51
|
-
"components: !omap"
|
52
|
-
end
|
53
|
-
|
54
|
-
# generates a component yaml class declaration
|
55
|
-
# ==== Example
|
56
|
-
# <%= component :axis_category %>
|
57
|
-
# => axis_category: --- !ruby/object:Ziya::Components::AxisCategory
|
58
|
-
def component( component_name )
|
59
|
-
"#{component_name}: #{clazz component_name, :Components}"
|
60
|
-
end
|
61
|
-
alias :comp :component
|
62
|
-
|
63
|
-
# generates a drawing yaml class declaration
|
64
|
-
# ==== Example
|
65
|
-
# <%=drawing :rect %>
|
66
|
-
# => --- !ruby/object:Ziya::Components::Rect
|
67
|
-
def drawing( class_name )
|
68
|
-
clazz( class_name, :Components )
|
69
|
-
end
|
70
|
-
alias_method :filter_type, :drawing
|
71
|
-
alias_method :area , :drawing
|
72
|
-
|
73
|
-
# generates a yaml chart declaration
|
74
|
-
# ==== Example
|
75
|
-
# <%= chart :bar %>
|
76
|
-
# => --- !ruby/object:Ziya::Charts::Bar
|
77
|
-
def chart( class_name )
|
78
|
-
"--- #{clazz( class_name, :Charts )}"
|
79
|
-
end
|
80
|
-
|
81
|
-
private
|
82
|
-
|
83
|
-
# generates a yaml class declaration
|
84
|
-
def clazz( class_name, module_name=nil ) #:nodoc:
|
85
|
-
buff = "!ruby/object:Ziya::"
|
86
|
-
buff << "#{module_name}::" unless module_name.nil?
|
87
|
-
buff << "#{camelize(class_name.to_s)}"
|
88
|
-
buff
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
data/lib/ziya/utils/text.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# -----------------------------------------------------------------------------
|
2
|
-
# == Ziya::Utils::Text
|
3
|
-
#
|
4
|
-
# TODO !! Just make this a core extension to String already...
|
5
|
-
#
|
6
|
-
# Various text utils. Yes indeed lifted from Inflecto to remove Inflector
|
7
|
-
# dependencies...
|
8
|
-
#
|
9
|
-
# Author:: Fernand Galiana
|
10
|
-
# Date:: Dec 15th, 2006
|
11
|
-
# -----------------------------------------------------------------------------
|
12
|
-
module Ziya::Utils
|
13
|
-
module Text
|
14
|
-
# Pulled from the Rails Inflector class and modified slightly to fit our needs.
|
15
|
-
def camelize(string)
|
16
|
-
string.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
|
17
|
-
end
|
18
|
-
|
19
|
-
# Same as Rails Inflector but eliminating inflector dependency
|
20
|
-
def underscore(camel_cased_word)
|
21
|
-
camel_cased_word.to_s.gsub(/::/, '/').
|
22
|
-
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
23
|
-
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
24
|
-
tr("-", "_").
|
25
|
-
downcase
|
26
|
-
end
|
27
|
-
|
28
|
-
# Pulled from the Rails Inflector class and modified slightly to fit our needs.
|
29
|
-
def classify(string)
|
30
|
-
camelize(string.to_s.sub(/.*\./, ''))
|
31
|
-
end
|
32
|
-
|
33
|
-
# strip out module name and return bare class name
|
34
|
-
def demodulize( clazz )
|
35
|
-
clazz.gsub( /^.*::/, '' )
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
data/lib/ziya/ziya_helper.rb
DELETED
@@ -1,362 +0,0 @@
|
|
1
|
-
# Generates necessary html flash tag to support ZiYa
|
2
|
-
#
|
3
|
-
# TODO -- Rewrite to use content tag block instead...
|
4
|
-
#
|
5
|
-
# Author: Fernand Galiana
|
6
|
-
require 'cgi'
|
7
|
-
require 'erb'
|
8
|
-
|
9
|
-
module Ziya
|
10
|
-
module Helper
|
11
|
-
|
12
|
-
# generates a javascript tag to include the js script to create object and
|
13
|
-
# embed tags
|
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
|
-
|
20
|
-
js = <<-JS
|
21
|
-
<script language="javascript" type="text/javascript">
|
22
|
-
AC_FL_RunContent = 0;
|
23
|
-
DetectFlashVer = 0;
|
24
|
-
</script>
|
25
|
-
<script src="#{options[:swf_path]}/AC_RunActiveContent.js" language="javascript"></script>
|
26
|
-
<script language="javascript" type="text/javascript">
|
27
|
-
var requiredMajorVersion = #{options[:major_vers]};
|
28
|
-
var requiredMinorVersion = #{options[:minor_vers]};
|
29
|
-
var requiredRevision = #{options[:req_vers]};
|
30
|
-
</script>
|
31
|
-
JS
|
32
|
-
end
|
33
|
-
|
34
|
-
# generates necessary object and embed tags to display a flash movie on various
|
35
|
-
# browsers using javascript
|
36
|
-
def ziya_chart_js( url, chart_options={} )
|
37
|
-
options = { :width => "400",
|
38
|
-
:height => "300",
|
39
|
-
:bgcolor => "000000",
|
40
|
-
:wmode => "opaque",
|
41
|
-
:menu => true,
|
42
|
-
:full_screen => true,
|
43
|
-
:align => "l",
|
44
|
-
:salign => "tl",
|
45
|
-
:scale => "noscale",
|
46
|
-
:use_cache => false,
|
47
|
-
:timeout => nil,
|
48
|
-
:retry => 2,
|
49
|
-
:use_stage => false,
|
50
|
-
:id => "ziya_chart",
|
51
|
-
:swf_path => chart_path,
|
52
|
-
}.merge!(chart_options)
|
53
|
-
|
54
|
-
# Setup options for opaque mode
|
55
|
-
setup_wmode( options )
|
56
|
-
|
57
|
-
# setup width and height
|
58
|
-
setup_movie_size( options )
|
59
|
-
|
60
|
-
flash_vars = url ? charts_swf : charts_swf_base
|
61
|
-
xml_swf_path = flash_vars % [options[:swf_path], escape_url(url)]
|
62
|
-
xml_swf_path << "&chart_id=#{options[:id]}"
|
63
|
-
xml_swf_path << "×tamp=#{Time.now.to_i}" if options[:cache] == false
|
64
|
-
xml_swf_path << "&timeout=#{options[:timeout]}&retry=#{options[:retry]}" if options[:timeout]
|
65
|
-
xml_swf_path << "&stage_width=#{options[:width]}&stage_height=#{options[:height]}" if options[:use_stage] == true
|
66
|
-
|
67
|
-
js = <<-JS
|
68
|
-
<script language="javascript" type="text/javascript">
|
69
|
-
if (AC_FL_RunContent == 0 || DetectFlashVer == 0) {
|
70
|
-
alert( "This page requires AC_RunActiveContent.js." );
|
71
|
-
}
|
72
|
-
else {
|
73
|
-
var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
|
74
|
-
if( hasRightVersion ) {
|
75
|
-
AC_FL_RunContent(
|
76
|
-
'codebase' , 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,45,0',
|
77
|
-
'width' , '#{options[:width]}',
|
78
|
-
'height' , '#{options[:height]}',
|
79
|
-
'scale' , '#{options[:scale]}',
|
80
|
-
'salign' , '#{options[:salign]}',
|
81
|
-
'bgcolor' , '#{options[:bgcolor]}',
|
82
|
-
'wmode' , '#{options[:wmode]}',
|
83
|
-
'movie' , '#{options[:swf_path]}/charts',
|
84
|
-
'src' , '#{options[:swf_path]}/charts',
|
85
|
-
'FlashVars' , '#{xml_swf_path}',
|
86
|
-
'id' , '#{options[:id]}',
|
87
|
-
'name' , '#{options[:id]}',
|
88
|
-
'menu' , '#{options[:menu]}',
|
89
|
-
'allowFullScreen' , '#{options[:full_screen]}',
|
90
|
-
'allowScriptAccess','sameDomain',
|
91
|
-
'quality' , 'high',
|
92
|
-
'align' , '#{options[:align]}',
|
93
|
-
'pluginspage' , 'http://www.macromedia.com/go/getflashplayer',
|
94
|
-
'play' , 'true',
|
95
|
-
'devicefont' , 'false'
|
96
|
-
);
|
97
|
-
}
|
98
|
-
else {
|
99
|
-
var alternateContent = 'This content requires the Adobe Flash Player. '
|
100
|
-
+ '<u><a href=http://www.macromedia.com/go/getflash/>Get Flash</a></u>.';
|
101
|
-
document.write(alternateContent);
|
102
|
-
}
|
103
|
-
}
|
104
|
-
</script>
|
105
|
-
JS
|
106
|
-
end
|
107
|
-
|
108
|
-
# generates necessary html tags to display a gauge.
|
109
|
-
def ziya_gauge( url, gauge_options={} )
|
110
|
-
options = { :width => "200",
|
111
|
-
:height => "200",
|
112
|
-
:align => "middle",
|
113
|
-
:scale => "noscale",
|
114
|
-
:salign => "",
|
115
|
-
:class => "",
|
116
|
-
:id => "ziya_gauge",
|
117
|
-
:swf_path => gauge_path,
|
118
|
-
:use_cache => false,
|
119
|
-
:timeout => false,
|
120
|
-
:retry => 2,
|
121
|
-
:use_stage => false
|
122
|
-
}.merge!(gauge_options)
|
123
|
-
|
124
|
-
generate_old_style_flash_tag( url, gauges_swf, options )
|
125
|
-
end
|
126
|
-
|
127
|
-
# generates neccessary html tags to display a chart.
|
128
|
-
def ziya_chart( url, chart_options = {} )
|
129
|
-
options = { :width => "400",
|
130
|
-
:height => "300",
|
131
|
-
:tag_type => "embed",
|
132
|
-
:align => "l",
|
133
|
-
:salign => "tl",
|
134
|
-
:scale => "noscale",
|
135
|
-
:class => "",
|
136
|
-
:id => "ziya_chart",
|
137
|
-
:swf_path => chart_path,
|
138
|
-
:use_cache => false,
|
139
|
-
:timeout => nil,
|
140
|
-
:use_stage => false
|
141
|
-
}.merge!(chart_options)
|
142
|
-
|
143
|
-
flash_vars = url ? charts_swf : charts_swf_base
|
144
|
-
generate_flash_tag( url, flash_vars, "charts.swf", options )
|
145
|
-
end
|
146
|
-
|
147
|
-
# flash chart library path
|
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
|
157
|
-
end
|
158
|
-
|
159
|
-
# =========================================================================
|
160
|
-
# private
|
161
|
-
|
162
|
-
# Const accessors...
|
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
|
174
|
-
|
175
|
-
# generates swf path
|
176
|
-
def gen_swf_path( path_directive, swf_dir, url )
|
177
|
-
path_directive % [swf_dir, escape_url( url )]
|
178
|
-
end
|
179
|
-
|
180
|
-
def generate_old_style_flash_tag( url, swf_path, options )
|
181
|
-
# Setup options for opaque mode
|
182
|
-
setup_wmode( options )
|
183
|
-
|
184
|
-
# setup width and height
|
185
|
-
setup_movie_size( options )
|
186
|
-
|
187
|
-
color_param = tag( 'param', {:name => 'bgcolor', :value => options[:bgcolor]}, true )
|
188
|
-
color_param += tag( 'param', {:name => "wmode", :value => options[:wmode]}, true )
|
189
|
-
|
190
|
-
xml_swf_path = swf_path % [options[:swf_path], url]
|
191
|
-
xml_swf_path << "×tamp=#{Time.now.to_i}" if options[:use_cache] == true
|
192
|
-
xml_swf_path << "&timeout=#{options[:timeout]}&retry=#{options[:retry]}" if options[:timeout] == true
|
193
|
-
xml_swf_path << "&stage_width=#{options[:width]}&stage_height=#{options[:height]}" if options[:use_stage] == true
|
194
|
-
tags = <<-TAGS
|
195
|
-
<object codebase="#{codebase}" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="#{options[:id]}" height="#{options[:height]}" width="#{options[:width]}">
|
196
|
-
<param name="scale" value="noscale">
|
197
|
-
<param name="align" value="#{options[:align]}">
|
198
|
-
<param name="bgcolor" value="#{options[:bgcolor]}">
|
199
|
-
<param name="wmode" value="#{options[:wmode]}">
|
200
|
-
<param name="movie" value="#{xml_swf_path}">
|
201
|
-
<param name="menu" value="true">
|
202
|
-
<param name="allowFullScreen" value="true">
|
203
|
-
<param name="allowScriptAccess" value="sameDomain">
|
204
|
-
<param name="quality" value="high">
|
205
|
-
<param name="play" value="true">
|
206
|
-
<param name="devicefont" value="false">
|
207
|
-
<embed scale="noscale"
|
208
|
-
allowfullscreen="true"
|
209
|
-
allowscriptaccess="sameDomain"
|
210
|
-
bgcolor="#{options[:bgcolor]}"
|
211
|
-
devicefont="false"
|
212
|
-
src="#{xml_swf_path}"
|
213
|
-
menu="true"
|
214
|
-
name="#{options[:id]}"
|
215
|
-
play="true"
|
216
|
-
pluginspage="http://www.macromedia.com/go/getflashplayer"
|
217
|
-
quality="high"
|
218
|
-
salign="#{options[:salign]}"
|
219
|
-
src="#{xml_swf_path}"
|
220
|
-
type="application/x-shockwave-flash"
|
221
|
-
wmode="#{options[:wmode]}"
|
222
|
-
salign="#{options[:salign]}"
|
223
|
-
height="#{options[:height]}"
|
224
|
-
width="#{options[:width]}">
|
225
|
-
</object>
|
226
|
-
TAGS
|
227
|
-
end
|
228
|
-
|
229
|
-
# generated the object and embed tag necessary for the flash movie
|
230
|
-
def generate_flash_tag( url, swf_path, swf_file, options )
|
231
|
-
# Setup options for opaque mode
|
232
|
-
setup_wmode( options )
|
233
|
-
|
234
|
-
# setup width and height
|
235
|
-
setup_movie_size( options )
|
236
|
-
|
237
|
-
color_param = tag( 'param', {:name => 'bgcolor', :value => options[:bgcolor]}, true )
|
238
|
-
color_param += tag( 'param', {:name => "wmode", :value => options[:wmode]}, true )
|
239
|
-
|
240
|
-
xml_swf_path = gen_swf_path( swf_path, options[:swf_path], url )
|
241
|
-
xml_swf_path << "×tamp=#{Time.now.to_i}" if options[:cache] == false
|
242
|
-
xml_swf_path << "&timeout=#{options[:timeout]}" if options[:timeout]
|
243
|
-
xml_swf_path << "&stage_width=#{options[:width]}&stage_height=#{options[:height]}" if options[:use_stage] == true
|
244
|
-
|
245
|
-
tags = <<-TAGS
|
246
|
-
<object codebase="#{codebase}" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="#{options[:id]}" height="#{options[:height]}" width="#{options[:width]}">
|
247
|
-
<param name="scale" value="noscale">
|
248
|
-
<param name="salign" value="#{options[:salign]}">
|
249
|
-
<param name="bgcolor" value="#{options[:bgcolor]}">
|
250
|
-
<param name="wmode" value="#{options[:wmode]}">
|
251
|
-
<param name="movie" value="#{options[:swf_path]}/#{swf_file}">
|
252
|
-
<param name="Flashvars" value="#{xml_swf_path}&chart_id=#{options[:id]}">
|
253
|
-
<param name="menu" value="true">
|
254
|
-
<param name="allowFullScreen" value="true">
|
255
|
-
<param name="allowScriptAccess" value="sameDomain">
|
256
|
-
<param name="quality" value="high">
|
257
|
-
<param name="play" value="true">
|
258
|
-
<param name="devicefont" value="false">
|
259
|
-
<embed scale="noscale"
|
260
|
-
allowfullscreen = "true"
|
261
|
-
allowscriptaccess = "sameDomain"
|
262
|
-
bgcolor = "#{options[:bgcolor]}"
|
263
|
-
devicefont = "false"
|
264
|
-
flashvars = "#{xml_swf_path}&chart_id=#{options[:id]}"
|
265
|
-
menu = "true"
|
266
|
-
name = "#{options[:id]}"
|
267
|
-
play = "true"
|
268
|
-
pluginspage = "http://www.macromedia.com/go/getflashplayer"
|
269
|
-
quality = "high"
|
270
|
-
salign = "#{options[:salign]}"
|
271
|
-
src = "#{options[:swf_path]}/#{swf_file}"
|
272
|
-
type = "application/x-shockwave-flash"
|
273
|
-
wmode = "#{options[:wmode]}"
|
274
|
-
align = "#{options[:align]}"
|
275
|
-
height = "#{options[:height]}"
|
276
|
-
width = "#{options[:width]}"/>
|
277
|
-
</object>
|
278
|
-
TAGS
|
279
|
-
end
|
280
|
-
|
281
|
-
# escape url
|
282
|
-
def escape_url( url )
|
283
|
-
url ? CGI.escape( url.gsub( /&/, '&' ) ) : url
|
284
|
-
end
|
285
|
-
|
286
|
-
# setup up wmode
|
287
|
-
# Set the wmode to opaque if a bgcolor is specified. If not set to
|
288
|
-
# transparent mode unless user overrides it
|
289
|
-
def setup_wmode( options )
|
290
|
-
if options[:bgcolor]
|
291
|
-
options[:wmode] = "opaque" unless options[:wmode]
|
292
|
-
else
|
293
|
-
options[:wmode] = "transparent" unless options[:wmode]
|
294
|
-
options[:bgcolor] = "#FFFFFF"
|
295
|
-
end
|
296
|
-
end
|
297
|
-
|
298
|
-
# Check args for size option in the format wXy (Submitted by Sam Livingston-Gray)
|
299
|
-
def setup_movie_size( options )
|
300
|
-
if options[:size] =~ /(\d+)x(\d+)/
|
301
|
-
options[:width] = $1
|
302
|
-
options[:height] = $2
|
303
|
-
options.delete :size
|
304
|
-
end
|
305
|
-
end
|
306
|
-
|
307
|
-
# All this stolen form rails to make Ziya work with other fmks....
|
308
|
-
def tag(name, options = nil, open = false, escape = true)
|
309
|
-
"<#{name}#{tag_options(options, escape) if options}" + (open ? ">" : " />")
|
310
|
-
end
|
311
|
-
|
312
|
-
def escape_once(html)
|
313
|
-
html.to_s.gsub(/[\"><]|&(?!([a-zA-Z]+|(#\d+));)/) { |special| escape_chars[special] }
|
314
|
-
end
|
315
|
-
|
316
|
-
def tag_options(options, escape = true)
|
317
|
-
unless !options or options.empty?
|
318
|
-
attrs = []
|
319
|
-
if escape
|
320
|
-
options.each do |key, value|
|
321
|
-
next unless value
|
322
|
-
key = key.to_s
|
323
|
-
value = escape_once(value)
|
324
|
-
attrs << %(#{key}="#{value}")
|
325
|
-
end
|
326
|
-
else
|
327
|
-
attrs = options.map { |key, value| %(#{key}="#{value}") }
|
328
|
-
end
|
329
|
-
" #{attrs.sort * ' '}" unless attrs.empty?
|
330
|
-
end
|
331
|
-
end
|
332
|
-
|
333
|
-
def content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block)
|
334
|
-
if block_given?
|
335
|
-
options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
|
336
|
-
content = capture_block(&block)
|
337
|
-
content_tag = content_tag_string(name, content, options, escape)
|
338
|
-
block_is_within_action_view?(block) ? concat(content_tag, block.binding) : content_tag
|
339
|
-
else
|
340
|
-
content = content_or_options_with_block
|
341
|
-
content_tag_string(name, content, options, escape)
|
342
|
-
end
|
343
|
-
end
|
344
|
-
|
345
|
-
def capture_block( *args, &block )
|
346
|
-
block.call(*args)
|
347
|
-
end
|
348
|
-
|
349
|
-
def content_tag_string(name, content, options, escape = true)
|
350
|
-
tag_options = tag_options(options, escape) if options
|
351
|
-
"<#{name}#{tag_options}>#{content}</#{name}>"
|
352
|
-
end
|
353
|
-
|
354
|
-
def block_is_within_action_view?(block)
|
355
|
-
eval("defined? _erbout", block.binding)
|
356
|
-
end
|
357
|
-
|
358
|
-
def escape_chars
|
359
|
-
{ '&' => '&', '"' => '"', '>' => '>', '<' => '<' }
|
360
|
-
end
|
361
|
-
end
|
362
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
|
2
|
-
|
3
|
-
describe Ziya::Components::Draw do
|
4
|
-
before( :each ) do
|
5
|
-
@comp = Ziya::Components::Draw.new
|
6
|
-
circle = Ziya::Components::Circle.new
|
7
|
-
circle.radius = 10
|
8
|
-
image = Ziya::Components::Image.new
|
9
|
-
image.x = 10
|
10
|
-
@comp.components = [circle, image]
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should define the correct attribute methods" do
|
14
|
-
lambda{ Ziya::Components::Draw.attributes[@comp.class.name].each {
|
15
|
-
|m| @comp.send( m ) } }.should_not raise_error
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "#flatten" do
|
19
|
-
before( :each ) do
|
20
|
-
@xml = Builder::XmlMarkup.new
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should flatten component correctly" do
|
24
|
-
@comp.flatten( @xml ).should == "<draw><circle radius=\"10\"/><image x=\"10\"/></draw>"
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should support composite charts" do
|
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&xml_source=%2Ffred&chart_id=fred\"/><image url=\"/charts/charts.swf?library_path=/charts/charts_library&xml_source=%2Fblee&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&chart_id=fred\"/></draw>"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
data/spec/utils/text_spec.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. spec_helper]))
|
2
|
-
|
3
|
-
describe Ziya::Utils::Text do
|
4
|
-
describe "camelize" do
|
5
|
-
it "should camelize a plain string correctly" do
|
6
|
-
camelize( "fred" ).should == "Fred"
|
7
|
-
end
|
8
|
-
|
9
|
-
it "shoud camelize a class name correctly" do
|
10
|
-
camelize( "hello_world" ).should == "HelloWorld"
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should camelize a namespace class file correctly" do
|
14
|
-
camelize( "/blee/fred/hello_world" ).should == "::Blee::Fred::HelloWorld"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "underscore" do
|
19
|
-
it "should underscore a plain string" do
|
20
|
-
underscore( "fred" ).should == "fred"
|
21
|
-
end
|
22
|
-
|
23
|
-
it "should underscore a camel cased string" do
|
24
|
-
underscore( "HelloWorld" ).should == "hello_world"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe "classify" do
|
29
|
-
it "should classify an attribute correctly" do
|
30
|
-
classify( "fred.blee_duh" ).should == "BleeDuh"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|