floor_manager 0.1.2 → 0.1.3
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/HISTORY.txt +4 -0
- data/README +4 -1
- data/lib/floor_manager.rb +2 -2
- data/lib/floor_manager/employee.rb +5 -4
- data/lib/floor_manager/floor.rb +8 -5
- metadata +6 -6
data/HISTORY.txt
CHANGED
data/README
CHANGED
@@ -29,6 +29,9 @@ And in your tests:
|
|
29
29
|
This gives you two posts to test against. Both posts will have the same
|
30
30
|
author, right down to the database id.
|
31
31
|
|
32
|
+
Look here for more documentation:
|
33
|
+
http://blog.absurd.li/2011/09/28/introducing_floor_manager.html
|
34
|
+
|
32
35
|
INSTALLATION
|
33
36
|
|
34
37
|
Either by installing from http://github.com/kschiess/floor_manager as a rails
|
@@ -43,7 +46,7 @@ Then just require it atop of your floor definitions as follows:
|
|
43
46
|
|
44
47
|
COMPATIBILITY
|
45
48
|
|
46
|
-
Has been tested with Ruby 1.9.2 and ActiveRecord/DataMapper.
|
49
|
+
Has been tested with Ruby 1.9.2/1.8.7 MRI and ActiveRecord/DataMapper.
|
47
50
|
|
48
51
|
STATUS
|
49
52
|
|
data/lib/floor_manager.rb
CHANGED
@@ -5,10 +5,10 @@ class FloorManager
|
|
5
5
|
|
6
6
|
# Defines a new environment under the supervision of the floor manager.
|
7
7
|
#
|
8
|
-
def define(environment_name, &block)
|
8
|
+
def define(environment_name, options={}, &block)
|
9
9
|
@floors ||= {}
|
10
10
|
|
11
|
-
@floors[environment_name] = FloorManager::Floor.from_dsl(&block)
|
11
|
+
@floors[environment_name] = FloorManager::Floor.from_dsl(options, &block)
|
12
12
|
end
|
13
13
|
|
14
14
|
# Returns an instance of the environment.
|
@@ -3,12 +3,13 @@ module FloorManager::Employee
|
|
3
3
|
|
4
4
|
# Base class for employees. No instances of this should be created.
|
5
5
|
class Template
|
6
|
-
def self.from_dsl(klass_name, &block)
|
7
|
-
new(klass_name).tap { |emp| DSL.new(emp, &block) }
|
6
|
+
def self.from_dsl(klass_name, namespace=nil, &block)
|
7
|
+
new(klass_name, namespace).tap { |emp| DSL.new(emp, &block) }
|
8
8
|
end
|
9
9
|
|
10
|
-
def initialize(klass_name)
|
10
|
+
def initialize(klass_name, namespace=nil)
|
11
11
|
@klass_name = klass_name
|
12
|
+
@namespace = namespace
|
12
13
|
@attributes = Hash.new { |h,k| h[k] = Array.new }
|
13
14
|
end
|
14
15
|
|
@@ -56,7 +57,7 @@ module FloorManager::Employee
|
|
56
57
|
|
57
58
|
def produce_instance
|
58
59
|
name = camelcase(@klass_name.to_s)
|
59
|
-
Object.const_get(name).new
|
60
|
+
(@namespace || Object).const_get(name).new
|
60
61
|
end
|
61
62
|
def camelcase(str)
|
62
63
|
str.gsub(%r((^|_)\w)) { |match| match[-1].upcase }
|
data/lib/floor_manager/floor.rb
CHANGED
@@ -5,27 +5,30 @@
|
|
5
5
|
#
|
6
6
|
class FloorManager::Floor
|
7
7
|
class DSL
|
8
|
-
def initialize(&block)
|
8
|
+
def initialize(options, &block)
|
9
|
+
@namespace = options[:namespace] || nil
|
9
10
|
@floor = FloorManager::Floor.new
|
10
11
|
instance_eval(&block)
|
11
12
|
end
|
12
13
|
|
13
14
|
def one(name, opts={}, &block)
|
14
15
|
klass_name = opts[:class] || name
|
15
|
-
@floor.employees[name.to_sym] =
|
16
|
+
@floor.employees[name.to_sym] =
|
17
|
+
FloorManager::Employee::Unique.from_dsl(klass_name, @namespace, &block)
|
16
18
|
end
|
17
19
|
|
18
20
|
def any(name, opts={}, &block)
|
19
21
|
klass_name = opts[:class] || name
|
20
|
-
@floor.employees[name.to_sym] =
|
22
|
+
@floor.employees[name.to_sym] =
|
23
|
+
FloorManager::Employee::Template.from_dsl(klass_name, @namespace, &block)
|
21
24
|
end
|
22
25
|
|
23
26
|
def object
|
24
27
|
@floor
|
25
28
|
end
|
26
29
|
end
|
27
|
-
def self.from_dsl(&block)
|
28
|
-
DSL.new(&block).object
|
30
|
+
def self.from_dsl(options, &block)
|
31
|
+
DSL.new(options, &block).object
|
29
32
|
end
|
30
33
|
|
31
34
|
attr_reader :employees
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: floor_manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
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:
|
12
|
+
date: 2012-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: blankslate
|
16
|
-
requirement: &
|
16
|
+
requirement: &70180139114780 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 2.1.2.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70180139114780
|
25
25
|
description:
|
26
26
|
email: kaspar.schiess@absurd.li
|
27
27
|
executables: []
|
@@ -53,7 +53,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
53
53
|
version: '0'
|
54
54
|
segments:
|
55
55
|
- 0
|
56
|
-
hash:
|
56
|
+
hash: 1777111506648327494
|
57
57
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
58
|
none: false
|
59
59
|
requirements:
|
@@ -62,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
62
62
|
version: '0'
|
63
63
|
requirements: []
|
64
64
|
rubyforge_project:
|
65
|
-
rubygems_version: 1.8.
|
65
|
+
rubygems_version: 1.8.17
|
66
66
|
signing_key:
|
67
67
|
specification_version: 3
|
68
68
|
summary: Allows creation of a whole graph of objects on the fly during testing
|