timberline 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,19 +5,17 @@ class Timberline
5
5
  def initialize
6
6
  if defined? TIMBERLINE_YAML
7
7
  if File.exists?(TIMBERLINE_YAML)
8
- load_from_yaml(TIMBERLINE_YAML)
8
+ yaml = YAML.load_file(TIMBERLINE_YAML)
9
+ load_from_yaml(yaml)
9
10
  else
10
11
  raise "Specified Timberline config file #{TIMBERLINE_YAML} is not present."
11
12
  end
12
- elsif defined? RAILS_ROOT
13
- config_file = File.join(RAILS_ROOT, 'config', 'timberline.yaml')
14
- if File.exists?(config_file)
15
- load_from_yaml(config_file)
16
- end
17
13
  elsif defined? Rails.root
18
14
  config_file = File.join(Rails.root, 'config', 'timberline.yaml')
19
15
  if File.exists?(config_file)
20
- load_from_yaml(config_file)
16
+ configs = YAML.load_file(config_file)
17
+ config = configs[Rails.env]
18
+ load_from_yaml(config)
21
19
  end
22
20
  end
23
21
 
@@ -37,8 +35,8 @@ class Timberline
37
35
  config
38
36
  end
39
37
 
40
- def load_from_yaml(filename)
41
- yaml_config = YAML.load_file(filename)
38
+ def load_from_yaml(yaml_config)
39
+ raise "Missing yaml configs!" if yaml_config.nil?
42
40
  ["database","host","port","timeout","password","logger","namespace"].each do |setting|
43
41
  self.instance_variable_set("@#{setting}", yaml_config[setting])
44
42
  end
@@ -1,3 +1,3 @@
1
1
  class Timberline
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,6 +1,14 @@
1
- host: localhost
2
- port: 12345
3
- timeout: 10
4
- password: foo
5
- database: 3
6
- namespace: treecurve
1
+ development:
2
+ host: localhost
3
+ port: 12345
4
+ timeout: 10
5
+ password: foo
6
+ database: 3
7
+ namespace: treecurve
8
+ production:
9
+ host: redis.myawesomeproduct.com
10
+ port: 56789
11
+ timeout: 10
12
+ password: foo
13
+ database: 3
14
+ namespace: myawesomeproduct
data/test/test_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'test/unit'
2
+ require 'ostruct'
2
3
 
3
4
  require 'nutrasuite'
4
5
 
@@ -30,7 +30,9 @@ class ConfigTest < Test::Unit::TestCase
30
30
  it "reads configuration from a YAML config file" do
31
31
  base_dir = File.dirname(File.path(__FILE__))
32
32
  yaml_file = File.join(base_dir, "..", "test_config.yaml")
33
- @config.load_from_yaml(yaml_file)
33
+ config = YAML.load_file(yaml_file)
34
+
35
+ @config.load_from_yaml(config)
34
36
  assert_equal "localhost", @config.host
35
37
  assert_equal 12345, @config.port
36
38
  assert_equal 10, @config.timeout
@@ -42,12 +44,12 @@ class ConfigTest < Test::Unit::TestCase
42
44
 
43
45
  a "Config object in a Rails app without a config file" do
44
46
  before do
45
- Object::RAILS_ROOT = File.join(File.dirname(File.path(__FILE__)), "..", "gibberish")
47
+ Object::Rails = OpenStruct.new(:root => File.join(File.dirname(File.path(__FILE__)), "..", "gibberish"), :env => "development")
46
48
  @config = Timberline::Config.new
47
49
  end
48
50
 
49
51
  after do
50
- Object.send(:remove_const, :RAILS_ROOT)
52
+ Object.send(:remove_const, :Rails)
51
53
  end
52
54
 
53
55
  it "loads successfully without any configs." do
@@ -64,12 +66,12 @@ class ConfigTest < Test::Unit::TestCase
64
66
 
65
67
  a "Config object in a Rails app with a config file" do
66
68
  before do
67
- Object::RAILS_ROOT = File.join(File.dirname(File.path(__FILE__)), "..", "fake_rails")
69
+ Object::Rails = OpenStruct.new(:root => File.join(File.dirname(File.path(__FILE__)), "..", "fake_rails"), :env => "development")
68
70
  @config = Timberline::Config.new
69
71
  end
70
72
 
71
73
  after do
72
- Object.send(:remove_const, :RAILS_ROOT)
74
+ Object.send(:remove_const, :Rails)
73
75
  end
74
76
 
75
77
  it "loads the config/timberline.yaml file" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timberline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-25 00:00:00.000000000 Z
12
+ date: 2012-07-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
16
- requirement: &70170052225180 !ruby/object:Gem::Requirement
16
+ requirement: &70151341609740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70170052225180
24
+ version_requirements: *70151341609740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: redis-namespace
27
- requirement: &70170052221160 !ruby/object:Gem::Requirement
27
+ requirement: &70151341608540 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70170052221160
35
+ version_requirements: *70151341608540
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: redis-expiring-set
38
- requirement: &70170052235160 !ruby/object:Gem::Requirement
38
+ requirement: &70151341607980 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70170052235160
46
+ version_requirements: *70151341607980
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: trollop
49
- requirement: &70170052233420 !ruby/object:Gem::Requirement
49
+ requirement: &70151341607400 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70170052233420
57
+ version_requirements: *70151341607400
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: daemons
60
- requirement: &70170052228980 !ruby/object:Gem::Requirement
60
+ requirement: &70151341606860 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70170052228980
68
+ version_requirements: *70151341606860
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: nutrasuite
71
- requirement: &70170052243880 !ruby/object:Gem::Requirement
71
+ requirement: &70151341606340 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70170052243880
79
+ version_requirements: *70151341606340
80
80
  description: Timberline is a simple and extensible queuing system built in Ruby and
81
81
  backed by Redis. It makes as few assumptions as possible about how you want to interact
82
82
  with your queues while also allowing for some functionality that should be universally