api_helper 0.0.6 → 0.0.9

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: 4c9251a106ef4147f1bdeafd3c63c6bb772bcefe
4
- data.tar.gz: 3f4b4a7493bfe73371c3d9f0879263b367d8b14d
3
+ metadata.gz: c365d5a68f094eb8d390ae7b126f47ea8bc48c70
4
+ data.tar.gz: a450ec9db2270080b79d61a7d1d50af88be9ff10
5
5
  SHA512:
6
- metadata.gz: 994a9811ac0a139ceff2cc1c80af5e2503d41fb30d39ad2c9b3d32a1f1e37759133ee422dc1ce8e40e6c027c2fc82c68b877bbc2ec4b9a2f39813841075eed48
7
- data.tar.gz: 1eac3f4b577c4107ca7031d060f4390509d544f8a51ee13c27c5d2a2fbc2799ebef267bbd8582f853d770709a14b8773f971d5164bd6a4a16739ef7e480428d7
6
+ metadata.gz: 04ea4c190caf03cb2eba99fb542d59ce56052d1b77cb0f5335428f617a097181530e4a0ec5207d777b114b12b8ccea7ebf5ab173cd055b68c88a4b1c54f93a70
7
+ data.tar.gz: 7e0bb35d2464dc17ca87d4e81857e8310d33146c917a94f8df0b05808ef2423e7f80f00f3b3793e0558ea22197821e6646aa32b5ea68246e8a50e97a505d2f08
data/api_helper.gemspec CHANGED
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "appraisal"
24
24
  spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "simplecov"
26
+ spec.add_development_dependency "coveralls"
25
27
  spec.add_development_dependency "byebug"
26
28
  spec.add_development_dependency "activerecord"
27
29
  spec.add_development_dependency "sqlite3"
@@ -0,0 +1,29 @@
1
+ this = locals[:self_resource]
2
+
3
+ unless inclusion_field(this).blank?
4
+ inclusion_field(this).each_pair do |field_name, includable_field|
5
+ # use this if fieldset is used
6
+ # next if fieldset(this).present? && !fieldset(this).include?(field_name)
7
+
8
+ # include that child
9
+ if inclusion[this].include?(field_name)
10
+
11
+ child field_name.to_sym, root: field_name.to_sym, object_root: false do
12
+ template = (includable_field[:resource_name] || field_name).to_s.underscore.singularize
13
+ extends template
14
+ end
15
+
16
+ # not to include that child
17
+ else
18
+
19
+ node field_name do |obj|
20
+ if obj.try(includable_field[:id_field]).present?
21
+ obj.try(includable_field[:id_field])
22
+ else
23
+ foreign_key = obj.class.try("#{field_name}_foreign_key")
24
+ obj.try(foreign_key) if foreign_key.present?
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -269,9 +269,14 @@ module APIHelper::Includable
269
269
  def set_inclusion(resource, default_includes: [], permitted_includes: [])
270
270
  @inclusion ||= ActiveSupport::HashWithIndifferentAccess.new
271
271
  @inclusion_field ||= ActiveSupport::HashWithIndifferentAccess.new
272
+ @inclusion_specified ||= ActiveSupport::HashWithIndifferentAccess.new
272
273
  @inclusion[resource] = default_includes.map(&:to_s) if @inclusion[resource].blank? &&
273
274
  !@inclusion_specified[resource]
274
275
  @inclusion[resource] &= permitted_includes.map(&:to_s) if permitted_includes.present?
276
+
277
+ if @fieldset.is_a?(Hash) && @fieldset[resource].present?
278
+ @inclusion[resource] &= @fieldset[resource]
279
+ end
275
280
  end
276
281
 
277
282
  # View Helper to set the inclusion details
@@ -309,6 +314,24 @@ module APIHelper::Includable
309
314
  }
310
315
  end
311
316
 
317
+ # Getter for the data of includable fields
318
+ #
319
+ # Params:
320
+ #
321
+ # +resource+::
322
+ # +Symbol+ the resource name of inclusion data to retrieve
323
+ #
324
+ def inclusion_field(resource = nil)
325
+ # act as a traditional getter if no parameters specified
326
+ if resource.blank?
327
+ @inclusion_field ||= ActiveSupport::HashWithIndifferentAccess.new
328
+
329
+ # returns the inclusion array if an specific resource is passed in
330
+ else
331
+ inclusion_field[resource] || {}
332
+ end
333
+ end
334
+
312
335
  # Returns the description of the 'include' URL parameter
313
336
  def self.include_param_desc(example: nil, default: nil)
314
337
  if default.present?
@@ -326,7 +349,7 @@ module APIHelper::Includable
326
349
 
327
350
  included do
328
351
  if defined? helper_method
329
- helper_method :inclusion, :set_inclusion, :set_inclusion_field
352
+ helper_method :inclusion, :set_inclusion, :set_inclusion_field, :inclusion_field
330
353
  end
331
354
  end
332
355
  end
@@ -62,7 +62,7 @@ require 'active_support'
62
62
  # Then use the helper methods like this:
63
63
  #
64
64
  # # this example uses kaminari
65
- # User.page(page).per(per_page)
65
+ # User.page(pagination_per_page).per(pagination_page)
66
66
  #
67
67
  # HTTP Link header will be automatically set by the way.
68
68
  module APIHelper::Paginatable
@@ -1,3 +1,3 @@
1
1
  module APIHelper
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-14 00:00:00.000000000 Z
11
+ date: 2015-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: simplecov
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: byebug
71
99
  requirement: !ruby/object:Gem::Requirement