Module: Ziya

Defined in:
lib/ziya.rb,
lib/ziya/utils/logger.rb,
lib/ziya/html_helpers/base.rb,
lib/ziya/yaml_helpers/base.rb,
lib/ziya/yaml_helpers/charts.rb

Defined Under Namespace

Modules: Charts, Gauges, HtmlHelpers, Maps, YamlHelpers Classes: Logger

Constant Summary collapse

LIBPATH =

:stopdoc:

::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
PATH =
::File.dirname(LIBPATH) + ::File::SEPARATOR

Class Method Summary collapse

Class Method Details

.configObject

ZiYa configuration



48
49
50
# File 'lib/ziya.rb', line 48

def self.config
  @config
end

.default_configurationObject



39
40
41
42
43
44
45
# File 'lib/ziya.rb', line 39

def self.default_configuration
  { 
    :themes_dir => File.join( File.dirname(__FILE__), %w[.. charts themes] ),
    :log_file   => $stdout,
    :log_level  => :info 
  }
end

.designs_dirObject

the gauges designs root directory location



68
69
70
# File 'lib/ziya.rb', line 68

def self.designs_dir
  config[:designs_dir]
end

.dumpObject

Debug



73
74
75
76
77
78
79
80
81
# File 'lib/ziya.rb', line 73

def self.dump #:nodoc:
  puts "" 
  puts "ZiYa Configuration Landscape"    
  config.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k| 
    key   = k.to_s.rjust(20)
    value = config[k].to_s.rjust(97,".")
    puts "#{key} : #{value}"
  end
end

.helpers_dirObject

directory location for ziya stylesheet custom helpers



53
54
55
# File 'lib/ziya.rb', line 53

def self.helpers_dir
  config[:helpers_dir]
end

.initialize(opts = {}) ⇒ Object

:startdoc:



7
8
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
# File 'lib/ziya.rb', line 7

def self.initialize( opts={} )
  if opts[:log_level] == :debug
    puts ">>> No logger specified. Using ZiYa default logger" unless opts[:logger]
    puts ">>> No themes_dir specified. Using ZiYa default themes" unless opts[:themes_dir]      
  end
  @config = default_configuration.merge( opts )
  @logger = opts[:logger] if opts[:logger]

  # Verify existence of themes, designs and helper dirs if any
  if themes_dir
    raise "Unable to find themes directory `#{themes_dir}" unless File.exists?( themes_dir )
  end

  if map_themes_dir
    raise "Unable to find map themes directory `#{map_themes_dir}" unless File.exists?( map_themes_dir )
  end

  if designs_dir
    raise "Unable to find designs directory `#{designs_dir}" unless File.exists?( designs_dir )
  end
  
  if helpers_dir
    raise "Unable to find helper directory `#{helpers_dir}" unless File.exists?( helpers_dir )
  end
  
  # Add the ziya/lib to the ruby path...
  $: << libpath
  Ziya.require_all_libs_relative_to __FILE__
  
  dump if config[:log_level] == :debug
end

.libpath(*args, &block) ⇒ 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.



102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/ziya.rb', line 102

def self.libpath( *args, &block )
  rv =  args.empty? ? LIBPATH : ::File.join(LIBPATH, args.flatten)
  if block
    begin
      $LOAD_PATH.unshift LIBPATH
      rv = block.call
    ensure
      $LOAD_PATH.shift
    end
  end
  return rv
end

.loggerObject

fetch the framework logger



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

def self.logger
  # get a hold of a logger.
  @logger ||= ::Ziya::Logger.new( { :log_file          => config[:log_file], 
                                    :logger_name       => "ZiYa",
                                    :log_level         => config[:log_level],
                                    :additive          => false } )
end

.map_themes_dirObject

the map themes root directory location



63
64
65
# File 'lib/ziya.rb', line 63

def self.map_themes_dir
  config[:map_themes_dir]
end

.path(*args, &block) ⇒ 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.



119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/ziya.rb', line 119

def self.path( *args, &block )
  rv = args.empty? ? PATH : ::File.join(PATH, args.flatten)
  if block
    begin
      $LOAD_PATH.unshift PATH
      rv = block.call
    ensure
      $LOAD_PATH.shift
    end
  end
  return rv
end

.require_all_libs_relative_to(fname, dir = nil) ⇒ Object

Utility method used to require 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.



137
138
139
140
141
142
143
# File 'lib/ziya.rb', line 137

def self.require_all_libs_relative_to( fname, dir = nil )
  dir ||= ::File.basename(fname, '.*')
  search_me = ::File.expand_path(
      ::File.join(::File.dirname(fname), dir, '**', '*.rb'))

  Dir.glob(search_me).sort.each {|rb| require rb}
end

.themes_dirObject

the themes root directory location



58
59
60
# File 'lib/ziya.rb', line 58

def self.themes_dir
  config[:themes_dir]
end

.versionObject

Returns the version string for the library.



94
95
96
# File 'lib/ziya.rb', line 94

def self.version
  @version ||= File.read(path('version.txt')).strip
end