Class: Pennyworth::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/pennyworth/processor.rb

Overview

Processes all steps required to render an Alfred Script Filter response.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(steps) ⇒ Processor

Returns a new instance of Processor.



56
57
58
# File 'lib/pennyworth/processor.rb', line 56

def initialize steps
  @steps = steps
end

Class Method Details

.for_encodingsObject



6
7
8
9
10
# File 'lib/pennyworth/processor.rb', line 6

def self.for_encodings
  new loader: Loaders::Encoding.new,
      presenter: Presenters::Encoding,
      serializer: Serializers::Encoding
end

.for_gemsObject



12
13
14
# File 'lib/pennyworth/processor.rb', line 12

def self.for_gems
  new loader: Loaders::Gem.new, presenter: Presenters::Gem, serializer: Serializers::Project
end

.for_http_statusesObject



16
17
18
19
20
# File 'lib/pennyworth/processor.rb', line 16

def self.for_http_statuses
  new loader: Loaders::HTTPStatus.new,
      presenter: Presenters::HTTPStatus,
      serializer: Serializers::HTTPStatus
end

.for_projectsObject



22
23
24
25
26
# File 'lib/pennyworth/processor.rb', line 22

def self.for_projects
  new loader: Loaders::GitHub.new,
      presenter: Presenters::Repository,
      serializer: Serializers::Project
end

.for_standard_errorsObject



34
35
36
37
38
# File 'lib/pennyworth/processor.rb', line 34

def self.for_standard_errors
  new loader: Loaders::StandardError.new,
      presenter: Presenters::StandardError,
      serializer: Serializers::StandardError
end

.for_standard_gemsObject



28
29
30
31
32
# File 'lib/pennyworth/processor.rb', line 28

def self.for_standard_gems
  new loader: Loaders::StandardGem.new,
      presenter: Presenters::StandardGem,
      serializer: Serializers::Project
end

.for_system_errorsObject



40
41
42
43
44
# File 'lib/pennyworth/processor.rb', line 40

def self.for_system_errors
  new loader: Loaders::System::Error.new,
      presenter: Presenters::System::Error,
      serializer: Serializers::System::Error
end

.for_system_signalsObject



46
47
48
49
50
# File 'lib/pennyworth/processor.rb', line 46

def self.for_system_signals
  new loader: Loaders::System::Signal.new,
      presenter: Presenters::System::Signal,
      serializer: Serializers::System::Signal
end

.for_textObject



52
53
54
# File 'lib/pennyworth/processor.rb', line 52

def self.for_text
  new loader: Loaders::Text.new, presenter: Presenters::Text, serializer: Serializers::Text
end

Instance Method Details

#call(content = nil) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/pennyworth/processor.rb', line 60

def call content = nil
  loader.call(content)
        .map { |record| presenter.new record }
        .sort_by(&:label)
        .map { |record| serializer.new record }
        .then { |records| {items: records.map(&:to_h)} }
end