answer-factory 0.0.12 → 0.0.13
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 +1 -1
- data/answer-factory.gemspec +6 -5
- data/lib/answer-factory.rb +1 -0
- data/lib/factories/factory.rb +40 -32
- data/spec/factories/factory_spec.rb +157 -81
- data/spec/factories/workstation_spec.rb +6 -5
- data/spec/integration_specs/activate_integration.rb +0 -0
- data/spec/integration_specs/build_integration.rb +0 -0
- data/templates/answer_factory_activate_template.erb +7 -13
- metadata +7 -6
- data/config/database.yml +0 -9
- data/spec/config_spec.rb +0 -94
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.13
|
data/answer-factory.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{answer-factory}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.13"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Bill Tozier", "Trek Glowacki", "Jesse Sielaff"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-07}
|
13
13
|
s.default_executable = %q{answer-factory}
|
14
14
|
s.description = %q{The pragmaticgp gem provides a simple framework for building, running and managing genetic programming experiments which automatically discover algorithms and equations to solve user-defined problems.}
|
15
15
|
s.email = %q{bill@vagueinnovation.com}
|
@@ -26,7 +26,6 @@ Gem::Specification.new do |s|
|
|
26
26
|
"_spikes/old_vs_new_dominated_by?.rb",
|
27
27
|
"answer-factory.gemspec",
|
28
28
|
"bin/answer-factory",
|
29
|
-
"config/database.yml",
|
30
29
|
"lib/answer-factory.rb",
|
31
30
|
"lib/answers/answer.rb",
|
32
31
|
"lib/answers/batch.rb",
|
@@ -50,9 +49,10 @@ Gem::Specification.new do |s|
|
|
50
49
|
"readme.md",
|
51
50
|
"spec/answer_spec.rb",
|
52
51
|
"spec/batch_spec.rb",
|
53
|
-
"spec/config_spec.rb",
|
54
52
|
"spec/factories/factory_spec.rb",
|
55
53
|
"spec/factories/workstation_spec.rb",
|
54
|
+
"spec/integration_specs/activate_integration.rb",
|
55
|
+
"spec/integration_specs/build_integration.rb",
|
56
56
|
"spec/integration_specs/thor_integration.rb",
|
57
57
|
"spec/operators/any_one_sampler_spec.rb",
|
58
58
|
"spec/operators/dominated_quantile_spec.rb",
|
@@ -83,9 +83,10 @@ Gem::Specification.new do |s|
|
|
83
83
|
s.test_files = [
|
84
84
|
"spec/answer_spec.rb",
|
85
85
|
"spec/batch_spec.rb",
|
86
|
-
"spec/config_spec.rb",
|
87
86
|
"spec/factories/factory_spec.rb",
|
88
87
|
"spec/factories/workstation_spec.rb",
|
88
|
+
"spec/integration_specs/activate_integration.rb",
|
89
|
+
"spec/integration_specs/build_integration.rb",
|
89
90
|
"spec/integration_specs/thor_integration.rb",
|
90
91
|
"spec/operators/any_one_sampler_spec.rb",
|
91
92
|
"spec/operators/dominated_quantile_spec.rb",
|
data/lib/answer-factory.rb
CHANGED
data/lib/factories/factory.rb
CHANGED
@@ -1,53 +1,61 @@
|
|
1
1
|
module AnswerFactory
|
2
2
|
class Factory
|
3
3
|
require 'open-uri'
|
4
|
-
require 'configatron'
|
5
4
|
|
6
5
|
attr_reader :name
|
7
|
-
attr_reader :
|
6
|
+
attr_reader :nudge_instructions
|
7
|
+
attr_reader :nudge_types
|
8
|
+
attr_reader :couchdb_server
|
8
9
|
attr_accessor :workstation_names
|
9
10
|
attr_reader :original_options_hash
|
10
11
|
|
11
12
|
|
12
|
-
def initialize(
|
13
|
-
@name = name
|
14
|
-
@original_options_hash = options
|
15
|
-
@instruction_library = options[:instruction_library] || Instruction.all_instructions
|
16
|
-
@type_library = options[:type_library] || NudgeType.all_types
|
17
|
-
@workstation_names = Array.new
|
13
|
+
def initialize(options = {})
|
18
14
|
|
19
|
-
|
15
|
+
# Factory instance settings
|
16
|
+
@name = options[:name] ||
|
17
|
+
configatron.factory.retrieve(:name,nil) ||
|
18
|
+
"my_factory"
|
19
|
+
|
20
|
+
@workstation_names = options[:workstation_names] ||
|
21
|
+
configatron.factory.retrieve(:workstation_names, nil) ||
|
22
|
+
Array.new
|
23
|
+
|
24
|
+
# CouchDB settings
|
25
|
+
@couchdb_server = options[:couchdb_server] ||
|
26
|
+
configatron.factory.couchdb.retrieve(:server, nil) ||
|
27
|
+
"http://127.0.0.1:5984"
|
28
|
+
|
29
|
+
# Nudge language settings
|
30
|
+
@nudge_instructions = options[:nudge_instructions] ||
|
31
|
+
configatron.nudge.instructions.retrieve(:all, nil) ||
|
32
|
+
Instruction.all_instructions
|
33
|
+
|
34
|
+
@nudge_types = options[:nudge_types] ||
|
35
|
+
configatron.nudge.types.retrieve(:all, nil) ||
|
36
|
+
NudgeType.all_types
|
37
|
+
|
38
|
+
update_configatron!
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
# this apparent redundancy saves project-based
|
43
|
+
# and command-line overrides
|
44
|
+
def update_configatron!
|
45
|
+
configatron.factory.name = @name
|
46
|
+
configatron.nudge.instructions.all = @nudge_instructions
|
47
|
+
configatron.nudge.types.all = @nudge_types
|
48
|
+
configatron.factory.workstation_names = @workstation_names
|
49
|
+
configatron.factory.couchdb.server = @couchdb_server
|
20
50
|
end
|
21
51
|
|
22
52
|
|
23
53
|
def couch_available?
|
24
|
-
open(
|
54
|
+
open(configatron.factory.couchdb.server).status
|
25
55
|
true
|
26
56
|
rescue StandardError
|
27
57
|
false
|
28
58
|
end
|
29
59
|
|
30
|
-
|
31
|
-
def configure!
|
32
|
-
self.configure_constants!
|
33
|
-
self.configure_paths!
|
34
|
-
self.configure_databases!
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
def configure_constants!
|
39
|
-
self.configatron.factory_name = self.name
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
def configure_paths!
|
44
|
-
self.configatron.factory_root = File.expand_path("#{File.dirname(__FILE__)}/../..")
|
45
|
-
end
|
46
|
-
|
47
|
-
|
48
|
-
def configure_databases!
|
49
|
-
self.configatron.configure_from_yaml("#{self.configatron.factory_root}/config/database.yml")
|
50
|
-
self.configatron.couchdb_uri = "#{self.configatron.main_database.db_root}/#{self.name}"
|
51
|
-
end
|
52
60
|
end
|
53
61
|
end
|
@@ -2,102 +2,178 @@ require File.join(File.dirname(__FILE__), "./../spec_helper")
|
|
2
2
|
|
3
3
|
|
4
4
|
describe "Factory" do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
it "should have a default name of 'something here'" do
|
11
|
-
Factory.new.name.should == "my_factory"
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
describe "databases" do
|
16
|
-
describe "#couch_available?" do
|
17
|
-
it "should have a method to check that couchDB is accessible" do
|
18
|
-
f1 = Factory.new("boo")
|
19
|
-
lambda{f1.couch_available?}.should_not raise_error
|
5
|
+
describe "Factory configuration methods" do
|
6
|
+
describe "defaults, via configatron" do
|
7
|
+
it "should be possible to talk to to #configatron from here" do
|
8
|
+
lambda{configatron.my_thing}.should_not raise_error
|
20
9
|
end
|
21
10
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
11
|
+
describe "Factory.new should have reasonable default values" do
|
12
|
+
it "should use 'my_factory' for #name" do
|
13
|
+
f1 = Factory.new
|
14
|
+
f1.name.should == "my_factory"
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should use an empty Array for #workstation_names" do
|
18
|
+
f1 = Factory.new
|
19
|
+
f1.workstation_names.should == []
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should use 'http://127.0.0.1:5984' for #couchdb_server" do
|
23
|
+
f1 = Factory.new
|
24
|
+
f1.couchdb_server.should == 'http://127.0.0.1:5984'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should use Nudge::Instruction.all_instructions for #nudge_instructions" do
|
28
|
+
f1 = Factory.new
|
29
|
+
f1.nudge_instructions.should == Instruction.all_instructions
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should use Nudge::NudgeType.all_types for #nudge_types" do
|
33
|
+
f1 = Factory.new
|
34
|
+
f1.nudge_types.should == NudgeType.all_types
|
35
|
+
end
|
28
36
|
end
|
29
37
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
38
|
+
|
39
|
+
describe "Factory.new should hit configatron for default values" do
|
40
|
+
it "should hit configatron for #name" do
|
41
|
+
configatron.temp do
|
42
|
+
configatron.factory.name = "foo"
|
43
|
+
f1 = Factory.new
|
44
|
+
f1.name.should == "foo"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should hit configatron for #nudge_instructions" do
|
49
|
+
configatron.temp do
|
50
|
+
configatron.nudge.instructions.all = [IntSubtractInstruction]
|
51
|
+
f1 = Factory.new
|
52
|
+
f1.nudge_instructions.should == [IntSubtractInstruction]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should hit configatron for #nudge_types" do
|
57
|
+
configatron.temp do
|
58
|
+
configatron.nudge.types.all = [BoolType]
|
59
|
+
f1 = Factory.new
|
60
|
+
f1.nudge_types.should == [BoolType]
|
61
|
+
end
|
62
|
+
end
|
37
63
|
|
38
|
-
|
39
|
-
|
40
|
-
|
64
|
+
it "should hit configatron for #workstation_names" do
|
65
|
+
configatron.temp do
|
66
|
+
configatron.factory.workstation_names = [:bar, :baz]
|
67
|
+
f1 = Factory.new
|
68
|
+
f1.workstation_names.should == [:bar, :baz]
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should hit configatron for #couchdb_server" do
|
73
|
+
configatron.temp do
|
74
|
+
configatron.factory.couchdb.server = "http://my.otherplace.com:7771"
|
75
|
+
f1 = Factory.new
|
76
|
+
f1.couchdb_server.should == "http://my.otherplace.com:7771"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
|
83
|
+
describe "writing overridden defaults to configatron" do
|
84
|
+
describe "Factory.new should overwrite configatron default values" do
|
85
|
+
it "should overwrite #factory_name" do
|
86
|
+
Factory.new(name:"golly")
|
87
|
+
configatron.factory.name.should == "golly"
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should overwrite #nudge.instructions.all" do
|
91
|
+
Factory.new(nudge_instructions:[BoolAndInstruction])
|
92
|
+
configatron.nudge.instructions.all.should == [BoolAndInstruction]
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should overwrite #nudge.types.all" do
|
96
|
+
Factory.new(nudge_types:[BoolType])
|
97
|
+
configatron.nudge.types.all.should == [BoolType]
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should overwrite #factory.workstation_names" do
|
101
|
+
Factory.new(workstation_names:[:xenon])
|
102
|
+
configatron.factory.workstation_names.should == [:xenon]
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should overwrite #factory.couchdb.server" do
|
106
|
+
Factory.new(couchdb_server:"http://127.0.0.1:9999")
|
107
|
+
configatron.factory.couchdb.server.should == "http://127.0.0.1:9999"
|
108
|
+
end
|
109
|
+
end
|
41
110
|
end
|
111
|
+
|
42
112
|
end
|
43
|
-
end
|
44
|
-
|
45
|
-
|
46
|
-
describe "build" do
|
47
|
-
it "should read the config files"
|
48
|
-
|
49
|
-
it "should #reset"
|
50
|
-
end
|
51
|
-
|
52
|
-
|
53
|
-
describe "reset" do
|
54
|
-
it "should erase the couchdb"
|
55
113
|
|
56
|
-
it "should set up a new couchdb"
|
57
114
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
115
|
+
describe "databases" do
|
116
|
+
describe "#couch_available?" do
|
117
|
+
before(:each) do
|
118
|
+
FakeWeb.allow_net_connect = false
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should have a method to check that couchDB is accessible" do
|
122
|
+
f1 = Factory.new(name:"boo")
|
123
|
+
lambda{f1.couch_available?}.should_not raise_error
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should return true if the uri is reachable" do
|
127
|
+
uri = "http://mycouch.db/boo"
|
128
|
+
f1 = Factory.new(name:"boo", couchdb_server:uri)
|
129
|
+
FakeWeb.register_uri(:any, uri, :body => "We are here!", :status => [200, "OK"])
|
130
|
+
f1.couch_available?.should == true
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should return false if the uri is offline or 404's out" do
|
134
|
+
uri = "http://mycouch.db/boo"
|
135
|
+
f1 = Factory.new(name:"boo", couchdb_server:uri)
|
136
|
+
FakeWeb.register_uri(:any, "http://mycouch.db/boo",
|
137
|
+
:body => "Go away!", :status => [404, "Not Found"])
|
138
|
+
f1.couch_available?.should == false
|
139
|
+
|
140
|
+
f1 = Factory.new(name:"boo", couchdb_server:"http://127.0.0.1:9991/place")
|
141
|
+
f1.couch_available?.should == false
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
|
146
|
+
describe "database setup" do
|
147
|
+
describe "paths" do
|
148
|
+
it "should have reasonable defaults"
|
149
|
+
|
150
|
+
describe "setting from file" do
|
151
|
+
it "should populate configatron.main_database.db_root"
|
152
|
+
|
153
|
+
it "should populate configatron.main_database.db_name"
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
76
157
|
end
|
77
158
|
|
78
|
-
it "should have a master NudgeType list" do
|
79
|
-
Factory.new("foo").type_library.should == NudgeType.all_types
|
80
|
-
end
|
81
159
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
160
|
+
describe "Nudge Language setup" do
|
161
|
+
it "should have reasonable defaults"
|
162
|
+
|
163
|
+
describe "setting from file" do
|
164
|
+
it "should replace configatron.ontology.nudge.types"
|
165
|
+
it "should replace configatron.ontology.nudge.instructions"
|
166
|
+
end
|
86
167
|
end
|
87
168
|
|
88
|
-
it "should save all the Hash options it was called with" do
|
89
|
-
Factory.new("bar", my_option:1, my_other_option:[1,2,3]).original_options_hash.should ==
|
90
|
-
{:my_option=>1, :my_other_option=>[1, 2, 3]}
|
91
|
-
end
|
92
169
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
170
|
+
describe "Workstation setup" do
|
171
|
+
it "should have reasonable defaults"
|
172
|
+
|
173
|
+
describe "setting from file" do
|
174
|
+
it "should replace configatron.workstations"
|
175
|
+
it "should replace 'configatron.[workstation_name].[settings]' for each workstation"
|
176
|
+
end
|
98
177
|
end
|
99
|
-
|
100
178
|
end
|
101
|
-
|
102
|
-
|
103
179
|
end
|
@@ -93,6 +93,11 @@ describe "Workstation" do
|
|
93
93
|
|
94
94
|
|
95
95
|
describe "#cycle" do
|
96
|
+
|
97
|
+
describe "the #before_cycle method" do
|
98
|
+
it "should empty @answers"
|
99
|
+
end
|
100
|
+
|
96
101
|
it "should invoke #receive!, #build!, #ship! and #scrap!" do
|
97
102
|
w1 = Workstation.new(:place)
|
98
103
|
w1.should_receive(:receive!)
|
@@ -102,11 +107,7 @@ describe "Workstation" do
|
|
102
107
|
w1.cycle
|
103
108
|
end
|
104
109
|
|
105
|
-
describe "the #
|
106
|
-
it "should empty @answers"
|
107
|
-
end
|
108
|
-
|
109
|
-
describe "the #after method" do
|
110
|
+
describe "the #after_cycle method" do
|
110
111
|
it "should save everything in @answers to the persistent store"
|
111
112
|
end
|
112
113
|
|
File without changes
|
File without changes
|
@@ -2,26 +2,20 @@ require 'answer-factory'
|
|
2
2
|
|
3
3
|
####
|
4
4
|
####
|
5
|
-
#### EDIT THESE SETTINGS TO SUIT YOUR PROJECT
|
5
|
+
#### EDIT THESE SETTINGS TO SUIT YOUR PROJECT:
|
6
6
|
####
|
7
7
|
####
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
def AnswerFactory.nudge_types_path
|
15
|
-
# Directory path for project-specific Nudge types:
|
16
|
-
'/lib/nudge/types/*'
|
17
|
-
end
|
9
|
+
# Nudge language extensions:
|
10
|
+
configatron.project.nudge.instructions.path = '/lib/nudge/instructions/*'
|
11
|
+
configatron.project.nudge.types.path = '/lib/nudge/types/*'
|
18
12
|
|
19
13
|
|
20
14
|
####
|
21
15
|
####
|
22
|
-
####
|
16
|
+
#### DON'T EDIT PAST THIS POINT
|
23
17
|
####
|
24
18
|
####
|
25
19
|
|
26
|
-
Dir.glob(File.dirname(__FILE__) +
|
27
|
-
Dir.glob(File.dirname(__FILE__) +
|
20
|
+
Dir.glob(File.dirname(__FILE__) + configatron.project.nudge.instructions.path) {|file| require file}
|
21
|
+
Dir.glob(File.dirname(__FILE__) + configatron.project.nudge.types.path) {|file| require file}
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 13
|
9
|
+
version: 0.0.13
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Bill Tozier
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-05-
|
19
|
+
date: 2010-05-07 00:00:00 -04:00
|
20
20
|
default_executable: answer-factory
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -130,7 +130,6 @@ files:
|
|
130
130
|
- _spikes/old_vs_new_dominated_by?.rb
|
131
131
|
- answer-factory.gemspec
|
132
132
|
- bin/answer-factory
|
133
|
-
- config/database.yml
|
134
133
|
- lib/answer-factory.rb
|
135
134
|
- lib/answers/answer.rb
|
136
135
|
- lib/answers/batch.rb
|
@@ -154,9 +153,10 @@ files:
|
|
154
153
|
- readme.md
|
155
154
|
- spec/answer_spec.rb
|
156
155
|
- spec/batch_spec.rb
|
157
|
-
- spec/config_spec.rb
|
158
156
|
- spec/factories/factory_spec.rb
|
159
157
|
- spec/factories/workstation_spec.rb
|
158
|
+
- spec/integration_specs/activate_integration.rb
|
159
|
+
- spec/integration_specs/build_integration.rb
|
160
160
|
- spec/integration_specs/thor_integration.rb
|
161
161
|
- spec/operators/any_one_sampler_spec.rb
|
162
162
|
- spec/operators/dominated_quantile_spec.rb
|
@@ -212,9 +212,10 @@ summary: Genetic Programming in the Nudge language
|
|
212
212
|
test_files:
|
213
213
|
- spec/answer_spec.rb
|
214
214
|
- spec/batch_spec.rb
|
215
|
-
- spec/config_spec.rb
|
216
215
|
- spec/factories/factory_spec.rb
|
217
216
|
- spec/factories/workstation_spec.rb
|
217
|
+
- spec/integration_specs/activate_integration.rb
|
218
|
+
- spec/integration_specs/build_integration.rb
|
218
219
|
- spec/integration_specs/thor_integration.rb
|
219
220
|
- spec/operators/any_one_sampler_spec.rb
|
220
221
|
- spec/operators/dominated_quantile_spec.rb
|
data/config/database.yml
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
# realy wants to use CouchDB version 0.11 or higher
|
2
|
-
|
3
|
-
# edit this to fit your particular CouchDB configuration
|
4
|
-
main_database:
|
5
|
-
db_root: http://127.0.0.1:5984 # URI of your CouchDB server
|
6
|
-
db_name: my_factory # root database handling your AnswerFactory:
|
7
|
-
tag_filter: _design/routing/_view/by_tag # don't edit this unless you also
|
8
|
-
# change how it's used in the codebase!
|
9
|
-
|
data/spec/config_spec.rb
DELETED
@@ -1,94 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), "./spec_helper")
|
2
|
-
|
3
|
-
|
4
|
-
describe "Factory configuration methods" do
|
5
|
-
describe "configatron integration" do
|
6
|
-
it "should respond to #configatron" do
|
7
|
-
Factory.new.should respond_to(:configatron)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
|
12
|
-
describe "configure_paths" do
|
13
|
-
it "should respond to #configure_paths" do
|
14
|
-
Factory.new.should respond_to(:configure_paths!)
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should populate self.configatron.factory_root as the path to the project folder" do
|
18
|
-
this_spec_file_parent_path = File.expand_path("#{File.dirname(__FILE__)}/..")
|
19
|
-
f1 = Factory.new
|
20
|
-
f1.configure_paths!
|
21
|
-
f1.configatron.factory_root.should == this_spec_file_parent_path
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
|
26
|
-
describe "factory name" do
|
27
|
-
it "should populate self.configatron.factory_name" do
|
28
|
-
f1 = Factory.new
|
29
|
-
f1.configure_constants!
|
30
|
-
f1.configatron.factory_name.should == "my_factory"
|
31
|
-
|
32
|
-
f1 = Factory.new("super_fancy")
|
33
|
-
f1.configure_constants!
|
34
|
-
f1.configatron.factory_name.should == "super_fancy"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
describe "database setup" do
|
40
|
-
describe "paths" do
|
41
|
-
it "should read from database.yml" do
|
42
|
-
f1 = Factory.new("super_fancy")
|
43
|
-
f1.configatron.should_receive(:configure_from_yaml)
|
44
|
-
f1.configure!
|
45
|
-
end
|
46
|
-
|
47
|
-
describe "subject" do
|
48
|
-
before(:each) do
|
49
|
-
@f1 = Factory.new()
|
50
|
-
@f1.configure!
|
51
|
-
end
|
52
|
-
|
53
|
-
it "should populate configatron.main_database.db_root" do
|
54
|
-
@f1.configatron.main_database.db_root.should == "http://127.0.0.1:5984"
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should populate configatron.main_database.db_name" do
|
58
|
-
@f1.configatron.main_database.db_name.should == "my_factory" # from the config file
|
59
|
-
end
|
60
|
-
|
61
|
-
it "should populate configatron.main_database.tag_filter" do
|
62
|
-
@f1.configatron.main_database.tag_filter.should == "_design/routing/_view/by_tag"
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "checking for CouchDB access" do
|
69
|
-
it "should call Factory#couch_db?"
|
70
|
-
end
|
71
|
-
|
72
|
-
describe "setting up initial db" do
|
73
|
-
it "should not remove old records unless asked to do so"
|
74
|
-
it "should be possible to erase the db if a flag is set"
|
75
|
-
it "should set up the design document"
|
76
|
-
it "should write the search-by-tag filter view to the design document"
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
|
81
|
-
describe "Nudge language setup" do
|
82
|
-
it "should set up the Instructions"
|
83
|
-
|
84
|
-
it "should set up the Types"
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|