Module: Blix

Defined in:
lib/blix/rest/redis_cache.rb,
lib/blix/rest.rb,
lib/blix/utils/misc.rb,
lib/blix/rest/version.rb,
lib/blix/utils/redis_store.rb,
lib/blix/utils/yaml_config.rb

Overview

options:

:expire_secs           - how long store should save data.
:reset_expire_on_get   - start the expire timer again on read.

Defined Under Namespace

Modules: DatamapperExceptions, Rest Classes: RedisStore, YamlConfig

Class Method Summary collapse

Class Method Details

.camelcase(str) ⇒ Object



33
34
35
# File 'lib/blix/utils/misc.rb', line 33

def self.camelcase(str)
  downcase_front(construct_klass(str))
end

.construct_klass(name) ⇒ Object

construct a klass from a name



21
22
23
# File 'lib/blix/utils/misc.rb', line 21

def self.construct_klass(name)
  name && name.to_s.downcase.split('_').map(&:capitalize).join
end

.construct_plural(name) ⇒ Object



29
30
31
# File 'lib/blix/utils/misc.rb', line 29

def self.construct_plural(name)
  name && name.plural
end

.construct_singular(name) ⇒ Object



25
26
27
# File 'lib/blix/utils/misc.rb', line 25

def self.construct_singular(name)
  name && name.to_s.sub(/s$/,'')
end

.downcase_front(str) ⇒ Object



37
38
39
# File 'lib/blix/utils/misc.rb', line 37

def self.downcase_front(str)
  str[0, 1].downcase + str[1..-1]
end

.filter_hash(filter, hash) ⇒ Object

filter the hash using the supplied filter

the filter is an array of keys that are permitted returns a hash containing only the permitted keys and values



55
56
57
58
# File 'lib/blix/utils/misc.rb', line 55

def self.filter_hash(filter,hash)
  hash = hash || {}
  hash.select {|key, value| filter.include?(key.to_sym) ||  filter.include?(key.to_s)}
end

.klass_to_name(klass) ⇒ Object



10
11
12
13
14
# File 'lib/blix/utils/misc.rb', line 10

def self.klass_to_name(klass)
  return unless klass
  klass = klass.to_s.split('::')[-1]
  klass.gsub(/([a-z]+)([A-Z]+)/){"#{$1}_#{$2}"}.downcase
end

.name_to_klass(name) ⇒ Object



16
17
18
# File 'lib/blix/utils/misc.rb', line 16

def self.name_to_klass(name)
  construct_klass(name)
end

.require_dir(path) ⇒ Object



5
6
7
8
# File 'lib/blix/utils/misc.rb', line 5

def self.require_dir(path)
   raise "invalid dir path:#{path}" unless File.directory?(path)
   Dir.glob("#{path}/*.rb").each {|file| require File.expand_path(file)[0..-4] }
end

.underscore(str) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/blix/utils/misc.rb', line 41

def self.underscore(str)
  str.gsub(/::/, '/')
     .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
     .gsub(/([a-z\d])([A-Z])/, '\1_\2')
     .tr('-', '_')
     .downcase
end