lib/intercom-rails/config.rb in intercom-rails-0.2.33 vs lib/intercom-rails/config.rb in intercom-rails-0.2.34
- old
+ new
@@ -66,10 +66,22 @@
IS_PROC_VALIDATOR = Proc.new do |value, field_name|
raise ArgumentError, "#{field_name} is not a proc" unless value.kind_of?(Proc)
end
+ IS_ARAY_OF_PROC_VALIDATOR = Proc.new do |data, field_name|
+ raise ArgumentError, "#{field_name} data should be a proc or an array of proc" unless data.all? { |value| value.kind_of?(Proc)}
+ end
+
+ IS_PROC_OR_ARRAY_OF_PROC_VALIDATOR = Proc.new do |data, field_name|
+ if data.kind_of?(Array)
+ IS_ARAY_OF_PROC_VALIDATOR.call(data, field_name)
+ else
+ IS_PROC_VALIDATOR.call(data, field_name)
+ end
+ end
+
def self.reset!
to_reset = self.constants.map {|c| const_get c}
to_reset << self
to_reset.each do |configer|
@@ -86,10 +98,10 @@
config_accessor :library_url
config_accessor :enabled_environments, &ARRAY_VALIDATOR
config_accessor :include_for_logged_out_users
config_group :user do
- config_accessor :current, &IS_PROC_VALIDATOR
+ config_accessor :current, &IS_PROC_OR_ARRAY_OF_PROC_VALIDATOR
config_accessor :exclude_if, &IS_PROC_VALIDATOR
config_accessor :model, &IS_PROC_VALIDATOR
config_accessor :company_association, &IS_PROC_VALIDATOR
config_accessor :custom_data, &CUSTOM_DATA_VALIDATOR
end