Class: Brainstem::ApiDocs::Builder
- Inherits:
-
Object
- Object
- Brainstem::ApiDocs::Builder
- Includes:
- Concerns::Optional
- Defined in:
- lib/brainstem/api_docs/builder.rb
Instance Attribute Summary collapse
-
#args_for_atlas ⇒ Object
Arguments to be passed to the atlas on creation.
-
#args_for_introspector ⇒ Object
Arguments to be passed to the introspector on creation.
-
#atlas ⇒ Object
Holds a reference to the constructed atlas.
-
#atlas_method ⇒ Proc
A proc of arity 1..2 which takes an introspector and optional options, and which returns a new Atlas.
-
#introspector ⇒ Object
Holds a reference to the constructed introspector.
-
#introspector_method ⇒ Proc
A method which returns the introspector which extracts information about the Brainstem-powered API from the host application.
Instance Method Summary collapse
-
#build_atlas! ⇒ Object
Builds an atlas.
-
#build_introspector! ⇒ Object
Builds an introspector.
-
#initialize(options = {}) ⇒ Builder
constructor
A new instance of Builder.
- #valid_options ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Builder
Returns a new instance of Builder.
49 50 51 52 53 54 |
# File 'lib/brainstem/api_docs/builder.rb', line 49 def initialize( = {}) super build_introspector! build_atlas! end |
Instance Attribute Details
#args_for_atlas ⇒ Object
Arguments to be passed to the atlas on creation.
96 97 98 |
# File 'lib/brainstem/api_docs/builder.rb', line 96 def args_for_atlas @args_for_atlas ||= {} end |
#args_for_introspector ⇒ Object
Arguments to be passed to the introspector on creation.
79 80 81 |
# File 'lib/brainstem/api_docs/builder.rb', line 79 def args_for_introspector @args_for_introspector ||= {} end |
#atlas ⇒ Object
Holds a reference to the constructed atlas.
164 165 166 |
# File 'lib/brainstem/api_docs/builder.rb', line 164 def atlas @atlas end |
#atlas_method ⇒ Proc
A proc of arity 1..2 which takes an introspector and optional options, and which returns a new Atlas.
Passed an introspector.
148 149 150 |
# File 'lib/brainstem/api_docs/builder.rb', line 148 def atlas_method @atlas_method ||= Atlas.method(:new) end |
#introspector ⇒ Object
Holds a reference to the constructed introspector.
137 138 139 |
# File 'lib/brainstem/api_docs/builder.rb', line 137 def introspector @introspector end |
#introspector_method ⇒ Proc
A method which returns the introspector which extracts information about the Brainstem-powered API from the host application.
Stored as a proc because it’s impossible to inject an instantiated object and have it receive args from this class. This is less important in this specific circumstance but is kept for uniformity with atlas_method
.
120 121 122 123 |
# File 'lib/brainstem/api_docs/builder.rb', line 120 def introspector_method @introspector_method ||= Introspectors::RailsIntrospector.method(:with_loaded_environment) end |
Instance Method Details
#build_atlas! ⇒ Object
Builds an atlas.
68 69 70 |
# File 'lib/brainstem/api_docs/builder.rb', line 68 def build_atlas! self.atlas = atlas_method.call(introspector, args_for_atlas) end |
#build_introspector! ⇒ Object
Builds an introspector.
60 61 62 |
# File 'lib/brainstem/api_docs/builder.rb', line 60 def build_introspector! self.introspector = introspector_method.call(args_for_introspector) end |
#valid_options ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/brainstem/api_docs/builder.rb', line 20 def [ :introspector_method, :atlas_method, :args_for_introspector, :args_for_atlas ] end |