rails-api 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f2ba43cdee06ac56bfcff4cb92005713f164f3db
4
- data.tar.gz: 3f5533c7e3dae082eaaf231fdd0141b963737bd0
3
+ metadata.gz: b28c4566c34870ed999653a0e313daf06bd1b0da
4
+ data.tar.gz: f7c2d51b73e60f0f557e93c7f672b0087a4751c3
5
5
  SHA512:
6
- metadata.gz: 8c8b3bcba2d10b1af75eed99f299ce893aad0c588c94a6f776530a908d1d9dc45d01a6d67f9220912ded69a2d2778d6aeefb2e69532bcf4a08d12787c8592c0d
7
- data.tar.gz: 7ac43d93cad6f886c13128569d695b6566f8403f11f4b64feaec79d2cdc52cb9b64c271529191db2e3039896ccd3660a9990b2ed24203745936777d30ef6a038
6
+ metadata.gz: 9dc88bdd19ab2495b8e53e52b4431474e9e9f112177ec6d6a5cbf6248e6a764b921e27b3d19a231431a69b622fa83bde76a22c94806d31db8fbfc38fab2bd84e
7
+ data.tar.gz: 988cec2b4327f322fbcb1c365e06c23708d0e92bf4272b099b3fc73a7dfae234acf8fdca925c2cfaf4f76a39dc8a7b840c4326c856c0cc3f9c46739267ea9886
data/README.md CHANGED
@@ -131,7 +131,7 @@ class ApplicationController < ActionController::API
131
131
  end
132
132
  ```
133
133
 
134
- And comment out the `protect_from_forgery` call if you are using it.
134
+ And comment out the `protect_from_forgery` call if you are using it. (You aren't using cookie-based authentication for your API, are you?)
135
135
 
136
136
  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.
137
137
 
@@ -220,7 +220,7 @@ Some common modules you might want to add:
220
220
 
221
221
  * *AbstractController::Translation*: Support for the *l* and *t* localization and translation methods. These delegate to *I18n.translate* and *I18n.localize*.
222
222
  * *ActionController::HttpAuthentication::Basic::ControllerMethods* (or *Digest* or *Token*): Support for basic, digest or token HTTP authentication.
223
- * *AbstractController::Layouts*: Support for layouts when rendering.
223
+ * *ActionView::Layouts*: Support for layouts when rendering.
224
224
  * *ActionController::MimeResponds* (and *ActionController::ImplicitRender* for Rails 4): Support for content negotiation (*respond_to*, *respond_with*).
225
225
  * *ActionController::Cookies*: Support for *cookies*, which includes support for signed and encrypted cookies. This requires the cookie middleware.
226
226
 
@@ -1,3 +1,4 @@
1
+ require 'rails/version'
1
2
  require 'rails-api/version'
2
3
  require 'rails-api/action_controller/api'
3
4
  require 'rails-api/application'
@@ -155,6 +155,10 @@ module ActionController
155
155
  include mod
156
156
  end
157
157
 
158
+ def self.protected_instance_variables
159
+ Set.new
160
+ end
161
+
158
162
  if Rails::VERSION::MAJOR >= 4
159
163
  include StrongParameters
160
164
  end
@@ -1,15 +1,16 @@
1
- require 'rails/version'
2
1
  require 'rails/application'
3
2
  require 'rails-api/public_exceptions'
4
3
  require 'rails-api/application/default_rails_four_middleware_stack'
5
4
 
6
5
  module Rails
7
6
  class Application < Engine
7
+ alias_method :rails_default_middleware_stack, :default_middleware_stack
8
+
8
9
  def default_middleware_stack
9
10
  if Rails::API.rails4?
10
11
  DefaultRailsFourMiddlewareStack.new(self, config, paths).build_stack
11
12
  else
12
- rails_three_stack
13
+ rails_3_stack
13
14
  end
14
15
  end
15
16
 
@@ -37,7 +38,7 @@ module Rails
37
38
  setup_generators!
38
39
  end
39
40
 
40
- def rails_three_stack
41
+ def rails_3_stack
41
42
  ActionDispatch::MiddlewareStack.new.tap do |middleware|
42
43
  if rack_cache = config.action_controller.perform_caching && config.action_dispatch.rack_cache
43
44
  require "action_dispatch/http/rack_cache"
@@ -4,9 +4,11 @@ source 'https://rubygems.org'
4
4
  <%= rails_gemfile_entry %>
5
5
  <%- else -%>
6
6
  <%- rails_gemfile_entry.each do |entry| -%>
7
+ <%- if entry.respond_to?(:name) %>
7
8
  gem '<%= entry.name -%>', '<%= entry.version -%>'
8
9
  <%- end -%>
9
10
  <%- end -%>
11
+ <%- end -%>
10
12
 
11
13
  gem 'rails-api'
12
14
 
@@ -15,7 +17,7 @@ gem 'rails-api'
15
17
  <%- else -%>
16
18
  gem 'spring', :group => :development
17
19
 
18
- <%- if database_gemfile_entry -%>
20
+ <%- if database_gemfile_entry && database_gemfile_entry.respond_to?(:name) %>
19
21
  gem '<%= database_gemfile_entry.name -%>'
20
22
  <%- end -%>
21
23
  <%- end -%>
@@ -19,7 +19,7 @@ class <%= controller_class_name %>Controller < ApplicationController
19
19
  # POST <%= route_url %>
20
20
  # POST <%= route_url %>.json
21
21
  def create
22
- @<%= singular_table_name %> = <%= orm_class.build(class_name, "params[:#{singular_table_name}]") %>
22
+ @<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
23
23
 
24
24
  if @<%= orm_instance.save %>
25
25
  render json: <%= "@#{singular_table_name}" %>, status: :created, location: <%= "@#{singular_table_name}" %>
@@ -33,7 +33,7 @@ class <%= controller_class_name %>Controller < ApplicationController
33
33
  def update
34
34
  @<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
35
35
 
36
- if @<%= Rails::API.rails4? ? orm_instance.update("params[:#{singular_table_name}]") : orm_instance.update_attributes("params[:#{singular_table_name}]") %>
36
+ if @<%= Rails::API.rails4? ? orm_instance.update("#{singular_table_name}_params") : orm_instance.update_attributes("params[:#{singular_table_name}]") %>
37
37
  head :no_content
38
38
  else
39
39
  render json: <%= "@#{orm_instance.errors}" %>, status: :unprocessable_entity
@@ -48,5 +48,15 @@ class <%= controller_class_name %>Controller < ApplicationController
48
48
 
49
49
  head :no_content
50
50
  end
51
+
52
+ private
53
+
54
+ def <%= "#{singular_table_name}_params" %>
55
+ <%- if attributes_names.empty? -%>
56
+ params[:<%= singular_table_name %>]
57
+ <%- else -%>
58
+ params.require(:<%= singular_table_name %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>)
59
+ <%- end -%>
60
+ end
51
61
  end
52
62
  <% end -%>
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module API
3
- VERSION = '0.2.1'
3
+ VERSION = '0.3.0'
4
4
  end
5
5
  end
@@ -47,7 +47,7 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
47
47
  end
48
48
 
49
49
  assert_instance_method :create, content do |m|
50
- assert_match(/@product_line = ProductLine\.new\(params\[:product_line\]\)/, m)
50
+ assert_match(/@product_line = ProductLine\.new\(product_line_params\)/, m)
51
51
  assert_match(/@product_line\.save/, m)
52
52
  assert_match(/@product_line\.errors/, m)
53
53
  end
@@ -55,9 +55,9 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
55
55
  assert_instance_method :update, content do |m|
56
56
  assert_match(/@product_line = ProductLine\.find\(params\[:id\]\)/, m)
57
57
  if rails4?
58
- assert_match(/@product_line\.update\(params\[:product_line\]\)/, m)
58
+ assert_match(/@product_line\.update\(product_line_params\)/, m)
59
59
  else
60
- assert_match(/@product_line\.update_attributes\(params\[:product_line\]\)/, m)
60
+ assert_match(/@product_line\.update_attributes\(product_line_params\)/, m)
61
61
  end
62
62
  assert_match(/@product_line\.errors/, m)
63
63
  end
@@ -66,6 +66,10 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase
66
66
  assert_match(/@product_line = ProductLine\.find\(params\[:id\]\)/, m)
67
67
  assert_match(/@product_line\.destroy/, m)
68
68
  end
69
+
70
+ assert_instance_method :product_line_params, content do |m|
71
+ assert_match(/params\.require\(:product_line\)\.permit\(:title, :product_id, :user_id\)/, m)
72
+ end
69
73
  end
70
74
 
71
75
  assert_file "test/#{generated_test_functional_dir}/product_lines_controller_test.rb" do |test|
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Santiago Pastorino and Carlos Antonio da Silva
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-09 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -120,17 +120,17 @@ signing_key:
120
120
  specification_version: 4
121
121
  summary: Rails for API only Applications
122
122
  test_files:
123
+ - test/test_helper.rb
123
124
  - test/api_application/api_application_test.rb
124
- - test/api_controller/action_methods_test.rb
125
- - test/api_controller/conditional_get_test.rb
126
- - test/api_controller/data_streaming_test.rb
127
- - test/api_controller/force_ssl_test.rb
128
- - test/api_controller/redirect_to_test.rb
129
- - test/api_controller/renderers_test.rb
130
- - test/api_controller/url_for_test.rb
131
- - test/generators/app_generator_test.rb
132
125
  - test/generators/fixtures/routes.rb
133
- - test/generators/generators_test_helper.rb
134
126
  - test/generators/resource_generator_test.rb
127
+ - test/generators/generators_test_helper.rb
128
+ - test/generators/app_generator_test.rb
135
129
  - test/generators/scaffold_generator_test.rb
136
- - test/test_helper.rb
130
+ - test/api_controller/conditional_get_test.rb
131
+ - test/api_controller/url_for_test.rb
132
+ - test/api_controller/renderers_test.rb
133
+ - test/api_controller/force_ssl_test.rb
134
+ - test/api_controller/redirect_to_test.rb
135
+ - test/api_controller/data_streaming_test.rb
136
+ - test/api_controller/action_methods_test.rb