Class: Jax::Application

Inherits:
Engine
  • Object
show all
Defined in:
lib/jax/application.rb,
lib/jax/application/configurable.rb

Defined Under Namespace

Modules: Configurable Classes: Builtin, Configuration, Railties

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Engine

find_root_with_flag

Class Method Details

.configure(&block) ⇒ Object



10
11
12
# File 'lib/jax/application.rb', line 10

def configure(&block)
  class_eval(&block)
end

.inherited(base) ⇒ Object



14
15
16
17
18
19
# File 'lib/jax/application.rb', line 14

def inherited(base)
  raise "You cannot have more than one Jax::Application" if Jax.application
  super

  Jax.application = base.instance
end

.initialize!Object



33
34
35
36
37
38
39
40
# File 'lib/jax/application.rb', line 33

def initialize!
  # return silently because we may have to call initialize automatically.
  # Jax prior to v1.1.0 didn't call #initialize! during boot.
  return self if @initialized
  @initialized = true
  run_initializers(self)
  self
end

.instanceObject



21
22
23
# File 'lib/jax/application.rb', line 21

def instance
  @@instance ||= new
end

.respond_to?(*args) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/jax/application.rb', line 29

def respond_to?(*args)
  super || instance.respond_to?(*args)
end

.routesObject



25
26
27
# File 'lib/jax/application.rb', line 25

def routes
  Jax.application.config.routes
end

Instance Method Details

#asset_pathsObject



116
117
118
119
120
121
122
# File 'lib/jax/application.rb', line 116

def asset_paths
  if !@asset_paths
    @asset_paths = []
    self.class.initialize!
  end
  @asset_paths
end

#detect_shaders(paths) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/jax/application.rb', line 55

def detect_shaders(paths)
  for path in paths
    shader_paths = Dir[File.join(path, "*/{vertex,fragment}.ejs")].collect { |d| File.dirname(d) }.uniq
    shader_paths.each do |shader_path|
      shaders.push Jax::Shader.from(shader_path)
    end
  end
end

#initializersObject



136
137
138
139
140
141
142
143
144
145
# File 'lib/jax/application.rb', line 136

def initializers
  # jax doesn't have a bootstrapper or initializer yet, but I think these are good ideas
  # so I'm leaving this here as a sort of reminder for how to do it.
  # initializers = Bootstrap.initializers_for(self)
  initializers = nil
  railties.all { |r| initializers = initializers ? initializers + r.initializers : r.initializers }
  initializers = initializers ? initializers + super : super
  # initializers += Finisher.initializers_for(self)
  initializers
end

#javascript_load_pathsObject



76
77
78
79
80
81
82
# File 'lib/jax/application.rb', line 76

def javascript_load_paths
  if !@javascript_load_paths
    @javascript_load_paths = []
    @javascript_load_paths = javascript_source_roots + @javascript_load_paths
  end
  @javascript_load_paths
end

#javascript_source_rootsObject



108
109
110
111
112
113
114
# File 'lib/jax/application.rb', line 108

def javascript_source_roots
  if !@javascript_source_roots
    @javascript_source_roots = []
    self.class.initialize!
  end
  @javascript_source_roots
end

#javascript_sourcesObject



84
85
86
87
88
89
90
# File 'lib/jax/application.rb', line 84

def javascript_sources
  if !@javascript_sources
    @javascript_sources = []
    self.class.initialize!
  end
  @javascript_sources
end

#railtiesObject



51
52
53
# File 'lib/jax/application.rb', line 51

def railties
  @railties ||= Jax::Application::Railties.new(config)
end

#resource_pathsObject



92
93
94
95
96
97
98
# File 'lib/jax/application.rb', line 92

def resource_paths
  if !@resource_files
    @resource_files = []
    self.class.initialize!
  end
  @resource_files
end

#resourcesObject



100
101
102
103
104
105
106
# File 'lib/jax/application.rb', line 100

def resources
  if !@resources
    @resources = Jax::ResourceCompiler.new
    self.class.initialize!
  end
  @resources
end

#shader_load_pathsObject



68
69
70
71
72
73
74
# File 'lib/jax/application.rb', line 68

def shader_load_paths
  if !@shader_load_paths
    @shader_load_paths = []
    self.class.initialize!
  end
  @shader_load_paths
end

#shadersObject



124
125
126
127
128
129
130
131
132
133
134
# File 'lib/jax/application.rb', line 124

def shaders
  if !@shaders
    @shaders = []
    def shaders.find(name)
      select { |s| s.name == name }.first
    end

    self.class.initialize!
  end
  @shaders
end