Module: Pragma::Macro
- Defined in:
- lib/pragma/macro.rb,
lib/pragma/macro/model.rb,
lib/pragma/macro/policy.rb,
lib/pragma/macro/classes.rb,
lib/pragma/macro/ordering.rb,
lib/pragma/macro/decorator.rb,
lib/pragma/macro/filtering.rb,
lib/pragma/macro/pagination.rb,
lib/pragma/macro/contract/build.rb,
lib/pragma/macro/contract/persist.rb,
lib/pragma/macro/contract/validate.rb
Defined Under Namespace
Modules: Classes, Contract, Decorator, Filtering, Model, Ordering, Pagination, Policy
Classes: MissingSkillError
Class Method Summary
collapse
Class Method Details
.Classes ⇒ Object
5
6
7
8
|
# File 'lib/pragma/macro/classes.rb', line 5
def self.Classes
step = ->(input, options) { Classes.for(input, options) }
[step, name: 'classes']
end
|
.Decorator(name: :instance) ⇒ Object
5
6
7
8
|
# File 'lib/pragma/macro/decorator.rb', line 5
def self.Decorator(name: :instance)
step = ->(input, options) { Decorator.for(input, name, options) }
[step, name: "decorator.#{name}"]
end
|
.Filtering ⇒ Object
5
6
7
8
|
# File 'lib/pragma/macro/filtering.rb', line 5
def self.Filtering
step = ->(input, options) { Filtering.for(input, options) }
[step, name: 'filtering']
end
|
.Model(action = nil) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/pragma/macro/model.rb', line 7
def self.Model(action = nil)
step = lambda do |input, options|
klass = Macro.require_skill('Model', 'model.class', options)
Trailblazer::Operation::Pipetree::Step.new(
Trailblazer::Operation::Model.for(klass, action),
'model.class' => klass,
'model.action' => action
).call(input, options).tap do |result|
unless result
options['result.response'] = Pragma::Operation::Response::NotFound.new.decorate_with(
Pragma::Decorator::Error
)
end
end
end
[step, name: "model.#{action || 'build'}"]
end
|
.Ordering ⇒ Object
5
6
7
8
|
# File 'lib/pragma/macro/ordering.rb', line 5
def self.Ordering
step = ->(input, options) { Ordering.for(input, options) }
[step, name: 'ordering']
end
|
5
6
7
8
|
# File 'lib/pragma/macro/pagination.rb', line 5
def self.Pagination
step = ->(input, options) { Pagination.for(input, options) }
[step, name: 'pagination']
end
|
.Policy(name: :default, action: nil) ⇒ Object
5
6
7
8
|
# File 'lib/pragma/macro/policy.rb', line 5
def self.Policy(name: :default, action: nil)
step = ->(input, options) { Policy.for(input, name, options, action) }
[step, name: "policy.#{name}"]
end
|
.require_skill(macro, skill, options) ⇒ Object
Returns a skill or raises a #MissingSkillError.
17
18
19
|
# File 'lib/pragma/macro.rb', line 17
def require_skill(macro, skill, options)
options[skill] || fail(MissingSkillError.new(macro, skill))
end
|