cockpit 0.1.1 → 0.2.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/{MIT-LICENSE → MIT-LICENSE.markdown} +0 -0
- data/README.markdown +70 -47
- data/lib/cockpit.rb +1 -0
- data/lib/cockpit/core/definition.rb +187 -76
- data/lib/cockpit/core/global.rb +35 -0
- data/lib/cockpit/core/helpers.rb +12 -0
- data/lib/cockpit/core/include.rb +29 -74
- data/lib/cockpit/core/scope.rb +46 -0
- data/lib/cockpit/core/settings.rb +113 -74
- data/lib/cockpit/core/spec.rb +65 -0
- data/lib/cockpit/core/store.rb +34 -38
- data/lib/cockpit/stores/active_record.rb +128 -0
- data/lib/cockpit/stores/file_system.rb +11 -0
- data/lib/cockpit/stores/memory.rb +16 -0
- data/lib/cockpit/stores/mongo.rb +29 -0
- data/lib/cockpit/stores/redis.rb +11 -0
- metadata +16 -19
- data/Rakefile +0 -79
- data/lib/cockpit/core/definitions.rb +0 -55
- data/lib/cockpit/many/include.rb +0 -18
- data/lib/cockpit/many/settings.rb +0 -21
- data/lib/cockpit/moneta/active_record.rb +0 -120
- data/lib/cockpit/moneta/simple_active_record.rb +0 -93
- data/test/lib/database.rb +0 -22
- data/test/lib/user.rb +0 -10
- data/test/test_active_record.rb +0 -80
- data/test/test_helper.rb +0 -88
- data/test/test_mongo.rb +0 -82
- data/test/test_stores.rb +0 -125
data/test/test_mongo.rb
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
-
|
3
|
-
class MongoDBTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
context "MongoDB" do
|
6
|
-
|
7
|
-
setup do
|
8
|
-
Cockpit "mongo" do
|
9
|
-
site do
|
10
|
-
title "My Site"
|
11
|
-
time_zone lambda { "Hawaii" }
|
12
|
-
feed do
|
13
|
-
per_page 10
|
14
|
-
formats %w(rss atom)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
should "retrieve default values" do
|
21
|
-
assert_equal "My Site", Cockpit::Settings.default("site.title")
|
22
|
-
end
|
23
|
-
|
24
|
-
should "define default values at runtime" do
|
25
|
-
Cockpit::Settings["site.title"] = "New Site"
|
26
|
-
assert_equal "New Site", Cockpit::Settings.default("site.title")
|
27
|
-
assert_equal "New Site", Cockpit::Settings["site.title"]
|
28
|
-
end
|
29
|
-
|
30
|
-
should "use moneta" do
|
31
|
-
assert Cockpit::Settings.store
|
32
|
-
Cockpit::Settings["site.title"] = "Another Site"
|
33
|
-
assert_equal "Another Site", Cockpit::Settings.store["default.site.title"]
|
34
|
-
end
|
35
|
-
|
36
|
-
context "instance" do
|
37
|
-
setup do
|
38
|
-
@settings = Cockpit::Settings.new(:name => "site-cache", :scope => "default") do
|
39
|
-
site "a site"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
should "have an instance of setting" do
|
44
|
-
assert @settings
|
45
|
-
assert_equal "a site", @settings["site"]
|
46
|
-
class User
|
47
|
-
cockpit do
|
48
|
-
author "Lance"
|
49
|
-
title do
|
50
|
-
last_name "Pollard"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
assert_equal "Lance", User.cockpit["author"]
|
55
|
-
assert_equal "Pollard", User.cockpit["title.last_name"]
|
56
|
-
|
57
|
-
user = User.new
|
58
|
-
assert_equal "Lance", user.cockpit["author"]
|
59
|
-
assert_equal "Pollard", user.cockpit["title.last_name"]
|
60
|
-
|
61
|
-
settings = load_settings
|
62
|
-
end
|
63
|
-
|
64
|
-
should "be able to assiociate Proc and hash" do
|
65
|
-
require 'tzinfo'
|
66
|
-
@settings = Cockpit "mongo" do
|
67
|
-
site do
|
68
|
-
time_zones "MST", :options => Proc.new { TZInfo::Timezone.all.map(&:name) }
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
assert_equal TZInfo::Timezone.all.map(&:name), @settings.definition("site.time_zones")[:options].call
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
teardown do
|
77
|
-
Cockpit::Settings.clear
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
data/test/test_stores.rb
DELETED
@@ -1,125 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
-
|
3
|
-
class StoreTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
context "Store" do
|
6
|
-
|
7
|
-
context "ActiveRecord" do
|
8
|
-
setup do
|
9
|
-
@settings = Cockpit "active_record" do
|
10
|
-
site do
|
11
|
-
title "My Site"
|
12
|
-
time_zone lambda { "Hawaii" }
|
13
|
-
feed do
|
14
|
-
per_page 10
|
15
|
-
formats %w(rss atom)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
should "get/set values" do
|
22
|
-
assert_equal "My Site", @settings["site.title"]
|
23
|
-
@settings["site.title"] = "Another Site"
|
24
|
-
assert_equal 1, Moneta::Adapters::ActiveRecord::Store.count
|
25
|
-
assert_equal "Another Site", @settings["site.title"]
|
26
|
-
end
|
27
|
-
|
28
|
-
should "have user settings" do
|
29
|
-
assert_equal %w(red green blue), User.cockpit["favorite.colors"]
|
30
|
-
assert_equal "Lance", User.cockpit["appelation"]
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
context "MongoDB" do
|
36
|
-
setup do
|
37
|
-
@settings = Cockpit "mongodb" do
|
38
|
-
site do
|
39
|
-
title "My Site"
|
40
|
-
time_zone lambda { "Hawaii" }
|
41
|
-
feed do
|
42
|
-
per_page 10
|
43
|
-
formats %w(rss atom)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
should "get/set values" do
|
50
|
-
assert_equal "My Site", @settings["site.title"]
|
51
|
-
@settings["site.title"] = "Another Site"
|
52
|
-
assert_equal "Another Site", @settings["site.title"]
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
context "File" do
|
57
|
-
setup do
|
58
|
-
@settings = Cockpit "file" do
|
59
|
-
site do
|
60
|
-
title "My Site"
|
61
|
-
time_zone lambda { "Hawaii" }
|
62
|
-
feed do
|
63
|
-
per_page 10
|
64
|
-
formats %w(rss atom)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
should "get/set values" do
|
71
|
-
assert_equal "My Site", @settings["site.title"]
|
72
|
-
@settings["site.title"] = "Another Site"
|
73
|
-
assert_equal "Another Site", @settings["site.title"]
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
context "Memory" do
|
78
|
-
setup do
|
79
|
-
@settings = Cockpit "memory" do
|
80
|
-
site do
|
81
|
-
title "My Site"
|
82
|
-
time_zone lambda { "Hawaii" }
|
83
|
-
feed do
|
84
|
-
per_page 10
|
85
|
-
formats %w(rss atom)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
should "get/set values" do
|
92
|
-
assert_equal "My Site", @settings["site.title"]
|
93
|
-
@settings["site.title"] = "Another Site"
|
94
|
-
assert_equal "Another Site", @settings["site.title"]
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
context "Redis" do
|
99
|
-
setup do
|
100
|
-
@settings = Cockpit "redis" do
|
101
|
-
site do
|
102
|
-
title "My Site"
|
103
|
-
time_zone lambda { "Hawaii" }
|
104
|
-
feed do
|
105
|
-
per_page 10
|
106
|
-
formats %w(rss atom)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
should "get/set values" do
|
113
|
-
assert_equal "My Site", @settings["site.title"]
|
114
|
-
@settings["site.title"] = "Another Site"
|
115
|
-
assert_equal "Another Site", @settings["site.title"]
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
teardown do
|
120
|
-
Cockpit::Settings.clear
|
121
|
-
end
|
122
|
-
|
123
|
-
end
|
124
|
-
|
125
|
-
end
|