pagemodels 0.1.0 → 0.1.1
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/lib/page_models/core.rb
CHANGED
@@ -9,5 +9,7 @@ module PageModels
|
|
9
9
|
args = args.scan(/"([^"]+)"/).map(&:first)
|
10
10
|
page_model_class_name = page.gsub(/(?:^|[^\w])([a-z])/) { $1.upcase }
|
11
11
|
Kernel.const_get(page_model_class_name).new(*args)
|
12
|
+
rescue NameError
|
13
|
+
raise MissingPageModelError.new(page_model_class_name)
|
12
14
|
end
|
13
15
|
end
|
data/lib/page_models/errors.rb
CHANGED
@@ -7,4 +7,10 @@ module PageModels
|
|
7
7
|
super("#{page_model.class} must implement ##{method}.")
|
8
8
|
end
|
9
9
|
end
|
10
|
+
|
11
|
+
class MissingPageModelError < StandardError
|
12
|
+
def initialize(klass)
|
13
|
+
super("The page model class for #{klass} has not yet been written. You will need to create 'class #{klass} < PageModels:: Base'")
|
14
|
+
end
|
15
|
+
end
|
10
16
|
end
|
data/lib/page_models/version.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + "../../spec_helper")
|
2
|
+
|
3
|
+
class MyTestPage < PageModels::Base
|
4
|
+
attr_accessor :args
|
5
|
+
def initialize(*args)
|
6
|
+
@args = args
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe PageModels do
|
11
|
+
describe "creating instances from cucumber (or similar) text" do
|
12
|
+
it "should create an instance with no args" do
|
13
|
+
page_model = PageModels.create("my test page", "")
|
14
|
+
page_model.args.should == []
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should create an instance with 1..n args" do
|
18
|
+
page_model = PageModels.create("my test page", 'with "some" additional "arguments" denoted by "quotes"')
|
19
|
+
page_model.args.should == ["some", "arguments", "quotes"]
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should raise a helpful error when the class does not exist" do
|
23
|
+
lambda { page_model = PageModels.create("not real page", "") }.should raise_error(PageModels::MissingPageModelError)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: pagemodels
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Rick Grundy
|
@@ -83,6 +83,7 @@ files:
|
|
83
83
|
- pagemodels.gemspec
|
84
84
|
- spec/page_models/base_spec.rb
|
85
85
|
- spec/page_models/configuration_spec.rb
|
86
|
+
- spec/page_models/core_spec.rb
|
86
87
|
- spec/spec_helper.rb
|
87
88
|
has_rdoc: true
|
88
89
|
homepage: http://www.github.com/rickgrundy/pagemodels
|
@@ -115,4 +116,5 @@ summary: Page models for your browser driving acceptance tests with optional int
|
|
115
116
|
test_files:
|
116
117
|
- spec/page_models/base_spec.rb
|
117
118
|
- spec/page_models/configuration_spec.rb
|
119
|
+
- spec/page_models/core_spec.rb
|
118
120
|
- spec/spec_helper.rb
|