Module: Avrolution

Defined in:
lib/avrolution.rb,
lib/avrolution/railtie.rb,
lib/avrolution/version.rb,
lib/avrolution/configuration.rb,
lib/avrolution/rake/base_task.rb,
lib/avrolution/register_schemas.rb,
lib/avrolution/compatibility_break.rb,
lib/avrolution/compatibility_check.rb,
lib/avrolution/compatibility_breaks_file.rb,
lib/avrolution/rake/register_schemas_task.rb,
lib/generators/avrolution/install_generator.rb,
lib/avrolution/rake/check_compatibility_task.rb,
lib/avrolution/rake/add_compatibility_break_task.rb

Defined Under Namespace

Modules: CompatibilityBreaksFile, Rake Classes: CompatibilityBreak, CompatibilityCheck, InstallGenerator, PassthruLogger, Railtie, RegisterSchemas

Constant Summary collapse

VERSION =
'0.6.1'.freeze
COMPATIBILITY =
'compatibility'.freeze
DEPLOYMENT =
'deployment'.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.compatibility_breaks_fileObject



48
49
50
# File 'lib/avrolution/configuration.rb', line 48

def self.compatibility_breaks_file
  @compatibility_breaks_file ||= "#{root}/avro_compatibility_breaks.txt"
end

.compatibility_schema_registry_urlObject



52
53
54
# File 'lib/avrolution/configuration.rb', line 52

def self.compatibility_schema_registry_url
  fetch_url(COMPATIBILITY)
end

.deployment_schema_registry_urlObject



56
57
58
# File 'lib/avrolution/configuration.rb', line 56

def self.deployment_schema_registry_url
  fetch_url(DEPLOYMENT)
end

.loggerObject

Returns the value of attribute logger.



23
24
25
# File 'lib/avrolution/configuration.rb', line 23

def logger
  @logger
end

.rootObject



44
45
46
# File 'lib/avrolution/configuration.rb', line 44

def self.root
  @root || raise('root must be set')
end

Class Method Details

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Avrolution)

    the object that the method was called on



60
61
62
# File 'lib/avrolution/configuration.rb', line 60

def self.configure
  yield self
end

.fetch_url(label) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/avrolution/configuration.rb', line 25

def fetch_url(label)
  env_name = "#{label.upcase}_SCHEMA_REGISTRY_URL"
  ivar_name = "@#{env_name.downcase}"
  env_value = ENV[env_name]
  result = if env_value
             env_value
           elsif instance_variable_get(ivar_name)
             ivar_value = instance_variable_get(ivar_name)
             ivar_value = instance_variable_set(ivar_name, ivar_value.call) if ivar_value.is_a?(Proc)
             ivar_value
           end

  raise "#{env_name.downcase} must be set" if result.blank?
  result
end