Module: Anvil

Defined in:
lib/anvil.rb,
lib/anvil/client.rb,
lib/anvil/errors.rb,
lib/anvil/version.rb,
lib/anvil/response.rb,
lib/anvil/env_loader.rb,
lib/anvil/rate_limiter.rb,
lib/anvil/configuration.rb,
lib/anvil/resources/pdf.rb,
lib/anvil/resources/base.rb,
lib/anvil/resources/webform.rb,
lib/anvil/resources/webhook.rb,
lib/anvil/resources/workflow.rb,
lib/anvil/resources/signature.rb

Defined Under Namespace

Modules: Resources Classes: APIError, AuthenticationError, Client, Configuration, ConfigurationError, ConnectionError, EnvLoader, Error, FileError, FileNotFoundError, FileTooLargeError, GraphQLError, NetworkError, NotFoundError, PDF, RateLimitError, RateLimiter, Response, ServerError, Signature, SignatureSigner, TimeoutError, ValidationError, Webform, Webhook, WebhookError, WebhookVerificationError, Workflow

Constant Summary collapse

VERSION =
'0.2.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



24
25
26
# File 'lib/anvil.rb', line 24

def configuration
  @configuration
end

Class Method Details

.api_keyObject



41
42
43
# File 'lib/anvil.rb', line 41

def api_key
  configuration&.api_key || ENV.fetch('ANVIL_API_KEY', nil)
end

.api_key=(key) ⇒ Object

Convenience methods for quick configuration



37
38
39
# File 'lib/anvil.rb', line 37

def api_key=(key)
  configure { |config| config.api_key = key }
end

.configure {|configuration| ... } ⇒ Object

Yields:



26
27
28
29
# File 'lib/anvil.rb', line 26

def configure
  self.configuration ||= Configuration.new
  yield(configuration) if block_given?
end

.development?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/anvil.rb', line 53

def development?
  environment == :development
end

.environmentObject



49
50
51
# File 'lib/anvil.rb', line 49

def environment
  configuration&.environment || :production
end

.environment=(env) ⇒ Object



45
46
47
# File 'lib/anvil.rb', line 45

def environment=(env)
  configure { |config| config.environment = env }
end

.mutation(mutation:, variables: {}) ⇒ Hash

Execute a GraphQL mutation

Parameters:

  • mutation (String)

    The GraphQL mutation string

  • variables (Hash) (defaults to: {})

    Variables to pass to the mutation

Returns:

  • (Hash)

    The mutation result data



75
76
77
# File 'lib/anvil.rb', line 75

def mutation(mutation:, variables: {})
  default_client.mutation(mutation: mutation, variables: variables)
end

.production?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/anvil.rb', line 57

def production?
  environment == :production
end

.query(query:, variables: {}) ⇒ Hash

Execute a GraphQL query

Parameters:

  • query (String)

    The GraphQL query string

  • variables (Hash) (defaults to: {})

    Variables to pass to the query

Returns:

  • (Hash)

    The query result data



66
67
68
# File 'lib/anvil.rb', line 66

def query(query:, variables: {})
  default_client.query(query: query, variables: variables)
end

.reset_configuration!Object



31
32
33
34
# File 'lib/anvil.rb', line 31

def reset_configuration!
  self.configuration = Configuration.new
  @default_client = nil
end