marty 1.0.37 → 1.0.38

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: 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