lib/constantcontact/util/config.rb in constantcontact-1.0.0 vs lib/constantcontact/util/config.rb in constantcontact-1.0.1

- old
+ new

@@ -6,113 +6,119 @@ module ConstantContact module Util class Config - class << self + # Return a hash of configuration strings + # @return [Hash] - hash of configuration properties + @props = { + # REST endpoints + :endpoints => { + :base_url => 'https://api.constantcontact.com/v2/', - # Return a hash of configuration strings - # @return [Hash] - hash of configuration properties - def props - { - # REST endpoints - :endpoints => { - :base_url => 'https://api.constantcontact.com/v2/', + :activity => 'activities/%s', + :activities => 'activities', + :export_contacts_activity => 'activities/exportcontacts', + :clear_lists_activity => 'activities/clearlists', + :remove_from_lists_activity => 'activities/removefromlists', + :add_contacts_activity => 'activities/addcontacts', - :activity => 'activities/%s', - :activities => 'activities', - :export_contacts_activity => 'activities/exportcontacts', - :clear_lists_activity => 'activities/clearlists', - :remove_from_lists_activity => 'activities/removefromlists', - :add_contacts_activity => 'activities/addcontacts', + :account_verified_addresses => 'account/verifiedemailaddresses', - :account_verified_addresses => 'account/verifiedemailaddresses', + :contact => 'contacts/%s', + :contacts => 'contacts', + :lists => 'lists', + :list => 'lists/%s', + :list_contacts => 'lists/%s/contacts', + :contact_lists => 'contacts/%s/lists', + :contact_list => 'contacts/%s/lists/%s', - :contact => 'contacts/%s', - :contacts => 'contacts', - :lists => 'lists', - :list => 'lists/%s', - :list_contacts => 'lists/%s/contacts', - :contact_lists => 'contacts/%s/lists', - :contact_list => 'contacts/%s/lists/%s', + :campaigns => 'emailmarketing/campaigns', + :campaign => 'emailmarketing/campaigns/%s', + :campaign_schedules => 'emailmarketing/campaigns/%s/schedules', + :campaign_schedule => 'emailmarketing/campaigns/%s/schedules/%s', + :campaign_test_sends => 'emailmarketing/campaigns/%s/tests', + :campaign_tracking_summary => 'emailmarketing/campaigns/%s/tracking/reports/summary', + :campaign_tracking_bounces => 'emailmarketing/campaigns/%s/tracking/bounces', + :campaign_tracking_clicks => 'emailmarketing/campaigns/%s/tracking/clicks', + :campaign_tracking_forwards => 'emailmarketing/campaigns/%s/tracking/forwards', + :campaign_tracking_opens => 'emailmarketing/campaigns/%s/tracking/opens', + :campaign_tracking_sends => 'emailmarketing/campaigns/%s/tracking/sends', + :campaign_tracking_unsubscribes => 'emailmarketing/campaigns/%s/tracking/unsubscribes', + :campaign_tracking_link => 'emailmarketing/campaigns/%s/tracking/clicks/%s', - :campaigns => 'emailmarketing/campaigns', - :campaign => 'emailmarketing/campaigns/%s', - :campaign_schedules => 'emailmarketing/campaigns/%s/schedules', - :campaign_schedule => 'emailmarketing/campaigns/%s/schedules/%s', - :campaign_test_sends => 'emailmarketing/campaigns/%s/tests', - :campaign_tracking_summary => 'emailmarketing/campaigns/%s/tracking/reports/summary', - :campaign_tracking_bounces => 'emailmarketing/campaigns/%s/tracking/bounces', - :campaign_tracking_clicks => 'emailmarketing/campaigns/%s/tracking/clicks', - :campaign_tracking_forwards => 'emailmarketing/campaigns/%s/tracking/forwards', - :campaign_tracking_opens => 'emailmarketing/campaigns/%s/tracking/opens', - :campaign_tracking_sends => 'emailmarketing/campaigns/%s/tracking/sends', - :campaign_tracking_unsubscribes => 'emailmarketing/campaigns/%s/tracking/unsubscribes', - :campaign_tracking_link => 'emailmarketing/campaigns/%s/tracking/clicks/%s', + :contact_tracking_summary => 'contacts/%s/tracking/reports/summary', + :contact_tracking_bounces => 'contacts/%s/tracking/bounces', + :contact_tracking_clicks => 'contacts/%s/tracking/clicks', + :contact_tracking_forwards => 'contacts/%s/tracking/forwards', + :contact_tracking_opens => 'contacts/%s/tracking/opens', + :contact_tracking_sends => 'contacts/%s/tracking/sends', + :contact_tracking_unsubscribes => 'contacts/%s/tracking/unsubscribes', + :contact_tracking_link => 'contacts/%s/tracking/clicks/%s' + }, - :contact_tracking_summary => 'contacts/%s/tracking/reports/summary', - :contact_tracking_bounces => 'contacts/%s/tracking/bounces', - :contact_tracking_clicks => 'contacts/%s/tracking/clicks', - :contact_tracking_forwards => 'contacts/%s/tracking/forwards', - :contact_tracking_opens => 'contacts/%s/tracking/opens', - :contact_tracking_sends => 'contacts/%s/tracking/sends', - :contact_tracking_unsubscribes => 'contacts/%s/tracking/unsubscribes', - :contact_tracking_link => 'contacts/%s/tracking/clicks/%s' - }, + # OAuth2 Authorization related configuration options + :auth => { + :base_url => 'https://oauth2.constantcontact.com/oauth2/', + :response_type_code => 'code', + :response_type_token => 'token', + :authorization_code_grant_type => 'authorization_code', + :authorization_endpoint => 'oauth/siteowner/authorize', + :token_endpoint => 'oauth/token', + :api_key => '', + :api_secret => '', + :redirect_uri => '' + }, - # OAuth2 Authorization related configuration options - :auth => { - :base_url => 'https://oauth2.constantcontact.com/oauth2/', - :response_type_code => 'code', - :response_type_token => 'token', - :authorization_code_grant_type => 'authorization_code', - :authorization_endpoint => 'oauth/siteowner/authorize', - :token_endpoint => 'oauth/token' - }, + # Column names used with bulk activities + :activities_columns => { + :email => 'EMAIL', + :first_name => 'FIRST NAME', + :middle_name => 'MIDDLE NAME', + :last_name => 'LAST NAME', + :job_title => 'JOB TITLE', + :company_name => 'COMPANY NAME', + :work_phone => 'WORK PHONE', + :home_phone => 'HOME PHONE', + :address1 => 'ADDRESS LINE 1', + :address2 => 'ADDRESS LINE 2', + :address3 => 'ADDRESS LINE 3', + :city => 'CITY', + :state => 'STATE', + :state_province => 'US STATE/CA PROVINCE', + :country => 'COUNTRY', + :postal_code => 'ZIP/POSTAL CODE', + :sub_postal_code => 'SUB ZIP/POSTAL CODE', + :custom_field_1 => 'CUSTOM FIELD 1', + :custom_field_2 => 'CUSTOM FIELD 2', + :custom_field_3 => 'CUSTOM FIELD 3', + :custom_field_4 => 'CUSTOM FIELD 4', + :custom_field_5 => 'CUSTOM FIELD 5', + :custom_field_6 => 'CUSTOM FIELD 6', + :custom_field_7 => 'CUSTOM FIELD 7', + :custom_field_8 => 'CUSTOM FIELD 8', + :custom_field_9 => 'CUSTOM FIELD 9', + :custom_field_10 => 'CUSTOM FIELD 10', + :custom_field_11 => 'CUSTOM FIELD 11', + :custom_field_12 => 'CUSTOM FIELD 12', + :custom_field_13 => 'CUSTOM FIELD 13', + :custom_field_14 => 'CUSTOM FIELD 14', + :custom_field_15 => 'CUSTOM FIELD 15' + }, - # Column names used with bulk activities - :activities_columns => { - :email => 'EMAIL', - :first_name => 'FIRST NAME', - :middle_name => 'MIDDLE NAME', - :last_name => 'LAST NAME', - :job_title => 'JOB TITLE', - :company_name => 'COMPANY NAME', - :work_phone => 'WORK PHONE', - :home_phone => 'HOME PHONE', - :address1 => 'ADDRESS LINE 1', - :address2 => 'ADDRESS LINE 2', - :address3 => 'ADDRESS LINE 3', - :city => 'CITY', - :state => 'STATE', - :state_province => 'US STATE/CA PROVINCE', - :country => 'COUNTRY', - :postal_code => 'ZIP/POSTAL CODE', - :sub_postal_code => 'SUB ZIP/POSTAL CODE', - :custom_field_1 => 'CUSTOM FIELD 1', - :custom_field_2 => 'CUSTOM FIELD 2', - :custom_field_3 => 'CUSTOM FIELD 3', - :custom_field_4 => 'CUSTOM FIELD 4', - :custom_field_5 => 'CUSTOM FIELD 5', - :custom_field_6 => 'CUSTOM FIELD 6', - :custom_field_7 => 'CUSTOM FIELD 7', - :custom_field_8 => 'CUSTOM FIELD 8', - :custom_field_9 => 'CUSTOM FIELD 9', - :custom_field_10 => 'CUSTOM FIELD 10', - :custom_field_11 => 'CUSTOM FIELD 11', - :custom_field_12 => 'CUSTOM FIELD 12', - :custom_field_13 => 'CUSTOM FIELD 13', - :custom_field_14 => 'CUSTOM FIELD 14', - :custom_field_15 => 'CUSTOM FIELD 15' - }, - - # Errors to be returned for various exceptions - :errors => { - :id_or_object => 'Only an id or %s object are allowed for this method.' - } - } - end - + # Errors to be returned for various exceptions + :errors => { + :id_or_object => 'Only an id or %s object are allowed for this method.' + } + } + + class << self + attr_accessor :props + + def configure + yield props if block_given? + end + # Get a configuration property given a specified location, example usage: Config::get('auth.token_endpoint') # @param [String] index - location of the property to obtain # @return [String] def get(index) properties = index.split('.') \ No newline at end of file