rails-api 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 200603c563a12a084abd7f3f46fd12ba552a5564
4
+ data.tar.gz: c757f33c4958d7b161f5b7fd0f744ba61503b48b
5
+ SHA512:
6
+ metadata.gz: 421034d4885439e69a73e417e171dfaf5e8c3fedaca8e90182e0865cbd2d3502f03b25243e9db47084444891f33767689072f309118b88625ca66893dc81f75f
7
+ data.tar.gz: fbe970847a57d9ba05c9bbfd21016a73bece79ee71a9c0a87b1a7ebcc9e174cbcf5f70c3903dc8abf0d31c4977816f8049c59c587373c013da00173f94e081fb
data/README.md CHANGED
@@ -54,7 +54,6 @@ While you could obviously build these up in terms of existing Rack middlewares,
54
54
  * Resourceful Routing: If you're building a RESTful JSON API, you want to be using the Rails router. Clean and conventional mapping from HTTP to controllers means not having to spend time thinking about how to model your API in terms of HTTP.
55
55
  * URL Generation: The flip side of routing is URL generation. A good API based on HTTP includes URLs (see [the GitHub gist API](http://developer.github.com/v3/gists/) for an example).
56
56
  * Header and Redirection Responses: `head :no_content` and `redirect_to user_url(current_user)` come in handy. Sure, you could manually add the response headers, but why?
57
- * Caching: Rails provides page, action and fragment caching. Fragment caching is especially helpful when building up a nested JSON object.
58
57
  * Basic, Digest and Token Authentication: Rails comes with out-of-the-box support for three kinds of HTTP authentication.
59
58
  * Instrumentation: Rails 3.0 added an instrumentation API that will trigger registered handlers for a variety of events, such as action processing, sending a file or data, redirection, and database queries. The payload of each event comes with relevant information (for the action processing event, the payload includes the controller, action, params, request format, request method and the request's full path).
60
59
  * Generators: This may be passé for advanced Rails users, but it can be nice to generate a resource and get your model, controller, test stubs, and routes created for you in a single command.
@@ -68,6 +67,8 @@ Of course, the Rails boot process also glues together all registered components.
68
67
 
69
68
  If you're building a Rails application that will be an API server first and foremost, you can start with a more limited subset of Rails and add in features as needed.
70
69
 
70
+ **NOTE**: rails-api only supports Ruby 1.9.3 and above.
71
+
71
72
  #### For new apps
72
73
 
73
74
  Install the gem if you haven't already:
@@ -109,6 +110,10 @@ And comment out the `protect_from_forgery` call if you are using it.
109
110
 
110
111
  If you want to use the Rails default middleware stack (avoid the reduction that rails-api does), you can just add config.api_only = false to config/application.rb file.
111
112
 
113
+ ### Serialization
114
+
115
+ We suggest using [ActiveModel::Serializers][ams] to deserialize your ActiveModel/ActiveRecord objects into the desired response format (e.g. JSON).
116
+
112
117
  ### Choosing Middlewares
113
118
 
114
119
  An API application comes with the following middlewares by default.
@@ -142,7 +147,7 @@ Rails ships with a number of other middlewares that you might want to use in an
142
147
  * *ActionDispatch::Cookies*: Supports the *cookie* method in *ActionController*, including support for signed and encrypted cookies.
143
148
  * *ActionDispatch::Flash*: Supports the *flash* mechanism in *ActionController*.
144
149
  * *ActionDispatch::BestStandards*: Tells Internet Explorer to use the most standards-compliant available renderer. In production mode, if ChromeFrame is available, use ChromeFrame.
145
- * Session Management: If a *config.session_store* is supplied, this middleware makes the session available as the *session* method in *ActionController*.
150
+ * Session Management: If a *config.session_store* is supplied and *config.api_only = false*, this middleware makes the session available as the *session* method in *ActionController*.
146
151
 
147
152
  Any of these middlewares can be added via:
148
153
 
@@ -217,3 +222,5 @@ MIT License.
217
222
  ## Mailing List
218
223
 
219
224
  https://groups.google.com/forum/?fromgroups#!forum/rails-api-core
225
+
226
+ [ams]: https://github.com/rails-api/active_model_serializers
@@ -7,7 +7,7 @@ module Rails
7
7
  return if options[:actions].present?
8
8
  route_config = regular_class_path.collect{ |namespace| "namespace :#{namespace} do " }.join(" ")
9
9
  route_config << "resources :#{file_name.pluralize}"
10
- route_config << ", except: :edit"
10
+ route_config << ", except: [:new, :edit]"
11
11
  route_config << " end" * regular_class_path.size
12
12
  route route_config
13
13
  end
@@ -1,3 +1,11 @@
1
1
  require 'rails-api/version'
2
2
  require 'rails-api/action_controller/api'
3
3
  require 'rails-api/application'
4
+
5
+ module Rails
6
+ module API
7
+ def self.rails4?
8
+ Rails::VERSION::MAJOR == 4
9
+ end
10
+ end
11
+ end
@@ -84,7 +84,7 @@ module ActionController
84
84
  class API < Metal
85
85
  abstract!
86
86
 
87
- module Compabitility
87
+ module Compatibility
88
88
  def cache_store; end
89
89
  def cache_store=(*); end
90
90
  def assets_dir=(*); end
@@ -101,7 +101,7 @@ module ActionController
101
101
  def helper(*); end
102
102
  end
103
103
 
104
- extend Compabitility
104
+ extend Compatibility
105
105
 
106
106
  # Shortcut helper that returns all the ActionController::API modules except the ones passed in the argument:
107
107
  #
@@ -5,7 +5,7 @@ require 'rails-api/public_exceptions'
5
5
  module Rails
6
6
  class Application < Engine
7
7
  def default_middleware_stack
8
- if Rails.version =~ /4\..\../
8
+ if Rails::API.rails4?
9
9
  rails_four_stack
10
10
  else
11
11
  rails_three_stack
@@ -24,6 +24,7 @@ module Rails
24
24
 
25
25
  generators.rails({
26
26
  :helper => false,
27
+ :assets => false,
27
28
  :stylesheets => false,
28
29
  :stylesheet_engine => nil,
29
30
  :template_engine => nil
@@ -72,7 +73,6 @@ module Rails
72
73
 
73
74
  middleware.use ::Rack::Lock unless config.cache_classes
74
75
  middleware.use ::Rack::Runtime
75
- middleware.use ::Rack::MethodOverride
76
76
  middleware.use ::ActionDispatch::RequestId
77
77
  middleware.use ::Rails::Rack::Logger, config.log_tags # must come after Rack::MethodOverride to properly log overridden methods
78
78
  middleware.use ::ActionDispatch::ShowExceptions, config.exceptions_app || ActionDispatch::PublicExceptions.new(Rails.public_path)
@@ -84,24 +84,11 @@ module Rails
84
84
  end
85
85
 
86
86
  middleware.use ::ActionDispatch::Callbacks
87
- middleware.use ::ActionDispatch::Cookies
88
-
89
- if config.session_store
90
- if config.force_ssl && !config.session_options.key?(:secure)
91
- config.session_options[:secure] = true
92
- end
93
- middleware.use config.session_store, config.session_options
94
- middleware.use ::ActionDispatch::Flash
95
- end
96
87
 
97
88
  middleware.use ::ActionDispatch::ParamsParser
98
89
  middleware.use ::Rack::Head
99
90
  middleware.use ::Rack::ConditionalGet
100
91
  middleware.use ::Rack::ETag, "no-cache"
101
-
102
- if config.action_dispatch.best_standards_support
103
- middleware.use ::ActionDispatch::BestStandardsSupport, config.action_dispatch.best_standards_support
104
- end
105
92
  end
106
93
  end
107
94
 
@@ -0,0 +1,19 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+
6
+ # Make sure the secret is at least 30 characters and all random,
7
+ # no regular words or you'll be exposed to dictionary attacks.
8
+ # You can use `rake secret` to generate a secure secret key.
9
+
10
+ # Make sure your secret_key_base is kept private
11
+ # if you're sharing your code publicly.
12
+
13
+ # Although this is not needed for an api-only application, rails4
14
+ # requires secret_key_base or secret_toke to be defined, otherwise an
15
+ # error is raised.
16
+ # Using secret_token for rails3 compatibility. Change to secret_key_base
17
+ # to avoid deprecation warning.
18
+ # Can be safely removed in a rails3 api-only application.
19
+ <%= app_const %>.config.secret_token = '<%= app_secret %>'
@@ -16,14 +16,6 @@ class <%= controller_class_name %>Controller < ApplicationController
16
16
  render json: <%= "@#{singular_table_name}" %>
17
17
  end
18
18
 
19
- # GET <%= route_url %>/new
20
- # GET <%= route_url %>/new.json
21
- def new
22
- @<%= singular_table_name %> = <%= orm_class.build(class_name) %>
23
-
24
- render json: <%= "@#{singular_table_name}" %>
25
- end
26
-
27
19
  # POST <%= route_url %>
28
20
  # POST <%= route_url %>.json
29
21
  def create
@@ -41,7 +33,7 @@ class <%= controller_class_name %>Controller < ApplicationController
41
33
  def update
42
34
  @<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
43
35
 
44
- if @<%= orm_instance.update_attributes("params[:#{singular_table_name}]") %>
36
+ if @<%= Rails::API.rails4? ? orm_instance.update("params[:#{singular_table_name}]") : orm_instance.update_attributes("params[:#{singular_table_name}]") %>
45
37
  head :no_content
46
38
  else
47
39
  render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity
@@ -12,11 +12,6 @@ class <%= controller_class_name %>ControllerTest < ActionController::TestCase
12
12
  assert_not_nil assigns(:<%= table_name %>)
13
13
  end
14
14
 
15
- test "should get new" do
16
- get :new
17
- assert_response :success
18
- end
19
-
20
15
  test "should create <%= singular_table_name %>" do
21
16
  assert_difference('<%= class_name %>.count') do
22
17
  post :create, <%= "#{singular_table_name}: { #{attributes_hash} }" %>
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module API
3
- VERSION = "0.0.3"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -2,8 +2,6 @@ require 'test_helper'
2
2
  require 'action_controller/railtie'
3
3
  require 'rack/test'
4
4
 
5
- app.initialize!
6
-
7
5
  class OmgController < ActionController::API
8
6
  def index
9
7
  render :text => "OMG"
@@ -13,6 +11,8 @@ end
13
11
  class ApiApplicationTest < ActiveSupport::TestCase
14
12
  include ::Rack::Test::Methods
15
13
 
14
+ app.initialize!
15
+
16
16
  def test_boot_api_app
17
17
  get "/omg"
18
18
  assert_equal 200, last_response.status
@@ -54,7 +54,6 @@ class ApiApplicationTest < ActiveSupport::TestCase
54
54
  "Rack::Lock",
55
55
  "ActiveSupport::Cache::Strategy::LocalCache",
56
56
  "Rack::Runtime",
57
- "Rack::MethodOverride",
58
57
  "ActionDispatch::RequestId",
59
58
  "Rails::Rack::Logger",
60
59
  "ActionDispatch::ShowExceptions",
@@ -62,14 +61,10 @@ class ApiApplicationTest < ActiveSupport::TestCase
62
61
  "ActionDispatch::RemoteIp",
63
62
  "ActionDispatch::Reloader",
64
63
  "ActionDispatch::Callbacks",
65
- "ActionDispatch::Cookies",
66
- "ActionDispatch::Session::CookieStore",
67
- "ActionDispatch::Flash",
68
64
  "ActionDispatch::ParamsParser",
69
65
  "Rack::Head",
70
66
  "Rack::ConditionalGet",
71
67
  "Rack::ETag",
72
- "ActionDispatch::BestStandardsSupport"
73
68
  ]
74
69
  end
75
70
  end
@@ -51,7 +51,7 @@ class ConditionalGetApiTest < ActionController::TestCase
51
51
  @request.if_modified_since = @last_modified
52
52
  get :one
53
53
  assert_equal 304, @response.status.to_i
54
- assert_blank @response.body
54
+ assert @response.body.blank?
55
55
  assert_equal @last_modified, @response.headers['Last-Modified']
56
56
  end
57
57
  end
@@ -28,28 +28,37 @@ class AppGeneratorTest < Rails::Generators::TestCase
28
28
  private
29
29
 
30
30
  def default_files
31
- %W(.gitignore
32
- Gemfile
33
- Rakefile
34
- config.ru
35
- app/controllers
36
- app/mailers
37
- app/models
38
- config/environments
39
- config/initializers
40
- config/locales
41
- db
42
- doc
43
- lib
44
- lib/tasks
45
- lib/assets
46
- log
47
- script/rails
48
- test/fixtures
49
- test/#{generated_test_funcional_dir}
50
- test/integration
51
- test/performance
52
- test/#{generated_test_unit_dir})
31
+ files = %W(
32
+ .gitignore
33
+ Gemfile
34
+ Rakefile
35
+ config.ru
36
+ app/controllers
37
+ app/mailers
38
+ app/models
39
+ config/environments
40
+ config/initializers
41
+ config/locales
42
+ db
43
+ lib
44
+ lib/tasks
45
+ lib/assets
46
+ log
47
+ test/fixtures
48
+ test/#{generated_test_funcional_dir}
49
+ test/integration
50
+ test/#{generated_test_unit_dir}
51
+ )
52
+ files.concat rails4? ? default_files_rails4 : default_files_rails3
53
+ files
54
+ end
55
+
56
+ def default_files_rails3
57
+ %w(script/rails)
58
+ end
59
+
60
+ def default_files_rails4
61
+ %w(bin/bundle bin/rails bin/rake)
53
62
  end
54
63
 
55
64
  def skipped_files
@@ -11,7 +11,7 @@ class ResourceGeneratorTest < Rails::Generators::TestCase
11
11
  run_generator
12
12
 
13
13
  assert_file "config/routes.rb" do |route|
14
- assert_match(/resources :accounts, except: :edit$/, route)
14
+ assert_match(/resources :accounts, except: \[:new, :edit\]$/, route)
15
15
  assert_no_match(/resources :accounts$/, route)
16
16
  end
17
17
  end
@@ -29,7 +29,7 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
29
29
 
30
30
  # Route
31
31
  assert_file "config/routes.rb" do |content|
32
- assert_match(/resources :product_lines, except: :edit$/, content)
32
+ assert_match(/resources :product_lines, except: \[:new, :edit\]$/, content)
33
33
  assert_no_match(/resource :product_lines$/, content)
34
34
  end
35
35
 
@@ -46,10 +46,6 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
46
46
  assert_match(/@product_line = ProductLine\.find\(params\[:id\]\)/, m)
47
47
  end
48
48
 
49
- assert_instance_method :new, content do |m|
50
- assert_match(/@product_line = ProductLine\.new/, m)
51
- end
52
-
53
49
  assert_instance_method :create, content do |m|
54
50
  assert_match(/@product_line = ProductLine\.new\(params\[:product_line\]\)/, m)
55
51
  assert_match(/@product_line\.save/, m)
@@ -58,7 +54,11 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
58
54
 
59
55
  assert_instance_method :update, content do |m|
60
56
  assert_match(/@product_line = ProductLine\.find\(params\[:id\]\)/, m)
61
- assert_match(/@product_line\.update_attributes\(params\[:product_line\]\)/, m)
57
+ if rails4?
58
+ assert_match(/@product_line\.update\(params\[:product_line\]\)/, m)
59
+ else
60
+ assert_match(/@product_line\.update_attributes\(params\[:product_line\]\)/, m)
61
+ end
62
62
  assert_match(/@product_line\.errors/, m)
63
63
  end
64
64
 
@@ -70,8 +70,13 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
70
70
 
71
71
  assert_file "test/#{generated_test_funcional_dir}/product_lines_controller_test.rb" do |test|
72
72
  assert_match(/class ProductLinesControllerTest < ActionController::TestCase/, test)
73
- assert_match(/post :create, product_line: \{ title: @product_line.title \}/, test)
74
- assert_match(/put :update, id: @product_line, product_line: \{ title: @product_line.title \}/, test)
73
+ if rails4?
74
+ assert_match(/post :create, product_line: \{ product_id: @product_line.product_id, title: @product_line.title, user_id: @product_line.user_id \}/, test)
75
+ assert_match(/put :update, id: @product_line, product_line: \{ product_id: @product_line.product_id, title: @product_line.title, user_id: @product_line.user_id \}/, test)
76
+ else
77
+ assert_match(/post :create, product_line: \{ title: @product_line.title \}/, test)
78
+ assert_match(/put :update, id: @product_line, product_line: \{ title: @product_line.title \}/, test)
79
+ end
75
80
  assert_no_match(/assert_redirected_to/, test)
76
81
  end
77
82
 
@@ -88,5 +93,6 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
88
93
  # Assets
89
94
  assert_no_file "app/assets/stylesheets/scaffold.css"
90
95
  assert_no_file "app/assets/stylesheets/product_lines.css"
96
+ assert_no_file "app/assets/javascripts/product_lines.js"
91
97
  end
92
98
  end
@@ -1,50 +1,57 @@
1
1
  # Configure Rails Environment
2
2
  ENV["RAILS_ENV"] = "test"
3
3
 
4
+ require 'bundler/setup'
4
5
  require 'rails'
5
6
  require 'rails/test_help'
6
7
  require 'rails-api'
7
8
 
8
9
  def rails4?
9
- Rails.version.start_with? '4'
10
+ Rails::API.rails4?
10
11
  end
11
12
 
12
- def app
13
- @@app ||= Class.new(Rails::Application) do
14
- config.active_support.deprecation = :stderr
15
- config.generators do |c|
16
- c.orm :active_record, :migration => true,
17
- :timestamps => true
18
-
19
- c.test_framework :test_unit, :fixture => true,
20
- :fixture_replacement => nil
21
-
22
- c.integration_tool :test_unit
23
- c.performance_tool :test_unit
13
+ class ActiveSupport::TestCase
14
+ def self.app
15
+ @@app ||= Class.new(Rails::Application) do
16
+ config.active_support.deprecation = :stderr
17
+ config.generators do |c|
18
+ c.orm :active_record, :migration => true,
19
+ :timestamps => true
20
+
21
+ c.test_framework :test_unit, :fixture => true,
22
+ :fixture_replacement => nil
23
+
24
+ c.integration_tool :test_unit
25
+ c.performance_tool :test_unit
26
+ end
27
+
28
+ if rails4?
29
+ config.eager_load = false
30
+ config.secret_key_base = 'abc123'
31
+ end
32
+
33
+ def self.name
34
+ 'TestApp'
35
+ end
24
36
  end
37
+ end
25
38
 
26
- if rails4?
27
- config.eager_load = false
28
- config.secret_key_base = 'abc123'
29
- end
39
+ def app
40
+ self.class.app
41
+ end
30
42
 
31
- def self.name
32
- 'TestApp'
33
- end
43
+ app.routes.append do
44
+ get ':controller(/:action)'
34
45
  end
35
- end
46
+ app.routes.finalize!
36
47
 
37
- app.routes.append do
38
- get ':controller(/:action)'
48
+ app.load_generators
39
49
  end
40
- app.routes.finalize!
41
50
 
42
51
  module ActionController
43
52
  class API
44
- include app.routes.url_helpers
53
+ include ActiveSupport::TestCase.app.routes.url_helpers
45
54
  end
46
55
  end
47
56
 
48
- app.load_generators
49
-
50
57
  Rails.logger = Logger.new("/dev/null")
metadata CHANGED
@@ -1,52 +1,46 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Santiago Pastorino and Carlos Antonio da Silva
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-18 00:00:00.000000000 Z
11
+ date: 2013-04-01 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: actionpack
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
- version: 3.2.6
19
+ version: 3.2.11
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
- version: 3.2.6
26
+ version: 3.2.11
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: railties
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
- version: 3.2.6
33
+ version: 3.2.11
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
- version: 3.2.6
40
+ version: 3.2.11
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: tzinfo
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,22 +55,21 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rails
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
- version: 3.2.6
61
+ version: 3.2.11
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
- version: 3.2.6
78
- description: ! "Rails::API is a subset of a normal Rails application,\n created
79
- for applications that don't require all\n functionality
80
- that a complete Rails application provides"
68
+ version: 3.2.11
69
+ description: |-
70
+ Rails::API is a subset of a normal Rails application,
71
+ created for applications that don't require all
72
+ functionality that a complete Rails application provides
81
73
  email:
82
74
  - <santiago@wyeworks.com>
83
75
  - <carlosantoniodasilva@gmail.com>
@@ -94,6 +86,7 @@ files:
94
86
  - lib/rails-api/generators/rails/app/app_generator.rb
95
87
  - lib/rails-api/public_exceptions.rb
96
88
  - lib/rails-api/templates/rails/app/app/controllers/application_controller.rb.tt
89
+ - lib/rails-api/templates/rails/app/config/initializers/secret_token.rb.tt
97
90
  - lib/rails-api/templates/rails/app/config/initializers/wrap_parameters.rb.tt
98
91
  - lib/rails-api/templates/rails/app/Gemfile
99
92
  - lib/rails-api/templates/rails/scaffold_controller/controller.rb
@@ -117,27 +110,26 @@ files:
117
110
  homepage: https://github.com/spastorino/rails-api
118
111
  licenses:
119
112
  - MIT
113
+ metadata: {}
120
114
  post_install_message:
121
115
  rdoc_options: []
122
116
  require_paths:
123
117
  - lib
124
118
  required_ruby_version: !ruby/object:Gem::Requirement
125
- none: false
126
119
  requirements:
127
- - - ! '>='
120
+ - - '>='
128
121
  - !ruby/object:Gem::Version
129
122
  version: '0'
130
123
  required_rubygems_version: !ruby/object:Gem::Requirement
131
- none: false
132
124
  requirements:
133
- - - ! '>='
125
+ - - '>='
134
126
  - !ruby/object:Gem::Version
135
127
  version: 1.3.6
136
128
  requirements: []
137
129
  rubyforge_project:
138
- rubygems_version: 1.8.23
130
+ rubygems_version: 2.0.0
139
131
  signing_key:
140
- specification_version: 3
132
+ specification_version: 4
141
133
  summary: Rails for API only Applications
142
134
  test_files:
143
135
  - test/api_application/api_application_test.rb