Class: RailsParser::Parsers::Rails::ApplicationConfigParser
- Inherits:
-
SexpProcessor
- Object
- SexpProcessor
- RailsParser::Parsers::Rails::ApplicationConfigParser
- Defined in:
- lib/rails_parser/parsers/rails/application_config_parser.rb
Overview
Gemfile Parser
The class inspects an application.rb config file and extracts the options
It works like this: parser = ApplicationConfigParser.new parser.parse(“/path/to/application.rb”) parser.application_name #=> “Foobar”
Instance Attribute Summary collapse
-
#application_name ⇒ Object
readonly
Returns the value of attribute application_name.
-
#config_options ⇒ Object
readonly
Returns the value of attribute config_options.
Instance Method Summary collapse
-
#initialize ⇒ ApplicationConfigParser
constructor
A new instance of ApplicationConfigParser.
- #parse(filepath) ⇒ Object
- #process_class(exp) ⇒ Object
- #process_module(exp) ⇒ Object
Constructor Details
#initialize ⇒ ApplicationConfigParser
Returns a new instance of ApplicationConfigParser.
18 19 20 21 |
# File 'lib/rails_parser/parsers/rails/application_config_parser.rb', line 18 def initialize super self.auto_shift_type = true end |
Instance Attribute Details
#application_name ⇒ Object (readonly)
Returns the value of attribute application_name.
15 16 17 |
# File 'lib/rails_parser/parsers/rails/application_config_parser.rb', line 15 def application_name @application_name end |
#config_options ⇒ Object (readonly)
Returns the value of attribute config_options.
16 17 18 |
# File 'lib/rails_parser/parsers/rails/application_config_parser.rb', line 16 def @config_options end |
Instance Method Details
#parse(filepath) ⇒ Object
23 24 25 26 27 |
# File 'lib/rails_parser/parsers/rails/application_config_parser.rb', line 23 def parse(filepath) content = File.read(filepath) sexp = RubyParser.new.process(content) process(sexp) end |
#process_class(exp) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/rails_parser/parsers/rails/application_config_parser.rb', line 36 def process_class(exp) class_name = exp.shift block_exp = exp.pop parent_class = exp.shift if parent_class && parent_class[1][1] == :Rails && parent_class[2] == :Application parser = ConfigParser.new parser.process(block_exp) @config_options = parser. end exp end |
#process_module(exp) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/rails_parser/parsers/rails/application_config_parser.rb', line 29 def process_module(exp) @application_name = exp.shift.to_s module_exp = exp.shift process(module_exp) exp end |