Module: OpenFec

Defined in:
lib/open_fec.rb,
lib/open_fec/error.rb,
lib/open_fec/client.rb,
lib/open_fec/version.rb,
lib/open_fec/response.rb,
lib/open_fec/configuration.rb,
lib/open_fec/resources/base.rb,
lib/open_fec/resources/elections.rb,
lib/open_fec/resources/candidates.rb,
lib/open_fec/resources/committees.rb,
lib/open_fec/resources/contributions.rb,
lib/open_fec/resources/disbursements.rb,
lib/open_fec/resources/candidate_totals.rb,
lib/open_fec/resources/contribution_aggregates.rb,
lib/open_fec/resources/independent_expenditures.rb

Overview

Ruby client for the Federal Election Commission (FEC) API.

Examples:

Basic usage

OpenFec.configure { |c| c.api_key = 'your-api-key' }
results = OpenFec.candidates.search(name: 'Pelosi')
totals  = OpenFec.candidate_totals.for_cycle('H8CA05035', 2024)

See Also:

Defined Under Namespace

Modules: Resources Classes: BadRequestError, Client, ClientError, Configuration, ConfigurationError, ConnectionError, Error, ForbiddenError, NotFoundError, RateLimitError, Response, ServerError, UnauthorizedError, UnprocessableEntityError

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.candidate_totalsOpenFec::Resources::CandidateTotals



73
74
75
# File 'lib/open_fec.rb', line 73

def candidate_totals
  Resources::CandidateTotals.new(client)
end

.candidatesOpenFec::Resources::Candidates



68
69
70
# File 'lib/open_fec.rb', line 68

def candidates
  Resources::Candidates.new(client)
end

.clientOpenFec::Client

Returns the shared API client instance. Thread-safe via Mutex.

Returns:



61
62
63
# File 'lib/open_fec.rb', line 61

def client
  @mutex.synchronize { @client ||= Client.new(@configuration || Configuration.new) }
end

.committeesOpenFec::Resources::Committees



78
79
80
# File 'lib/open_fec.rb', line 78

def committees
  Resources::Committees.new(client)
end

.configurationOpenFec::Configuration

Returns the current configuration instance. Thread-safe via Mutex.



34
35
36
# File 'lib/open_fec.rb', line 34

def configuration
  @mutex.synchronize { @configuration ||= Configuration.new }
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Yields the configuration instance for modification.

Yield Parameters:



42
43
44
# File 'lib/open_fec.rb', line 42

def configure
  @mutex.synchronize { yield(@configuration ||= Configuration.new) }
end

.contribution_aggregatesOpenFec::Resources::ContributionAggregates



88
89
90
# File 'lib/open_fec.rb', line 88

def contribution_aggregates
  Resources::ContributionAggregates.new(client)
end

.contributionsOpenFec::Resources::Contributions



83
84
85
# File 'lib/open_fec.rb', line 83

def contributions
  Resources::Contributions.new(client)
end

.disbursementsOpenFec::Resources::Disbursements



93
94
95
# File 'lib/open_fec.rb', line 93

def disbursements
  Resources::Disbursements.new(client)
end

.electionsOpenFec::Resources::Elections



98
99
100
# File 'lib/open_fec.rb', line 98

def elections
  Resources::Elections.new(client)
end

.independent_expendituresOpenFec::Resources::IndependentExpenditures



103
104
105
# File 'lib/open_fec.rb', line 103

def independent_expenditures
  Resources::IndependentExpenditures.new(client)
end

.reset!void

This method returns an undefined value.

Resets configuration and client to defaults. Thread-safe via Mutex.



50
51
52
53
54
55
# File 'lib/open_fec.rb', line 50

def reset!
  @mutex.synchronize do
    @configuration = Configuration.new
    @client = nil
  end
end