lib/intercom-rails/config.rb in intercom-rails-0.0.9 vs lib/intercom-rails/config.rb in intercom-rails-0.1.0
- old
+ new
@@ -1,9 +1,17 @@
module IntercomRails
module Config
+ def self.reset!
+ [self, InboxConfig].each do |configer|
+ configer.instance_variables.each do |var|
+ configer.send(:remove_instance_variable, var)
+ end
+ end
+ end
+
# Your Intercom app_id
def self.app_id=(value)
@app_id = value
end
@@ -48,16 +56,45 @@
def self.user_model
@user_model
end
# Widget options
- def self.inbox=(value)
- raise ArgumentError, "inbox must be one of :default or :custom" unless [:default, :custom].include?(value)
- @inbox = value
+ def self.inbox
+ InboxConfig
end
- def self.inbox
- @inbox
+ def self.custom_data=(value)
+ raise ArgumentError, "custom_data should be a hash" unless value.kind_of?(Hash)
+ unless value.reject { |_,v| v.kind_of?(Proc) || v.kind_of?(Symbol) }.count.zero?
+ raise ArgumentError, "all custom_data attributes should be either a Proc or a symbol"
+ end
+
+ @custom_data = value
+ end
+
+ def self.custom_data
+ @custom_data
+ end
+
+ end
+
+ module InboxConfig
+
+ def self.style=(value)
+ raise ArgumentError, "inbox.style must be one of :default or :custom" unless [:default, :custom].include?(value)
+ @style = value
+ end
+
+ def self.style
+ @style
+ end
+
+ def self.counter=(value)
+ @counter = value
+ end
+
+ def self.counter
+ @counter
end
end
end