Class: Textus::Application::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/textus/application/context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(store:, role:, correlation_id: nil, clock: Time, dry_run: false) ⇒ Context

Returns a new instance of Context.



8
9
10
11
12
13
14
15
# File 'lib/textus/application/context.rb', line 8

def initialize(store:, role:, correlation_id: nil, clock: Time, dry_run: false)
  @store          = store
  @role           = role.to_s
  @correlation_id = correlation_id || SecureRandom.uuid
  @clock          = clock
  @dry_run        = dry_run
  @now            = nil
end

Instance Attribute Details

#correlation_idObject (readonly)

Returns the value of attribute correlation_id.



6
7
8
# File 'lib/textus/application/context.rb', line 6

def correlation_id
  @correlation_id
end

#roleObject (readonly)

Returns the value of attribute role.



6
7
8
# File 'lib/textus/application/context.rb', line 6

def role
  @role
end

#storeObject (readonly)

Returns the value of attribute store.



6
7
8
# File 'lib/textus/application/context.rb', line 6

def store
  @store
end

Instance Method Details

#can_read?(zone) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/textus/application/context.rb', line 29

def can_read?(zone)
  store.manifest.permission_for(zone.to_s).allows_read?(role)
end

#can_write?(zone) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/textus/application/context.rb', line 25

def can_write?(zone)
  store.manifest.permission_for(zone.to_s).allows_write?(role)
end

#dry_run?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/textus/application/context.rb', line 21

def dry_run?
  @dry_run
end

#nowObject



17
18
19
# File 'lib/textus/application/context.rb', line 17

def now
  @now ||= @clock.now
end

#with_role(new_role) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/textus/application/context.rb', line 33

def with_role(new_role)
  self.class.new(
    store: @store,
    role: new_role,
    correlation_id: @correlation_id,
    clock: @clock,
    dry_run: @dry_run,
  )
end