Skip to content

Commit 212d73e

Browse files
committed
added to_partial_path method to base
1 parent 3fdc4fc commit 212d73e

File tree

3 files changed

+37
-12
lines changed

3 files changed

+37
-12
lines changed

lib/spark_api/models/base.rb

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,19 @@ def to_param
129129
attributes['Id']
130130
end
131131

132+
def to_partial_path
133+
"#{underscore(resource_pluralized)}/#{underscore(self.class.name.split('::').last)}"
134+
end
135+
136+
# can be overridden
137+
def resource_pluralized
138+
resource = self.class.name.split('::').last
139+
unless resource.split('').last == "s"
140+
resource = resource + "s"
141+
end
142+
resource
143+
end
144+
132145
protected
133146

134147
def write_attribute(attribute, value)
@@ -139,6 +152,16 @@ def write_attribute(attribute, value)
139152
end
140153
end
141154

155+
private
156+
157+
def underscore(string)
158+
string.to_s.gsub(/::/, '/').
159+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
160+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
161+
tr("-", "_").
162+
downcase
163+
end
164+
142165
end
143166
end
144167
end

lib/spark_api/models/concerns/savable.rb

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,6 @@ def update_attributes_after_create(result)
5959
attributes.merge! result
6060
end
6161

62-
# can be overridden
63-
def resource_pluralized
64-
resource = self.class.name.split('::').last
65-
unless resource.split('').last == "s"
66-
resource = resource + "s"
67-
end
68-
resource
69-
end
70-
7162
end
7263

7364
end

spec/unit/spark_api/models/base_spec.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
require './spec/spec_helper'
22

33
# Sample resource models for testing the base class
4-
class MyExampleModel < Base
5-
self.element_name = "example"
6-
self.prefix = "/test/"
4+
module SparkApi
5+
module Models
6+
class MyExampleModel < Base
7+
self.element_name = "example"
8+
self.prefix = "/test/"
9+
end
10+
end
711
end
812

913
class MyDefaultModel < Base
@@ -153,4 +157,11 @@ class MyDefaultModel < Base
153157

154158
end
155159

160+
describe "to_partial_path" do
161+
it "should return the partial path" do
162+
model = MyExampleModel.new()
163+
model.to_partial_path.should eq("my_example_models/my_example_model")
164+
end
165+
end
166+
156167
end

0 commit comments

Comments
 (0)