ziya 2.1.7 → 2.1.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.
- data/Gemfile +10 -0
- data/Gemfile.lock +29 -0
- data/History.txt +34 -4
- data/{README.txt → README.rdoc} +1 -36
- data/README.txt1 +310 -0
- data/Rakefile +17 -43
- data/examples/charts/public/charts/.DS_Store +0 -0
- data/lib/ziya.rb +129 -104
- data/lib/ziya/charts/base.rb +17 -9
- data/lib/ziya/gauges/base.rb +4 -2
- data/lib/ziya/gauges/signal.rb +4 -4
- data/lib/ziya/gauges/support/base.rb +3 -3
- data/lib/ziya/maps/base.rb +4 -2
- data/lib/ziya/maps/support/base.rb +1 -1
- data/lib/ziya/maps/support/range.rb +1 -1
- data/lib/ziya/yaml_helpers/charts.rb +1 -1
- data/resources/charts/.DS_Store +0 -0
- data/resources/charts/charts_library/.DS_Store +0 -0
- data/resources/charts/sliders/.DS_Store +0 -0
- data/resources/gauges/.DS_Store +0 -0
- data/resources/maps/.DS_Store +0 -0
- data/spec/charts/support/chart_pref_spec.rb +1 -1
- data/spec/gauges/signal_spec.rb +2 -2
- data/spec/gauges/support/area_spec.rb +5 -5
- data/spec/gauges/support/image_spec.rb +2 -2
- data/spec/gauges/support/line_spec.rb +2 -2
- data/spec/gauges/support/link_spec.rb +2 -2
- data/spec/gauges/support/move_spec.rb +2 -2
- data/spec/gauges/support/polygon_spec.rb +2 -2
- data/spec/gauges/support/radial_numbers_spec.rb +4 -5
- data/spec/gauges/support/radial_ticks_spec.rb +2 -2
- data/spec/gauges/support/rotate_spec.rb +2 -2
- data/spec/gauges/support/scale_spec.rb +2 -2
- data/spec/gauges/support/text_spec.rb +2 -2
- data/spec/maps/base_spec.rb +1 -1
- data/spec/maps/support/default_color_spec.rb +2 -2
- data/spec/maps/support/heat_range_spec.rb +3 -2
- data/spec/ziya_spec.rb +1 -5
- data/version.txt +1 -0
- data/{ziya.gemspec → ziya.gemspec1} +0 -0
- metadata +54 -41
- data/Manifest.txt +0 -343
- data/lib/ziya/version.rb +0 -14
- data/tasks/ann.rake +0 -76
- data/tasks/annotations.rake +0 -22
- data/tasks/doc.rake +0 -53
- data/tasks/gem.rake +0 -110
- data/tasks/manifest.rake +0 -49
- data/tasks/post_load.rake +0 -26
- data/tasks/rubyforge.rake +0 -57
- data/tasks/setup.rb +0 -227
- data/tasks/spec.rake +0 -61
- data/tasks/svn.rake +0 -44
- data/tasks/test.rake +0 -38
Binary file
|
data/lib/ziya.rb
CHANGED
@@ -1,121 +1,146 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
7
|
-
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
8
|
-
|
9
|
-
def self.default_configuration
|
10
|
-
{
|
11
|
-
:themes_dir => File.join( File.dirname(__FILE__), %w[.. charts themes] ),
|
12
|
-
:log_file => $stdout,
|
13
|
-
:log_level => :info
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.initialize( opts={} )
|
18
|
-
if opts[:log_level] == :debug
|
19
|
-
puts ">>> No logger specified. Using ZiYa default logger" unless opts[:logger]
|
20
|
-
puts ">>> No themes_dir specified. Using ZiYa default themes" unless opts[:themes_dir]
|
21
|
-
end
|
22
|
-
@config = default_configuration.merge( opts )
|
23
|
-
@logger = opts[:logger] if opts[:logger]
|
24
|
-
|
25
|
-
# Verify existence of themes, designs and helper dirs if any
|
26
|
-
if themes_dir
|
27
|
-
raise "Unable to find themes directory `#{themes_dir}" unless File.exists?( themes_dir )
|
28
|
-
end
|
29
|
-
|
30
|
-
if map_themes_dir
|
31
|
-
raise "Unable to find map themes directory `#{map_themes_dir}" unless File.exists?( map_themes_dir )
|
32
|
-
end
|
1
|
+
module Ziya
|
2
|
+
# :stopdoc:
|
3
|
+
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
4
|
+
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
5
|
+
# :startdoc:
|
33
6
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
if helpers_dir
|
39
|
-
raise "Unable to find helper directory `#{helpers_dir}" unless File.exists?( helpers_dir )
|
40
|
-
end
|
41
|
-
|
42
|
-
# Add the ziya/lib to the ruby path...
|
43
|
-
$: << libpath
|
44
|
-
Ziya.require_all_libs_relative_to __FILE__
|
45
|
-
|
46
|
-
dump if config[:log_level] == :debug
|
7
|
+
def self.initialize( opts={} )
|
8
|
+
if opts[:log_level] == :debug
|
9
|
+
puts ">>> No logger specified. Using ZiYa default logger" unless opts[:logger]
|
10
|
+
puts ">>> No themes_dir specified. Using ZiYa default themes" unless opts[:themes_dir]
|
47
11
|
end
|
12
|
+
@config = default_configuration.merge( opts )
|
13
|
+
@logger = opts[:logger] if opts[:logger]
|
48
14
|
|
49
|
-
#
|
50
|
-
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
# directory location for ziya stylesheet custom helpers
|
55
|
-
def self.helpers_dir
|
56
|
-
config[:helpers_dir]
|
57
|
-
end
|
58
|
-
|
59
|
-
# the themes root directory location
|
60
|
-
def self.themes_dir
|
61
|
-
config[:themes_dir]
|
15
|
+
# Verify existence of themes, designs and helper dirs if any
|
16
|
+
if themes_dir
|
17
|
+
raise "Unable to find themes directory `#{themes_dir}" unless File.exists?( themes_dir )
|
62
18
|
end
|
63
19
|
|
64
|
-
|
65
|
-
|
66
|
-
config[:map_themes_dir]
|
20
|
+
if map_themes_dir
|
21
|
+
raise "Unable to find map themes directory `#{map_themes_dir}" unless File.exists?( map_themes_dir )
|
67
22
|
end
|
68
23
|
|
69
|
-
|
70
|
-
|
71
|
-
config[:designs_dir]
|
24
|
+
if designs_dir
|
25
|
+
raise "Unable to find designs directory `#{designs_dir}" unless File.exists?( designs_dir )
|
72
26
|
end
|
73
27
|
|
74
|
-
|
75
|
-
|
76
|
-
puts ""
|
77
|
-
puts "ZiYa Configuration Landscape"
|
78
|
-
config.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k|
|
79
|
-
key = k.to_s.rjust(20)
|
80
|
-
value = config[k].to_s.rjust(97,".")
|
81
|
-
puts "#{key} : #{value}"
|
82
|
-
end
|
28
|
+
if helpers_dir
|
29
|
+
raise "Unable to find helper directory `#{helpers_dir}" unless File.exists?( helpers_dir )
|
83
30
|
end
|
84
31
|
|
85
|
-
#
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
32
|
+
# Add the ziya/lib to the ruby path...
|
33
|
+
$: << libpath
|
34
|
+
Ziya.require_all_libs_relative_to __FILE__
|
35
|
+
|
36
|
+
dump if config[:log_level] == :debug
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.default_configuration
|
40
|
+
{
|
41
|
+
:themes_dir => File.join( File.dirname(__FILE__), %w[.. charts themes] ),
|
42
|
+
:log_file => $stdout,
|
43
|
+
:log_level => :info
|
44
|
+
}
|
45
|
+
end
|
46
|
+
|
47
|
+
# ZiYa configuration
|
48
|
+
def self.config
|
49
|
+
@config
|
50
|
+
end
|
51
|
+
|
52
|
+
# directory location for ziya stylesheet custom helpers
|
53
|
+
def self.helpers_dir
|
54
|
+
config[:helpers_dir]
|
55
|
+
end
|
56
|
+
|
57
|
+
# the themes root directory location
|
58
|
+
def self.themes_dir
|
59
|
+
config[:themes_dir]
|
60
|
+
end
|
61
|
+
|
62
|
+
# the map themes root directory location
|
63
|
+
def self.map_themes_dir
|
64
|
+
config[:map_themes_dir]
|
65
|
+
end
|
66
|
+
|
67
|
+
# the gauges designs root directory location
|
68
|
+
def self.designs_dir
|
69
|
+
config[:designs_dir]
|
70
|
+
end
|
71
|
+
|
72
|
+
# Debug
|
73
|
+
def self.dump #:nodoc:
|
74
|
+
puts ""
|
75
|
+
puts "ZiYa Configuration Landscape"
|
76
|
+
config.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k|
|
77
|
+
key = k.to_s.rjust(20)
|
78
|
+
value = config[k].to_s.rjust(97,".")
|
79
|
+
puts "#{key} : #{value}"
|
92
80
|
end
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
#
|
98
|
-
|
99
|
-
|
81
|
+
end
|
82
|
+
|
83
|
+
# fetch the framework logger
|
84
|
+
def self.logger
|
85
|
+
# get a hold of a logger.
|
86
|
+
@logger ||= ::Ziya::Logger.new( { :log_file => config[:log_file],
|
87
|
+
:logger_name => "ZiYa",
|
88
|
+
:log_level => config[:log_level],
|
89
|
+
:additive => false } )
|
90
|
+
end
|
91
|
+
|
92
|
+
# Returns the version string for the library.
|
93
|
+
#
|
94
|
+
def self.version
|
95
|
+
@version ||= File.read(path('version.txt')).strip
|
96
|
+
end
|
97
|
+
|
98
|
+
# Returns the library path for the module. If any arguments are given,
|
99
|
+
# they will be joined to the end of the libray path using
|
100
|
+
# <tt>File.join</tt>.
|
101
|
+
#
|
102
|
+
def self.libpath( *args, &block )
|
103
|
+
rv = args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
|
104
|
+
if block
|
105
|
+
begin
|
106
|
+
$LOAD_PATH.unshift LIBPATH
|
107
|
+
rv = block.call
|
108
|
+
ensure
|
109
|
+
$LOAD_PATH.shift
|
110
|
+
end
|
100
111
|
end
|
112
|
+
return rv
|
113
|
+
end
|
101
114
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
115
|
+
# Returns the lpath for the module. If any arguments are given,
|
116
|
+
# they will be joined to the end of the path using
|
117
|
+
# <tt>File.join</tt>.
|
118
|
+
#
|
119
|
+
def self.path( *args, &block )
|
120
|
+
rv = args.empty? ? PATH : ::File.join(PATH, args.flatten)
|
121
|
+
if block
|
122
|
+
begin
|
123
|
+
$LOAD_PATH.unshift PATH
|
124
|
+
rv = block.call
|
125
|
+
ensure
|
126
|
+
$LOAD_PATH.shift
|
127
|
+
end
|
108
128
|
end
|
129
|
+
return rv
|
130
|
+
end
|
109
131
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
132
|
+
# Utility method used to require all files ending in .rb that lie in the
|
133
|
+
# directory below this file that has the same name as the filename passed
|
134
|
+
# in. Optionally, a specific _directory_ name can be passed in such that
|
135
|
+
# the _filename_ does not have to be equivalent to the directory.
|
136
|
+
#
|
137
|
+
def self.require_all_libs_relative_to( fname, dir = nil )
|
138
|
+
dir ||= ::File.basename(fname, '.*')
|
139
|
+
search_me = ::File.expand_path(
|
140
|
+
::File.join(::File.dirname(fname), dir, '**', '*.rb'))
|
141
|
+
|
142
|
+
Dir.glob(search_me).sort.each {|rb| require rb}
|
120
143
|
end
|
121
|
-
end
|
144
|
+
end
|
145
|
+
|
146
|
+
Ziya.require_all_libs_relative_to(__FILE__)
|
data/lib/ziya/charts/base.rb
CHANGED
@@ -217,7 +217,7 @@ module Ziya::Charts
|
|
217
217
|
@options[directive] = styles
|
218
218
|
when :chart_types
|
219
219
|
types = args.first.is_a?(Array) ? args.shift : []
|
220
|
-
raise ArgumentError, "Must specify a set of chart types" if types.
|
220
|
+
raise ArgumentError, "Must specify a set of chart types" if types.empty?
|
221
221
|
@options[directive] = types
|
222
222
|
when :theme
|
223
223
|
theme = args.first.is_a?(String) ? args.shift : ""
|
@@ -237,7 +237,8 @@ module Ziya::Charts
|
|
237
237
|
# link update where you may not need to redraw the whole chart.
|
238
238
|
def to_s( options={} )
|
239
239
|
@partial = options[:partial] || false
|
240
|
-
|
240
|
+
out = ""
|
241
|
+
@xml = Builder::XmlMarkup.new( :target => out )
|
241
242
|
# Forces utf8 encoding on xml stream
|
242
243
|
@xml.instruct! :xml, :version => "1.0", :encoding => "UTF-8"
|
243
244
|
@xml.chart do
|
@@ -255,6 +256,7 @@ module Ziya::Charts
|
|
255
256
|
setup_series
|
256
257
|
end
|
257
258
|
@xml.to_s.gsub( /<to_s\/>/, '' )
|
259
|
+
out
|
258
260
|
end
|
259
261
|
# dumps the chart design to xml for client side consumption
|
260
262
|
alias to_xml to_s
|
@@ -303,12 +305,18 @@ module Ziya::Charts
|
|
303
305
|
@xml.row do
|
304
306
|
categories.each do |category|
|
305
307
|
case
|
306
|
-
when category.nil?
|
307
|
-
|
308
|
-
when category.instance_of?(
|
309
|
-
|
310
|
-
when category.
|
311
|
-
|
308
|
+
when category.nil?
|
309
|
+
@xml.null
|
310
|
+
when category.instance_of?(Symbol)
|
311
|
+
@xml.string( category.to_s )
|
312
|
+
when category.instance_of?(String)
|
313
|
+
@xml.string( category )
|
314
|
+
when category.respond_to?(:zero?)
|
315
|
+
@xml.number( category )
|
316
|
+
when category.is_a?(Hash)
|
317
|
+
categ = category.clone;gen_row_data( categ.delete( :value ), categ, @xml )
|
318
|
+
else
|
319
|
+
puts "No match"
|
312
320
|
end
|
313
321
|
end
|
314
322
|
end
|
@@ -339,7 +347,7 @@ module Ziya::Charts
|
|
339
347
|
# generates chart data points
|
340
348
|
# BOZO !! Check args on hash
|
341
349
|
def gen_chart_data( series )
|
342
|
-
block =
|
350
|
+
block = proc {
|
343
351
|
series[:points].each do |row|
|
344
352
|
if !row
|
345
353
|
@xml.null
|
data/lib/ziya/gauges/base.rb
CHANGED
@@ -134,13 +134,15 @@ module Ziya::Gauges
|
|
134
134
|
# -----------------------------------------------------------------------
|
135
135
|
# renders chart to xml
|
136
136
|
def render_xml
|
137
|
-
|
137
|
+
out = ''
|
138
|
+
@xml = Builder::XmlMarkup.new( :target => out )
|
138
139
|
@xml.gauge do
|
139
140
|
@xml.license( @license ) unless @license.nil?
|
140
141
|
render_extra_components
|
141
142
|
render_components
|
142
143
|
end
|
143
|
-
@xml.to_s.gsub( /<to_s\/>/, '' )
|
144
|
+
@xml.to_s.gsub( /<to_s\/>/, '' )
|
145
|
+
out
|
144
146
|
end
|
145
147
|
|
146
148
|
# -----------------------------------------------------------------------
|
data/lib/ziya/gauges/signal.rb
CHANGED
@@ -79,7 +79,7 @@ module Ziya::Gauges
|
|
79
79
|
count += 1
|
80
80
|
end
|
81
81
|
buff.join( "\n" )
|
82
|
-
|
82
|
+
end
|
83
83
|
|
84
84
|
# -----------------------------------------------------------------------
|
85
85
|
# draws signal change indicator
|
@@ -122,9 +122,9 @@ module Ziya::Gauges
|
|
122
122
|
def calc_change_alpha( change )
|
123
123
|
alphas = []
|
124
124
|
indexes = case change.abs
|
125
|
-
when 0..1
|
126
|
-
when 1..5
|
127
|
-
when 5...10
|
125
|
+
when 0..1 then change >= 0 ? [2] : [3]
|
126
|
+
when 1..5 then change >= 0 ? [1, 2] : [3,4]
|
127
|
+
when 5...10 then change >= 0 ? [0, 1, 2] : [3,4,5]
|
128
128
|
end
|
129
129
|
6.times { |i| alphas[i] = indexes.include?(i) ? 100 : 10 }
|
130
130
|
alphas
|
@@ -11,9 +11,9 @@ module Ziya::Gauges::Support
|
|
11
11
|
options.each_pair do |k,v|
|
12
12
|
if v.is_a? YAML::Omap
|
13
13
|
buff << "#{tab}#{indent}#{dials}"
|
14
|
-
v.each do |
|
15
|
-
buff << "#{tab}#{indent(2)}#{dial( comp.class.name.ziya_demodulize,
|
16
|
-
comp.options.each_pair { |
|
14
|
+
v.each do |comp_name, comp|
|
15
|
+
buff << "#{tab}#{indent(2)}#{dial( comp.class.name.ziya_demodulize, comp_name )}"
|
16
|
+
comp.options.each_pair { |key,val| buff << "#{tab}#{indent(4)}#{key}: #{val}"}
|
17
17
|
end
|
18
18
|
else
|
19
19
|
buff << "#{tab}#{indent(1)}#{k}: #{v}" if options[k] and !options[k].to_s.empty?
|
data/lib/ziya/maps/base.rb
CHANGED
@@ -108,7 +108,7 @@ module Ziya::Maps
|
|
108
108
|
if defined?(RAILS_ROOT)
|
109
109
|
require_dependency File.join(helper_dir, $1)
|
110
110
|
else
|
111
|
-
require File.join(helper_dir, $1)
|
111
|
+
require File.expand_path( File.join(helper_dir, $1) )
|
112
112
|
end
|
113
113
|
helper_module_name = "Ziya::" + $1.gsub(/(^|_)(.)/) { $2.upcase }
|
114
114
|
# helper_module_name = $1.to_s.gsub(/\/(.?)/) { "::" + $1.upcase }.gsub(/(^|_)(.)/) { $2.upcase }
|
@@ -208,7 +208,8 @@ module Ziya::Maps
|
|
208
208
|
|
209
209
|
# spews the map specification to a string
|
210
210
|
def to_s
|
211
|
-
|
211
|
+
out = ''
|
212
|
+
@xml = Builder::XmlMarkup.new( :target => out )
|
212
213
|
# Forces utf8 encoding on xml stream
|
213
214
|
@xml.instruct! :xml, :version => "1.0", :encoding => "UTF-8"
|
214
215
|
if map_type == :us
|
@@ -223,6 +224,7 @@ module Ziya::Maps
|
|
223
224
|
end
|
224
225
|
end
|
225
226
|
@xml.to_s.gsub( /<to_s\/>/, '' )
|
227
|
+
out
|
226
228
|
end
|
227
229
|
# dumps the map design to xml for client side consumption
|
228
230
|
alias to_xml to_s
|
@@ -6,7 +6,7 @@ module Ziya::Maps::Support
|
|
6
6
|
|
7
7
|
# flatten component to xml
|
8
8
|
def flatten( xml )
|
9
|
-
xml.state( :id => to_component_id ) do |
|
9
|
+
xml.state( :id => to_component_id ) do |state|
|
10
10
|
options.keys.sort { |a,b| a.to_s <=> b.to_s }.each{ |k| self.class.module_eval "xml.#{k}( '#{options[k]}' )" }
|
11
11
|
end
|
12
12
|
end
|
@@ -16,7 +16,7 @@ module Ziya::Maps::Support
|
|
16
16
|
define_mappings :level => :data
|
17
17
|
|
18
18
|
def flatten( xml )
|
19
|
-
xml.state( :id => to_component_id ) do
|
19
|
+
xml.state( :id => to_component_id ) do
|
20
20
|
options.keys.sort { |a,b| a.to_s <=> b.to_s }.each { |k| self.class.module_eval "xml.#{find_key_for_attr(k)}( '#{options[k]}' )" }
|
21
21
|
end
|
22
22
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -23,7 +23,7 @@ describe Ziya::Charts::Support::ChartPref do
|
|
23
23
|
it "should flatten line connect correctly" do
|
24
24
|
@comp.connect = true
|
25
25
|
@comp.point_shape = 'square'
|
26
|
-
@comp.flatten( @xml ).should == '<chart_pref
|
26
|
+
@comp.flatten( @xml ).should == '<chart_pref connect="true" point_shape="square"/>'
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should flatten zero line correctly" do
|
data/spec/gauges/signal_spec.rb
CHANGED
@@ -21,8 +21,8 @@ describe Ziya::Gauges::Signal do
|
|
21
21
|
buff.scan( /<license/ ).size.should == 1
|
22
22
|
buff.scan( /<polygon/ ).size.should == 16
|
23
23
|
buff.scan( /<point/ ).size.should == 58
|
24
|
-
buff.scan( /x=\"(.*?\d+)\"/ ).should == [["20"], ["20.0"], ["20.0"], ["35.0"], ["30.0"], ["31.
|
25
|
-
buff.scan( /y=\"(.*?\d+)\"/ ).should == [["30"], ["0.0"], ["-10.0"], ["-5.98076211353316"], ["2.
|
24
|
+
buff.scan( /x=\"(.*?\d+)\"/ ).should == [["20"], ["20.0"], ["20.0"], ["35.0"], ["30.0"], ["31.755705045849464"], ["37.633557568774194"], ["47.40636372927803"], ["38.27090915285201"], ["39.02113032590307"], ["48.53169548885461"], ["49.34442802201417"], ["39.562952014676114"], ["39.02113032590307"], ["48.53169548885461"], ["40.07391819076575"], ["33.38261212717717"], ["31.755705045849467"], ["37.633557568774194"], ["23.135853898029612"], ["22.090569265353075"], ["20.000000000000004"], ["20.000000000000004"], ["4.9999999999999964"], ["9.999999999999998"], ["8.24429495415054"], ["2.36644243122581"], ["-7.406363729278031"], ["1.7290908471479796"], ["0.9788696740969307"], ["-8.531695488854606"], ["-9.344428022014174"], ["0.43704798532388267"], ["0.9788696740969272"], ["-8.53169548885461"], ["-0.07391819076574535"], ["6.617387872822837"], ["8.244294954150535"], ["2.366442431225803"], ["16.864146101970398"], ["17.909430734646932"], ["55"], ["58.5"], ["62.0"], ["55"], ["58.5"], ["62.0"], ["55"], ["58.5"], ["62.0"], ["55"], ["58.5"], ["62.0"], ["55"], ["58.5"], ["62.0"], ["55"], ["58.5"], ["62.0"]]
|
25
|
+
buff.scan( /y=\"(.*?\d+)\"/ ).should == [["30"], ["0.0"], ["-10.0"], ["-5.98076211353316"], ["2.6794919243112254"], ["3.819660112501051"], ["-4.270509831248425"], ["7.797900707725995"], ["11.865267138483997"], ["13.819660112501051"], ["10.729490168751576"], ["26.237350724532774"], ["24.15823381635518"], ["26.180339887498945"], ["29.270509831248418"], ["42.29434476432182"], ["34.86289650954788"], ["36.180339887498945"], ["44.27050983124842"], ["49.8356568610482"], ["39.89043790736547"], ["40.0"], ["50.0"], ["45.98076211353316"], ["37.32050807568877"], ["36.180339887498945"], ["44.270509831248425"], ["32.202099292274"], ["28.134732861516"], ["26.180339887498953"], ["29.270509831248425"], ["13.762649275467243"], ["15.841766183644829"], ["13.819660112501055"], ["10.729490168751584"], ["-2.2943447643218278"], ["5.137103490452116"], ["3.8196601125010545"], ["-4.270509831248422"], ["-9.8356568610482"], ["0.10956209263453331"], ["-2"], ["-9.0"], ["-2"], ["8.0"], ["1.0"], ["8.0"], ["18.0"], ["11.0"], ["18.0"], ["23.0"], ["30.0"], ["23.0"], ["33.0"], ["40.0"], ["33.0"], ["43.0"], ["50.0"], ["43.0"]]
|
26
26
|
end
|
27
27
|
|
28
28
|
it "user can override signal" do
|