Class: Fig::Statement
- Inherits:
-
Object
- Object
- Fig::Statement
- Defined in:
- lib/fig/statement.rb,
lib/fig/statement/asset.rb,
lib/fig/statement/archive.rb,
lib/fig/statement/resource.rb,
lib/fig/statement/environment_variable.rb
Overview
A statement within a package definition file (package.fig).
Direct Known Subclasses
Archive, Command, Configuration, GrammarVersion, Include, IncludeFile, Override, Path, Resource, Retrieve, Set, SyntheticRawText
Defined Under Namespace
Modules: Asset, EnvironmentVariable Classes: Archive, Command, Configuration, GrammarVersion, Include, IncludeFile, Override, Path, Resource, Retrieve, Set, SyntheticRawText
Constant Summary collapse
- ENVIRONMENT_VARIABLE_NAME_REGEX =
%r< \A \w+ \z >x
Instance Attribute Summary collapse
-
#column ⇒ Object
readonly
Returns the value of attribute column.
-
#line ⇒ Object
readonly
Returns the value of attribute line.
-
#source_description ⇒ Object
readonly
Returns the value of attribute source_description.
Class Method Summary collapse
Instance Method Summary collapse
- #deparse_as_version(deparser) ⇒ Object
-
#initialize(line_column, source_description) ⇒ Statement
constructor
This mess of getting these as a single array necessary is due to limitations of the “*” array splat operator in ruby v1.8.
- #is_asset? ⇒ Boolean
- #is_environment_variable? ⇒ Boolean
-
#minimum_grammar_for_emitting_input ⇒ Object
Returns a two element array containing the version and an explanation of why the version is necessary if the version is greater than 0.
-
#minimum_grammar_for_publishing ⇒ Object
Returns a two element array containing the version and an explanation of why the version is necessary if the version is greater than 0.
-
#position_string ⇒ Object
Returns a representation of the position of this statement, if the position is known, empty string otherwise.
-
#statement_type ⇒ Object
A name for this kind of Statement, usually a keyword for this statement as it appears in package definition files.
- #urls ⇒ Object
-
#walk_statements(&block) ⇒ Object
Block will receive a Statement.
Constructor Details
#initialize(line_column, source_description) ⇒ Statement
This mess of getting these as a single array necessary is due to limitations of the “*” array splat operator in ruby v1.8.
31 32 33 34 35 36 37 |
# File 'lib/fig/statement.rb', line 31 def initialize(line_column, source_description) if line_column @line, @column = *line_column end @source_description = source_description end |
Instance Attribute Details
#column ⇒ Object (readonly)
Returns the value of attribute column.
27 28 29 |
# File 'lib/fig/statement.rb', line 27 def column @column end |
#line ⇒ Object (readonly)
Returns the value of attribute line.
27 28 29 |
# File 'lib/fig/statement.rb', line 27 def line @line end |
#source_description ⇒ Object (readonly)
Returns the value of attribute source_description.
27 28 29 |
# File 'lib/fig/statement.rb', line 27 def source_description @source_description end |
Class Method Details
.position_description(line, column, source_description) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fig/statement.rb', line 11 def self.position_description(line, column, source_description) if not line or not column return '' if not source_description return " (#{source_description})" end description = " (line #{line}, column #{column}" if source_description description << ", #{source_description}" end description << ')' return description end |
Instance Method Details
#deparse_as_version(deparser) ⇒ Object
52 53 54 55 56 |
# File 'lib/fig/statement.rb', line 52 def deparse_as_version(deparser) raise NotImplementedError.new( "#{__callee__}() not implemented on #{self.class}." ) end |
#is_asset? ⇒ Boolean
78 79 80 |
# File 'lib/fig/statement.rb', line 78 def is_asset?() return false end |
#is_environment_variable? ⇒ Boolean
82 83 84 |
# File 'lib/fig/statement.rb', line 82 def is_environment_variable?() return false end |
#minimum_grammar_for_emitting_input ⇒ Object
Returns a two element array containing the version and an explanation of why the version is necessary if the version is greater than 0.
60 61 62 63 64 |
# File 'lib/fig/statement.rb', line 60 def minimum_grammar_for_emitting_input() raise NotImplementedError.new( "#{__callee__}() not implemented on #{self.class}." ) end |
#minimum_grammar_for_publishing ⇒ Object
Returns a two element array containing the version and an explanation of why the version is necessary if the version is greater than 0.
68 69 70 71 72 |
# File 'lib/fig/statement.rb', line 68 def minimum_grammar_for_publishing() raise NotImplementedError.new( "#{__callee__}() not implemented on #{self.class}." ) end |
#position_string ⇒ Object
Returns a representation of the position of this statement, if the position is known, empty string otherwise. This is written with the idea that you can do something like “puts %Q<Found a statement%Fig::Statement.statementstatement.position_string().>” and get nice looking output regardless of whether the position is actually known or not.
91 92 93 94 95 |
# File 'lib/fig/statement.rb', line 91 def position_string return Fig::Statement.position_description( @line, @column, @source_description ) end |
#statement_type ⇒ Object
A name for this kind of Statement, usually a keyword for this statement as it appears in package definition files.
41 42 43 44 45 |
# File 'lib/fig/statement.rb', line 41 def statement_type() raise NotImplementedError.new( "#{__callee__}() not implemented on #{self.class}." ) end |
#urls ⇒ Object
74 75 76 |
# File 'lib/fig/statement.rb', line 74 def urls() return [] end |
#walk_statements(&block) ⇒ Object
Block will receive a Statement.
48 49 50 |
# File 'lib/fig/statement.rb', line 48 def walk_statements(&block) return end |