marty 1.0.37 → 1.0.38

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: 4e2be11ff162cb9ff6d61e1f98f91e3c24b692a8
4
- data.tar.gz: ecc6fa69360347e2ac3b607adeb495534323b68c
3
+ metadata.gz: 5da04fa860827fce8185e800389eb73a792061a9
4
+ data.tar.gz: e722057ed242f9090f05d1c916ccb729d055c728
5
5
  SHA512:
6
- metadata.gz: 49984e9ef1fa5e9c0145404a78a175f9c1dd333c2db218d083451e13a16f7a0e3b1b2233edee9e0e5b74d6eb996407640eb25ac695eaa32b4319ea1ab8046945
7
- data.tar.gz: 0c7dba4c68ad11fb575c73801ce8d49d782f8d04b31733d7017b4b33fef779a2419f382364956bc2ffe984429ac1d6e457cc3ab4f4508c777be36091564f3019
6
+ metadata.gz: '058dda8d8f51acba402b91a95204ad19eca47e4e142c502bd18f6a03556f8e91ef713b1ad1931c813d21824e3db4fd035a9b6cf05b07cad696f2d96df6f3db43'
7
+ data.tar.gz: 91c8ab2dddb5ab07e27547dd7eef1280b9828e1930a3bd6864bbcfb70aeac8fdb8faa592181459e0221c7caf85781340a3e679bf4f585cd1a2c7b6b123977aea
@@ -1,28 +1,28 @@
1
1
  class Marty::ConfigView < Marty::Grid
2
- has_marty_permissions \
3
- create: :admin,
4
- read: :admin,
5
- update: :admin,
6
- delete: :admin
2
+ has_marty_permissions create: :admin,
3
+ read: :admin,
4
+ update: :admin,
5
+ delete: :admin
7
6
 
8
7
  include Marty::Extras::Layout
9
8
 
10
9
  def configure(c)
11
10
  super
12
11
 
13
- c.title = I18n.t('config', default: "Config")
14
- c.model = "Marty::Config"
12
+ c.title = I18n.t('config', default: "Config")
13
+ c.model = "Marty::Config"
15
14
  c.attributes = [:key, :value, :description]
16
- c.store_config.merge!({sorters: [{property: :key, direction: 'ASC'}]})
17
- c.editing = :both
15
+ c.editing = :both
16
+ c.store_config.merge!(sorters: [{property: :key, direction: 'ASC'}])
18
17
  end
19
18
 
20
19
  def my_jsonb_getter
21
- lambda { |r| v = Marty::Config[r.key]; v && v.to_json || '' }
20
+ lambda { |r| v = Marty::Config[r.key]; !v.nil? && v.to_json || '' }
22
21
  end
22
+
23
23
  def my_jsonb_pretty_getter
24
24
  lambda { |r| v = Marty::Config[r.key]
25
- v && (JSON.pretty_generate(v) rescue v.to_json) || '' }
25
+ !v.nil? && (JSON.pretty_generate(v) rescue v.to_json) || '' }
26
26
  end
27
27
 
28
28
  def my_jsonb_setter
@@ -37,8 +37,8 @@ class Marty::ConfigView < Marty::Grid
37
37
  [
38
38
  :key,
39
39
  jsonb_field(:value, {
40
- getter: my_jsonb_pretty_getter,
41
- setter: my_jsonb_setter,
40
+ getter: my_jsonb_pretty_getter,
41
+ setter: my_jsonb_setter,
42
42
  }),
43
43
  textarea_field(:description),
44
44
  ]
@@ -49,14 +49,14 @@ class Marty::ConfigView < Marty::Grid
49
49
  end
50
50
 
51
51
  column :value do |c|
52
- c.flex = 3
53
- c.getter = my_jsonb_getter
54
- c.setter = my_jsonb_setter
52
+ c.flex = 3
53
+ c.getter = my_jsonb_getter
54
+ c.setter = my_jsonb_setter
55
55
  end
56
+
56
57
  attribute :description do |c|
57
58
  c.flex = 1
58
59
  end
59
-
60
60
  end
61
61
 
62
62
  ConfigView = Marty::ConfigView
@@ -2,7 +2,7 @@ class Marty::Config < Marty::Base
2
2
  class ConfigValidator < ActiveModel::Validator
3
3
  def validate(entry)
4
4
  v = entry.get_value
5
- entry.errors[:base] = "bad JSON value" if !v
5
+ entry.errors[:base] = "bad JSON value" if v.nil?
6
6
  v
7
7
  end
8
8
  end
data/lib/marty/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Marty
2
- VERSION = "1.0.37"
2
+ VERSION = "1.0.38"
3
3
  end
@@ -826,7 +826,7 @@ describe Marty::RpcController do
826
826
  attrs: attrs,
827
827
  params: params
828
828
  }
829
- expect = '""res""=>[""Class error: \'Beans\' not contained in FruitsEnum'
829
+ expect = "property '#/f' value 'Beans' not contained in FruitsEnum"
830
830
  expect(response.body).to include(expect)
831
831
  end
832
832
 
@@ -845,7 +845,7 @@ describe Marty::RpcController do
845
845
  attrs: attrs,
846
846
  params: params
847
847
  }
848
- expect = "Unrecognized PgEnum for attribute res"
848
+ expect = "property '#/b': 'NonExistantEnum' is not a pg_enum"
849
849
  res_hsh = JSON.parse(response.body)
850
850
  expect(res_hsh.keys.size).to eq(1)
851
851
  expect(res_hsh.keys[0]).to eq("error")
@@ -15,6 +15,11 @@ module Marty
15
15
  expect(Marty::Config["testval"]).to eq(val)
16
16
  end
17
17
 
18
+ def testval_fail(val)
19
+ expect{testval(val)}.to raise_error(ActiveRecord::RecordInvalid,
20
+ 'Validation failed: bad JSON value')
21
+ end
22
+
18
23
  it "should handle various structures correctly" do
19
24
  testval("[1,2,3]")
20
25
  testval("[1,\"2,3\"]")
@@ -46,6 +51,20 @@ module Marty
46
51
  expect(Marty::Config["k#{i}"]).to eq(nil)
47
52
  }
48
53
  end
54
+
55
+ it "should allow the assignment of individual boolean values" do
56
+ testval(true)
57
+ testval(false)
58
+ end
59
+
60
+ it "should not allow the assignment of individual nil (null) values" do
61
+ testval_fail(nil)
62
+ end
63
+
64
+ it "should allow nil (null) to exist in other structures" do
65
+ testval([nil, 1, 2, nil])
66
+ testval({"key1" => nil, "key2" => false, "key3" => 'val'})
67
+ end
49
68
  end
50
69
  end
51
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.37
4
+ version: 1.0.38
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arman Bostani
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2017-09-13 00:00:00.000000000 Z
17
+ date: 2017-09-15 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: pg