Module: Tengine::Core::DslEvaluator

Included in:
DslLoader
Defined in:
lib/tengine/core/dsl_evaluator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#configObject

Returns the value of attribute config.



7
8
9
# File 'lib/tengine/core/dsl_evaluator.rb', line 7

def config
  @config
end

Instance Method Details

#__evaluate__Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/tengine/core/dsl_evaluator.rb', line 9

def __evaluate__
  __setup_core_ext__
  begin
    Tengine.plugins.notify(self, :__evaluate__) do
      ActiveSupport::Dependencies.mechanism = config.tengined.cache_drivers ? :require : :load
      config.dsl_dir_path.tap do |dsl_dir_path|
        $LOAD_PATH.unshift(dsl_dir_path) unless $LOAD_PATH.include?(dsl_dir_path)
        ActiveSupport::Dependencies.autoload_paths = [dsl_dir_path]
      end
      config.dsl_file_paths.each do |f|
        Tengine::Core.stdout_logger.debug("now loading #{f}")
        # self.instance_eval(File.read(f), f)
        # require(f)
        if config.tengined.cache_drivers
          load(f)
        else
          begin
            require_dependency( config.relative_path_from_dsl_dir(f) )
          rescue NameError => e
            # ロードするパスのディレクトリ名をcamelizeした際に不正なモジュール名(例えば先頭が数字)
            # だと失敗してしまうのでその場合はloadし直す
            if e.message =~ /wrong constant name/
              load(f)
            else
              raise
            end
          end
        end
      end
    end
  ensure
    __teardown_core_ext__
  end
end

#__safety_driver__(driver) ⇒ Object



54
55
56
57
58
59
60
61
62
63
# File 'lib/tengine/core/dsl_evaluator.rb', line 54

def __safety_driver__(driver)
  @__driver__ = driver
  @__session__ = driver.session
  begin
    yield if block_given?
  ensure
    @__driver__ = nil
    @__session__ = nil
  end
end

#__safety_event__(event) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/tengine/core/dsl_evaluator.rb', line 44

def __safety_event__(event)
  @__event__ = event
  begin
    yield if block_given?
  ensure
    @__event__ = nil
    @__event_wrapper__ = nil
  end
end