api_controller 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/README.rdoc CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  Genarator for controllers dedicated to custom APIs.
4
4
 
5
+ == Usage
6
+
7
+ `rails generate api_controller MODEL(plural, lowercase) [VERSION]
8
+
9
+ `rails generate api_controller people 2`
10
+ generates:
11
+ app/controllers/api/v2/person_api_controller.rb
12
+ test/functional/api/v2/person_api_controller.rb
13
+
14
+
5
15
  == Contributing to api_controller
6
16
 
7
17
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{api_controller}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Cody Frazer"]
12
- s.date = %q{2011-02-16}
12
+ s.date = %q{2011-02-17}
13
13
  s.description = %q{Genarator for controllers dedicated to custom APIs.}
14
14
  s.email = %q{cody.frazer@cph.org}
15
15
  s.extra_rdoc_files = [
@@ -2,7 +2,7 @@ Description:
2
2
  Generates an API controller with tests for a given controller.
3
3
 
4
4
  Example:
5
- rails generate api_controller Person 2
5
+ rails generate api_controller people 2
6
6
 
7
7
  This will create:
8
8
  app/controllers/api/v2/person_api_controller.rb
@@ -15,6 +15,10 @@ class ApiControllerGenerator < Rails::Generators::Base
15
15
  template 'api_controller_test.rb', "test/functional/#{structure}#{model}_api_test.rb"
16
16
  end
17
17
 
18
+ def adjust_routes
19
+ create_routes
20
+ end
21
+
18
22
  private
19
23
 
20
24
  def version
@@ -35,4 +39,21 @@ class ApiControllerGenerator < Rails::Generators::Base
35
39
  def make_dir(dir)
36
40
  Dir.mkdir dir unless File.directory?(dir)
37
41
  end
42
+
43
+ def create_routes
44
+ final = []
45
+ File.open("#{RAILS_ROOT}/config/routes.rb", "r+") do |file|
46
+ file.each do |line|
47
+ final << line
48
+ if line =~ /[\d]+?::Application.routes.draw/
49
+ final << <<-ROUTES
50
+ namespace :api do
51
+ namespace v#{version} do
52
+ resources :#{model}, :controller => '#{model}_api', :only => [:index, :show, :create, :update, :destroy]
53
+ ROUTES
54
+ end
55
+ end
56
+ file.puts final
57
+ end
58
+ end
38
59
  end
@@ -3,13 +3,25 @@ class Api::V<%= version %>::<%= model.capitalize %>ApiController < ApplicationCo
3
3
  # GET /api/v<%= version %>/<%= model %>
4
4
  # GET /api/v<%= version %>/<%= model %>.xml
5
5
  # GET /api/v<%= version %>/<%= model %>.json
6
- # def index
7
- # @<%= model %> = <%= model.classify %>.all
8
-
9
- # respond_to do |format|
10
- # format.xml {render :xml => @<%= model %>}
11
- # format.json {render :json => @<%= model %>}
12
- # end
13
- # end
6
+ def index
7
+ @<%= model %> = <%= model.classify %>.all
8
+
9
+ respond_to do |format|
10
+ format.xml {render :xml => @<%= model %>}
11
+ format.json {render :json => @<%= model %>}
12
+ end
13
+ end
14
+
15
+ # GET /api/v<%= version %>/<%= model %>/1
16
+ # GET /api/v<%= version %>/<%= model %>/1.xml
17
+ # GET /api/v<%= version %>/<%= model %>/1.json
18
+ def show
19
+ @<%= model.singularize %> = <%= model.classify %>.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.xml {render :xml => @<%= model.singularize %>}
23
+ format.json {render :json => @<%= model.singularize %>}
24
+ end
25
+ end
14
26
 
15
27
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_controller
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Cody Frazer
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-16 00:00:00 -06:00
18
+ date: 2011-02-17 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency