lib/plugins/plugin.rb in rsence-pre-2.1.0.11 vs lib/plugins/plugin.rb in rsence-pre-2.1.0.12
- old
+ new
@@ -411,12 +411,20 @@
# @private Initializes session values, if the contents of the +values.yaml+
# file is defined in the bundle directory and loaded in +#init_values+.
def init_ses_values( msg )
return unless @values
- @values.each do | value_name, value_properties |
- init_ses_value( msg, value_name, value_properties )
+ if @values.class == Array
+ @values.each do | value_item |
+ value_item.each do | value_name, value_properties |
+ init_ses_value( msg, value_name, value_properties )
+ end
+ end
+ elsif @values.class == Hash
+ @values.each do | value_name, value_properties |
+ init_ses_value( msg, value_name, value_properties )
+ end
end
end
# @private Returns a value based on the :method and :plugin members of the
# +value_call+ hash.
@@ -468,34 +476,47 @@
end
end
end
end
+ def restore_ses_value( msg, value_name, value_properties )
+ ses = get_ses( msg )
+ if ses.has_key?( value_name ) and ses[ value_name ].class == HValue
+ if value_properties.has_key?(:responders)
+ init_responders( msg, ses[value_name], value_properties[:responders] )
+ else
+ release_responders( msg, ses[value_name] )
+ end
+ unless value_properties[:restore_default] == false
+ if value_properties.has_key?(:value_call)
+ default_value = init_value_call( msg, value_properties[:value_call] )
+ elsif value_properties.has_key?(:value)
+ default_value = value_properties[:value]
+ else
+ default_value = 0
+ end
+ ses[value_name].set( msg, default_value )
+ end
+ else
+ init_ses_value( msg, value_name, value_properties )
+ end
+ end
+
# @private Restores session values to default, unless specified otherwise.
#
# Called from +#restore_ses+
def restore_ses_values( msg )
return unless @values
ses = get_ses( msg )
- @values.each do | value_name, value_properties |
- if ses.has_key?( value_name ) and ses[ value_name ].class == HValue
- if value_properties.has_key?(:responders)
- init_responders( msg, ses[value_name], value_properties[:responders] )
- else
- release_responders( msg, ses[value_name] )
+ if @values.class == Array
+ @values.each do | value_item |
+ value_item.each do | value_name, value_properties |
+ restore_ses_value( msg, value_name, value_properties )
end
- unless value_properties[:restore_default] == false
- if value_properties.has_key?(:value_call)
- default_value = init_value_call( msg, value_properties[:value_call] )
- elsif value_properties.has_key?(:value)
- default_value = value_properties[:value]
- else
- default_value = 0
- end
- ses[value_name].set( msg, default_value )
- end
- else
- init_ses_value( msg, value_name, value_properties )
+ end
+ elsif @values.class == Hash
+ @values.each do | value_name, value_properties |
+ restore_ses_value( msg, value_name, value_properties )
end
end
end
end
end