Module: SproutCore
- Defined in:
- lib/sproutcore.rb
Constant Summary collapse
- LIBPATH =
:stopdoc:
::File.(::File.dirname(__FILE__)) + ::File::SEPARATOR
- PATH =
::File.dirname(LIBPATH) + ::File::SEPARATOR
- VERSION_PATH =
PATH / 'VERSION.yml'
- VERSION_INFO =
YAML.load_file(VERSION_PATH)
- VERSION =
[VERSION_INFO[:major], VERSION_INFO[:minor], VERSION_INFO[:patch]].join('.')
Instance Attribute Summary collapse
-
#logger ⇒ Object
writeonly
Sets the attribute logger.
Class Method Summary collapse
-
.build_mode ⇒ Object
Returns the current build mode.
- .build_mode=(new_mode) ⇒ Object
-
.builtin_project ⇒ Object
Returns a project instance representing the builtin library.
-
.env ⇒ Object
Global variable that can store specific environmental settings.
- .env=(hash) ⇒ Object
-
.libpath(*args) ⇒ Object
Returns the library path for the module.
-
.load_project(path = nil, opts = {}) ⇒ Object
Attempts to load a project for the current working directory or from the passed directory location.
-
.logger ⇒ Object
Returns a standard logger object.
-
.path(*args) ⇒ Object
Returns the lpath for the module.
-
.project ⇒ Object
Returns the current project, if defined.
- .project=(project) ⇒ Object
-
.require_all_libs_relative_to(fname, dir = nil) ⇒ Object
Utility method used to rquire all files ending in .rb that lie in the directory below this file that has the same name as the filename passed in.
-
.version ⇒ Object
Returns the version string for the library.
Instance Attribute Details
#logger=(value) ⇒ Object (writeonly)
Sets the attribute logger
98 99 100 |
# File 'lib/sproutcore.rb', line 98 def logger=(value) @logger = value end |
Class Method Details
.build_mode ⇒ Object
Returns the current build mode. The build mode is determined based on the current environment build_mode settings. Note that for backwards compatibility reasons, :development and :debug are treated as being identical.
104 105 106 107 108 109 |
# File 'lib/sproutcore.rb', line 104 def self.build_mode ret = env.build_mode || :production ret = ret.to_sym unless ret.nil? ret = :debug if ret == :development # backwards compatibility ret end |
.build_mode=(new_mode) ⇒ Object
111 112 113 114 115 116 |
# File 'lib/sproutcore.rb', line 111 def self.build_mode=(new_mode) new_mode = new_mode.to_sym new_mode = :debug if new_mode == :development env.build_mode = new_mode self.build_mode end |
.builtin_project ⇒ Object
Returns a project instance representing the builtin library
119 120 121 |
# File 'lib/sproutcore.rb', line 119 def self.builtin_project @builtin_project ||= SC::Project.new(PATH) end |
.env ⇒ Object
Global variable that can store specific environmental settings. This is where you will find the build mode among other things set by sc-build.
71 72 73 |
# File 'lib/sproutcore.rb', line 71 def self.env @env ||= HashStruct.new(:build_mode => :debug, :buildfile_names => %w(Buildfile sc-config sc-config.rb)) end |
.env=(hash) ⇒ Object
74 |
# File 'lib/sproutcore.rb', line 74 def self.env=(hash); @env = HashStruct.new(hash); end |
.libpath(*args) ⇒ Object
Returns the library path for the module. If any arguments are given, they will be joined to the end of the libray path using File.join
.
43 44 45 |
# File 'lib/sproutcore.rb', line 43 def self.libpath( *args ) args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten) end |
.load_project(path = nil, opts = {}) ⇒ Object
Attempts to load a project for the current working directory or from the passed directory location. Returns nil if no project could be detected. This is just a shorthand for creating a Project object. It is useful when using the build tools as a Ruby library
132 133 134 135 136 137 138 139 |
# File 'lib/sproutcore.rb', line 132 def self.load_project(path = nil, opts = {}) path = File.(path.nil? ? Dir.pwd : path) if FalseClass === opts[:discover] SC::Project.load path, :parent => SC.builtin_project else # attempt to autodiscover unless disabled SC::Project.load_nearest_project path, :parent => SC.builtin_project end end |
.logger ⇒ Object
Returns a standard logger object. You can replace this with your own logger to redirect all SproutCore log output if needed. Otherwise, a logger will bre created based on your env.log_level and env.logfile options.
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/sproutcore.rb', line 80 def self.logger return @logger unless @logger.nil? if env.logfile @logger = Logger.new env.logfile, 10, 1024000 else @logger = Logger.new $stderr # if we are logging to the screen, no reason to use a std loggin fmt @logger.formatter = lambda do |severity, time, progname, msg| [severity, '~', msg.to_s, "\n"].join(' ') end end @logger.level = (env.log_level == :debug) ? Logger::DEBUG : ((env.log_level == :info) ? Logger::INFO : Logger::WARN) return @logger end |
.path(*args) ⇒ Object
Returns the lpath for the module. If any arguments are given, they will be joined to the end of the path using File.join
.
51 52 53 |
# File 'lib/sproutcore.rb', line 51 def self.path( *args ) args.empty? ? PATH : ::File.join(PATH, args.flatten) end |
.project ⇒ Object
Returns the current project, if defined. This is normally only set when you start sc-server in interactive mode.
125 |
# File 'lib/sproutcore.rb', line 125 def self.project; @project; end |
.project=(project) ⇒ Object
126 |
# File 'lib/sproutcore.rb', line 126 def self.project=(project); @project = project; end |
.require_all_libs_relative_to(fname, dir = nil) ⇒ Object
Utility method used to rquire all files ending in .rb that lie in the directory below this file that has the same name as the filename passed in. Optionally, a specific directory name can be passed in such that the filename does not have to be equivalent to the directory.
60 61 62 63 64 65 66 |
# File 'lib/sproutcore.rb', line 60 def self.require_all_libs_relative_to( fname, dir = nil ) dir ||= ::File.basename(fname, '.*') search_me = ::File.( ::File.join(::File.dirname(fname), dir, '*.rb')) Dir.glob(search_me).sort.each {|rb| require rb} end |
.version ⇒ Object
Returns the version string for the library.
35 36 37 |
# File 'lib/sproutcore.rb', line 35 def self.version VERSION end |