Sha256: 231a919e290cca9ec422b1488ebf8a72de32fddebb67d4c2f2dd4ecb1aa47cb5

Contents?: true

Size: 965 Bytes

Versions: 9

Compression:

Stored size: 965 Bytes

Contents

require 'action_kit_rest/api'

module ActionKitRest
  class Client < API
    attr_accessor :clients

    def initialize(params)
      super(params)
      self.clients = {}
    end

    [:import, :signup, :donation, :unsubscribe, :event_campaign].each do |page_type|
      define_method "#{page_type}_page" do
        clients["#{page_type}_page"] ||= ("ActionKitRest::Pages::#{page_type.to_s.classify}Page".constantize).new(client: self)
      end
    end

    [:unsubscribe, :event_create, :event_signup].each do |action|
      define_method "#{action}_action" do
        clients["#{action}_action"] ||= ("ActionKitRest::Actions::#{action.to_s.classify}Action".constantize).new(client: self)
      end
    end

    [:action, :page, :tag, :list, :user, :phone, :event, :language, :event_signup].each do |thing|
      define_method thing do
        clients[thing] ||= ("ActionKitRest::#{thing.to_s.classify}".constantize).new(client: self)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
action_kit_rest-0.3.8 lib/action_kit_rest/client.rb
action_kit_rest-0.3.7 lib/action_kit_rest/client.rb
action_kit_rest-0.3.6 lib/action_kit_rest/client.rb
action_kit_rest-0.3.5 lib/action_kit_rest/client.rb
action_kit_rest-0.3.4 lib/action_kit_rest/client.rb
action_kit_rest-0.3.3 lib/action_kit_rest/client.rb
action_kit_rest-0.3.2 lib/action_kit_rest/client.rb
action_kit_rest-0.3.1 lib/action_kit_rest/client.rb
action_kit_rest-0.3.0 lib/action_kit_rest/client.rb