forest_liana 1.3.42 → 1.3.43

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb3568d5560fd7e5f2bed09463aeabd25cdcf507
4
- data.tar.gz: d08fed354b6e2ec24643975b1611df742f416307
3
+ metadata.gz: 2b0816d726c0204d712745f22efe4e1ab17a698c
4
+ data.tar.gz: bc3bd8651348a3ebdcb9305c1b6cd669fde86449
5
5
  SHA512:
6
- metadata.gz: 27ab72a652bc72f34efaff24b2853c0440879f86cf506f6cbd811fceba3b6f6d076d2b2a839501a0d5feef2b6eaebab478be8b0f2c5af3c26bad7dc28f96ebea
7
- data.tar.gz: 630815abbb6a8ef6b6f2dc0510345fac00b65730afde352ae65507034ce5ceff98cb880ae9541a8ea768985cc0a73943b38730ec8fe8d7309552e3bba9be77be
6
+ metadata.gz: be3ff96e743e23b126b10a715214ec5eaa5902b329c90e8078ef72e36ed4e819f7341652ad2ef17830d1dfe49e51c19b928ebf39a0063def1586640f19987fbc
7
+ data.tar.gz: 25ebe3f5446e5495a6bfc678835f6a27235fd42abfb6a3805516ff84ad4760536b5c17db43dbf7469cd7dca7dc8acdfada47f87eaa59091b53a289b3392754a6
@@ -26,19 +26,19 @@ module ForestLiana
26
26
  end
27
27
 
28
28
  def create
29
- getter = ResourceCreator.new(@resource, params)
30
- getter.perform
29
+ creator = ResourceCreator.new(@resource, params)
30
+ creator.perform
31
31
 
32
32
  render serializer: nil,
33
- json: serialize_model(getter.record, include: includes)
33
+ json: serialize_model(creator.record, include: includes)
34
34
  end
35
35
 
36
36
  def update
37
- getter = ResourceUpdater.new(@resource, params)
38
- getter.perform
37
+ updater = ResourceUpdater.new(@resource, params)
38
+ updater.perform
39
39
 
40
40
  render serializer: nil,
41
- json: serialize_model(getter.record, include: includes)
41
+ json: serialize_model(updater.record, include: includes)
42
42
  end
43
43
 
44
44
  def destroy
@@ -177,7 +177,11 @@ module ForestLiana
177
177
  SchemaUtils.associations(active_record_class).each do |a|
178
178
  serializer.send(serializer_association(a), a.name) {
179
179
  if [:has_one, :belongs_to].include?(a.macro)
180
- object.send(a.name).try(:reload)
180
+ begin
181
+ object.send(a.name).try(:reload)
182
+ rescue ActiveRecord::RecordNotFound
183
+ nil
184
+ end
181
185
  else
182
186
  []
183
187
  end
@@ -9,13 +9,8 @@ module ForestLiana
9
9
 
10
10
  def perform
11
11
  @record = @resource.find(@params[:id])
12
-
13
- if @data && @data[:id]
14
- new_value = @association.klass.find(@data[:id]) if @data && @data[:id]
15
- @record.send("#{@association.name}=", new_value)
16
- else
17
- @record.send("#{@association.foreign_key}=", nil)
18
- end
12
+ new_value = @association.klass.find(@data[:id]) if @data && @data[:id]
13
+ @record.send("#{@association.name}=", new_value)
19
14
 
20
15
  @record.save()
21
16
  end
@@ -212,26 +212,29 @@ module ForestLiana
212
212
 
213
213
  case column.type
214
214
  when :integer
215
- 'Number'
215
+ type = 'Number'
216
216
  when :float
217
- 'Number'
217
+ type = 'Number'
218
218
  when :decimal
219
- 'Number'
219
+ type = 'Number'
220
220
  when :datetime
221
- 'Date'
221
+ type = 'Date'
222
222
  when :date
223
- 'Date'
223
+ type = 'Date'
224
224
  when :string
225
- 'String'
225
+ type = 'String'
226
226
  when :text
227
- 'String'
227
+ type = 'String'
228
228
  when :citext
229
- 'String'
229
+ type = 'String'
230
230
  when :uuid
231
- 'String'
231
+ type = 'String'
232
232
  when :boolean
233
- 'Boolean'
233
+ type = 'Boolean'
234
234
  end
235
+
236
+ is_array = (column.respond_to?(:array) && column.array == true)
237
+ is_array ? [type] : type
235
238
  end
236
239
 
237
240
  def add_enum_values_if_is_enum(column_schema, column)
@@ -16,7 +16,7 @@ module ForestLiana
16
16
  def self.find_model_from_table_name(table_name)
17
17
  model = nil
18
18
 
19
- ActiveRecord::Base.subclasses.each do |subclass|
19
+ ForestLiana.models.each do |subclass|
20
20
  if subclass.abstract_class?
21
21
  model = self.find_model_from_abstract_class(subclass, table_name)
22
22
  elsif subclass.table_name == table_name
@@ -12,10 +12,12 @@ module ForestLiana
12
12
  mattr_accessor :integrations
13
13
  mattr_accessor :apimap
14
14
  mattr_accessor :allowed_users
15
+ mattr_accessor :models
15
16
 
16
17
  # Legacy.
17
18
  mattr_accessor :jwt_signing_key
18
19
 
19
20
  self.apimap = []
20
21
  self.allowed_users = []
22
+ self.models = []
21
23
  end
@@ -32,6 +32,7 @@ More info at: https://github.com/ForestAdmin/forest-rails/releases/tag/1.2.0"
32
32
  end
33
33
 
34
34
  def perform
35
+ fetch_models
35
36
  check_integrations_setup
36
37
  create_serializers
37
38
 
@@ -44,6 +45,12 @@ More info at: https://github.com/ForestAdmin/forest-rails/releases/tag/1.2.0"
44
45
 
45
46
  private
46
47
 
48
+ def fetch_models
49
+ ActiveRecord::Base.subclasses.each do |subclass|
50
+ ForestLiana.models << subclass
51
+ end
52
+ end
53
+
47
54
  def cast_to_array value
48
55
  value.is_a?(String) ? [value] : value
49
56
  end
@@ -21,7 +21,8 @@ module ForestLiana::Collection
21
21
  def field(name, opts, &block)
22
22
  model.fields << opts.merge({ field: name, :'is-searchable' => false })
23
23
 
24
- if serializer_name
24
+ if serializer_name && ForestLiana::UserSpace.const_defined?(
25
+ serializer_name)
25
26
  ForestLiana::UserSpace.const_get(serializer_name).class_eval do
26
27
  attribute(name, &block)
27
28
  end
@@ -35,7 +36,8 @@ module ForestLiana::Collection
35
36
  type: ['String']
36
37
  })
37
38
 
38
- if serializer_name
39
+ if serializer_name && ForestLiana::UserSpace.const_defined?(
40
+ serializer_name)
39
41
  ForestLiana::UserSpace.const_get(serializer_name).class_eval do
40
42
  has_many(name, name: name)
41
43
  end
@@ -1,3 +1,3 @@
1
1
  module ForestLiana
2
- VERSION = "1.3.42"
2
+ VERSION = "1.3.43"
3
3
  end
@@ -12,6 +12,7 @@
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
14
  ActiveRecord::Schema.define(version: 20160628173505) do
15
+
15
16
  create_table "belongs_to_class_name_fields", force: :cascade do |t|
16
17
  t.integer "foo_id"
17
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: forest_liana
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.42
4
+ version: 1.3.43
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sandro Munda
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-03 00:00:00.000000000 Z
11
+ date: 2016-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails