Class: Gitlab::Ci::Config::Interpolation::Access
- Inherits:
-
Object
- Object
- Gitlab::Ci::Config::Interpolation::Access
- Defined in:
- lib/gitlab/ci/config/interpolation/access.rb
Constant Summary collapse
- MAX_ACCESS_OBJECTS =
5
- MAX_ACCESS_BYTESIZE =
1024
Instance Attribute Summary collapse
-
#content ⇒ Object
readonly
Returns the value of attribute content.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
Instance Method Summary collapse
-
#initialize(access, ctx) ⇒ Access
constructor
A new instance of Access.
- #objects ⇒ Object
- #valid? ⇒ Boolean
- #value ⇒ Object
Constructor Details
#initialize(access, ctx) ⇒ Access
Returns a new instance of Access.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gitlab/ci/config/interpolation/access.rb', line 13 def initialize(access, ctx) @content = access @ctx = ctx @errors = [] if objects.count <= 1 # rubocop:disable Style/IfUnlessModifier @errors.push('invalid interpolation access pattern') end if access.bytesize > MAX_ACCESS_BYTESIZE # rubocop:disable Style/IfUnlessModifier @errors.push('maximum interpolation expression size exceeded') end evaluate! if valid? end |
Instance Attribute Details
#content ⇒ Object (readonly)
Returns the value of attribute content.
8 9 10 |
# File 'lib/gitlab/ci/config/interpolation/access.rb', line 8 def content @content end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
8 9 10 |
# File 'lib/gitlab/ci/config/interpolation/access.rb', line 8 def errors @errors end |
Instance Method Details
#objects ⇒ Object
33 34 35 |
# File 'lib/gitlab/ci/config/interpolation/access.rb', line 33 def objects @objects ||= @content.split('.', MAX_ACCESS_OBJECTS) end |
#valid? ⇒ Boolean
29 30 31 |
# File 'lib/gitlab/ci/config/interpolation/access.rb', line 29 def valid? errors.none? end |
#value ⇒ Object
37 38 39 40 41 |
# File 'lib/gitlab/ci/config/interpolation/access.rb', line 37 def value raise ArgumentError, 'access path invalid' unless valid? @value end |