Module: Agreements
- Defined in:
- lib/agreements.rb,
lib/agreements/engine.rb,
lib/agreements/errors.rb,
lib/agreements/version.rb,
lib/agreements/identity.rb,
lib/agreements/recorder.rb,
lib/agreements/enforcement.rb,
app/models/agreements/version.rb,
app/models/agreements/acceptance.rb,
app/models/agreements/application_record.rb,
lib/generators/agreements/migration_helpers.rb,
lib/generators/agreements/install/install_generator.rb
Defined Under Namespace
Modules: Enforcement, Generators, Identity
Classes: Acceptance, ApplicationRecord, Engine, Error, InvalidIdentity, Version, VersionNotCurrent
Constant Summary
collapse
- VERSION =
"0.2.0"
Class Method Summary
collapse
Class Method Details
.accept!(agreement_key, version_id:, subject:, actor:, authority:, acceptance_statement:, locale:) ⇒ Object
Explicit keywords keep this evidence boundary distinct from browser params.
rubocop:disable-next Metrics/ParameterLists
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/agreements.rb', line 28
def accept!(agreement_key, version_id:, subject:, actor:, authority:, acceptance_statement:, locale:)
version = current_version(agreement_key)
raise VersionNotCurrent, version unless version&.id.to_s == version_id.to_s
Recorder.call(
agreement_version: version,
evidence: {
subject: subject,
actor: actor,
authority: authority,
acceptance_statement: acceptance_statement,
locale: locale
}
)
end
|
.current_version(agreement_key) ⇒ Object
16
17
18
|
# File 'lib/agreements.rb', line 16
def current_version(agreement_key)
Version.current_for(agreement_key)
end
|
.identity_key(identity) ⇒ Object
44
45
46
|
# File 'lib/agreements.rb', line 44
def identity_key(identity)
Identity.key(identity)
end
|
.pending_version(agreement_key, subject:) ⇒ Object
20
21
22
23
24
|
# File 'lib/agreements.rb', line 20
def pending_version(agreement_key, subject:)
current_version(agreement_key).then do |version|
version unless version.nil? || version.accepted_by?(subject)
end
end
|
.table_name_prefix ⇒ Object
11
12
13
|
# File 'lib/agreements.rb', line 11
def self.table_name_prefix
"agreements_"
end
|