sinatra_resource 0.4.14 → 0.4.15

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 CHANGED
@@ -1 +1 @@
1
- 0.4.14
1
+ 0.4.15
data/lib/resource.rb CHANGED
@@ -93,7 +93,7 @@ module SinatraResource
93
93
  end
94
94
 
95
95
  # Specify the path. If not specified, SinatraResource will infer the path
96
- # from the resource class (see the +default_path+ method.)
96
+ # from the resource class (see the +set_default_path+ method.)
97
97
  #
98
98
  # This method is also useful for nested resources.
99
99
  #
@@ -257,7 +257,8 @@ module SinatraResource
257
257
  # @return [undefined]
258
258
  def set_default_path
259
259
  unless @resource_config[:path]
260
- @resource_config[:path] = self.to_s.split('::').last.downcase
260
+ suffix = self.to_s.split('::').last
261
+ @resource_config[:path] = Utility.underscore(suffix)
261
262
  end
262
263
  end
263
264
 
@@ -1,4 +1,5 @@
1
1
  base = File.dirname(__FILE__)
2
+ require base + '/utility'
2
3
  require base + '/exceptions'
3
4
  require base + '/builder'
4
5
  Dir.glob(base + '/builder/*.rb').each { |f| require f }
data/lib/utility.rb ADDED
@@ -0,0 +1,25 @@
1
+ module SinatraResource
2
+
3
+ module Utility
4
+
5
+ # The reverse of +camelize+. Makes an underscored, lowercase form from
6
+ # the expression in the string.
7
+ #
8
+ # @param [String] camel_cased_word
9
+ #
10
+ # @return [String]
11
+ #
12
+ # Example:
13
+ # "SourceGroup".underscore # => "source_group"
14
+ #
15
+ # (This method was adapted from ActiveSupport 2.3.5)
16
+ def self.underscore(camel_cased_word)
17
+ camel_cased_word.to_s.
18
+ gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
19
+ gsub(/([a-z\d])([A-Z])/,'\1_\2').
20
+ tr("-", "_").
21
+ downcase
22
+ end
23
+
24
+ end
25
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sinatra_resource}
8
- s.version = "0.4.14"
8
+ s.version = "0.4.15"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David James"]
12
- s.date = %q{2010-02-16}
12
+ s.date = %q{2010-02-18}
13
13
  s.description = %q{A DSL for creating RESTful actions with Sinatra and MongoMapper. It embraces the Resource Oriented Architecture as explained by Leonard Richardson and Sam Ruby.}
14
14
  s.email = %q{djames@sunlightfoundation.com}
15
15
  s.extra_rdoc_files = [
@@ -105,6 +105,7 @@ Gem::Specification.new do |s|
105
105
  "lib/resource.rb",
106
106
  "lib/roles.rb",
107
107
  "lib/sinatra_resource.rb",
108
+ "lib/utility.rb",
108
109
  "notes/keywords.mdown",
109
110
  "notes/permissions.mdown",
110
111
  "notes/questions.mdown",
@@ -115,6 +116,7 @@ Gem::Specification.new do |s|
115
116
  "sinatra_resource.gemspec",
116
117
  "spec/sinatra_resource_spec.rb",
117
118
  "spec/spec_helper.rb",
119
+ "spec/utility_spec.rb",
118
120
  "tasks/spec.rake",
119
121
  "tasks/yard.rake"
120
122
  ]
@@ -126,6 +128,7 @@ Gem::Specification.new do |s|
126
128
  s.test_files = [
127
129
  "spec/sinatra_resource_spec.rb",
128
130
  "spec/spec_helper.rb",
131
+ "spec/utility_spec.rb",
129
132
  "examples/datacatalog/app.rb",
130
133
  "examples/datacatalog/config/config.rb",
131
134
  "examples/datacatalog/lib/base.rb",
@@ -0,0 +1,16 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../lib/utility')
3
+
4
+ describe "Helpers" do
5
+
6
+ describe "underscore" do
7
+ it "Source" do
8
+ SinatraResource::Utility.underscore("Source").should == "source"
9
+ end
10
+
11
+ it "SourceGroup" do
12
+ SinatraResource::Utility.underscore("SourceGroup").should == "source_group"
13
+ end
14
+ end
15
+
16
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.14
4
+ version: 0.4.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - David James
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-16 00:00:00 -05:00
12
+ date: 2010-02-18 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -213,6 +213,7 @@ files:
213
213
  - lib/resource.rb
214
214
  - lib/roles.rb
215
215
  - lib/sinatra_resource.rb
216
+ - lib/utility.rb
216
217
  - notes/keywords.mdown
217
218
  - notes/permissions.mdown
218
219
  - notes/questions.mdown
@@ -223,6 +224,7 @@ files:
223
224
  - sinatra_resource.gemspec
224
225
  - spec/sinatra_resource_spec.rb
225
226
  - spec/spec_helper.rb
227
+ - spec/utility_spec.rb
226
228
  - tasks/spec.rake
227
229
  - tasks/yard.rake
228
230
  has_rdoc: true
@@ -256,6 +258,7 @@ summary: RESTful actions with Sinatra and MongoMapper
256
258
  test_files:
257
259
  - spec/sinatra_resource_spec.rb
258
260
  - spec/spec_helper.rb
261
+ - spec/utility_spec.rb
259
262
  - examples/datacatalog/app.rb
260
263
  - examples/datacatalog/config/config.rb
261
264
  - examples/datacatalog/lib/base.rb