buzzcore 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.5
1
+ 0.4.0
data/buzzcore.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{buzzcore}
8
- s.version = "0.3.5"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["buzzware"]
12
- s.date = %q{2010-03-23}
12
+ s.date = %q{2010-04-08}
13
13
  s.description = %q{buzzcore is the ruby core library developed and used by Buzzware Solutions.}
14
14
  s.email = %q{contact@buzzware.com.au}
15
15
  s.extra_rdoc_files = [
@@ -42,8 +42,10 @@ Gem::Specification.new do |s|
42
42
  "lib/buzzcore/string_utils.rb",
43
43
  "lib/buzzcore/text_doc.rb",
44
44
  "lib/buzzcore/thread_utils.rb",
45
+ "lib/buzzcore/tweaks.rb",
45
46
  "lib/buzzcore/xml_utils.rb",
46
47
  "lib/buzzcore_dev.rb",
48
+ "rails/init.rb",
47
49
  "test/buzzcore_test.rb",
48
50
  "test/config_test.rb",
49
51
  "test/credentials_test.rb",
@@ -76,6 +76,7 @@ class ConfigClass < Hash
76
76
  when :Fixnum then set_int(aKey,aHash[aKey]);
77
77
  when :TrueClass, :FalseClass then set_boolean(aKey,aHash[aKey]);
78
78
  when :Symbol then self[aKey] = (aHash[aKey].to_sym rescue nil)
79
+ when :Proc then self[aKey] = aHash[aKey] if aHash[aKey].is_a?(Proc)
79
80
  else
80
81
  raise StandardError.new('unsupported type')
81
82
  end
@@ -0,0 +1,107 @@
1
+ module Buzzcore
2
+
3
+ #class Tweak
4
+ #
5
+ # attr_reader :name
6
+ #
7
+ # def initialize(aName)
8
+ # @name = aName.to_sym
9
+ # end
10
+ #
11
+ # def config
12
+ # Tweaks.config_for(name)
13
+ # end
14
+ #
15
+ #end
16
+
17
+ class Tweaks
18
+
19
+ @@configs = {}
20
+ @@switch = {}
21
+ @@switch_default = {}
22
+
23
+ #cattr_accessor :rails_config
24
+
25
+ # load all tweaks from a path
26
+ def self.load_all(aPath)
27
+ aPath = File.expand_path(aPath)
28
+ # get list of tweak_files
29
+ tweak_files = Dir.glob(File.join(aPath,'*_tweak.rb'))
30
+ tweak_files.each do |f|
31
+ Tweaks.load(f)
32
+ end
33
+ end
34
+
35
+ def self.load(aTweakFile)
36
+ #name = aTweakFile.scan(/.*\/(.+)_tweak\.rb$/).flatten.pop
37
+ #@@tweaks[name.to_sym] = Tweak.new(name)
38
+ if defined? Rails
39
+ require_dependency aTweakFile
40
+ else
41
+ ::Kernel.load(aTweakFile)
42
+ end
43
+ end
44
+
45
+ def self.enable(*aTweakNames)
46
+ aTweakNames = [aTweakNames] unless aTweakNames.is_a?(Array)
47
+ aTweakNames.each do |n|
48
+ @@switch[n.to_sym] = true
49
+ end
50
+ end
51
+
52
+ def self.disable(*aTweakNames)
53
+ aTweakNames = [aTweakNames] unless aTweakNames.is_a?(Array)
54
+ aTweakNames.each do |n|
55
+ @@switch[n.to_sym] = false
56
+ end
57
+ end
58
+
59
+ def self.header_enabled?(aTweak)
60
+ end
61
+
62
+ def self.header_disabled?(aTweak)
63
+ end
64
+
65
+ # pass a hash to set
66
+ # returns config hash for modification
67
+ def self.config_for(aTweak,aHash=nil)
68
+ aTweak = aTweak.to_sym
69
+ if !(cf = @@configs[aTweak])
70
+ cf = {}
71
+ @@configs[aTweak] = cf
72
+ end
73
+ if aHash
74
+ if cf.is_a?(ConfigClass)
75
+ cf.reset()
76
+ cf.read(aHash)
77
+ else
78
+ @@configs[aTweak] = cf = aHash
79
+ end
80
+ end
81
+ cf
82
+ end
83
+
84
+ # pass a hash to set
85
+ # returns config hash for modification
86
+ #def self.defaults_for(aTweak,aHash=nil)
87
+ # c = config
88
+ #end
89
+
90
+ # called by tweak code (not sure if necessary)
91
+ # aDefaults creates an optional config object for this tweak with the given defaults and previously given values
92
+ # aNormally :enabled or :disabled
93
+ def self.define(aName,aNormally,aDefaults=nil)
94
+ config = @@configs[aName.to_sym]
95
+ @@configs[aName.to_sym] = config = ConfigClass.new(aDefaults,config) if aDefaults
96
+ @@switch_default[aName.to_sym] = (aNormally==:enabled || aNormally==true ? true : false)
97
+ en = enabled?(aName)
98
+ yield(config,aName) if en
99
+ en
100
+ end
101
+
102
+ def self.enabled?(aTweakName)
103
+ @@switch[aTweakName.to_sym]==nil ? @@switch_default[aTweakName.to_sym] : @@switch[aTweakName.to_sym]
104
+ end
105
+
106
+ end
107
+ end
data/rails/init.rb ADDED
@@ -0,0 +1,16 @@
1
+ #gem_root = File.expand_path(File.join(File.dirname(__FILE__), ".."))
2
+ #Cms.add_to_rails_paths gem_root
3
+ #
4
+ #throw RuntimeError.new('thumbs_cache folder must exist') unless File.exists? APP_CONFIG[:thumbs_cache]
5
+ #
6
+ #Cms::PageHelper.module_eval do
7
+ #
8
+ # extend BcmsTools::PageHelper
9
+ #
10
+ #end
11
+ #
12
+ config.after_initialize do
13
+ #Buzzcore::Tweaks.rails_config = config
14
+ Buzzcore::Tweaks.load_all(File.join(File.dirname(__FILE__),'../tweaks'))
15
+ Buzzcore::Tweaks.load_all(File.join(RAILS_ROOT,'tweaks'))
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buzzcore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzzware
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-03-23 00:00:00 +08:00
12
+ date: 2010-04-08 00:00:00 +08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -66,8 +66,10 @@ files:
66
66
  - lib/buzzcore/string_utils.rb
67
67
  - lib/buzzcore/text_doc.rb
68
68
  - lib/buzzcore/thread_utils.rb
69
+ - lib/buzzcore/tweaks.rb
69
70
  - lib/buzzcore/xml_utils.rb
70
71
  - lib/buzzcore_dev.rb
72
+ - rails/init.rb
71
73
  - test/buzzcore_test.rb
72
74
  - test/config_test.rb
73
75
  - test/credentials_test.rb