data_package 0.0.9 → 0.0.10

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: c3381512a80b7e68fe5c76b49def2cdca79b1f43
4
- data.tar.gz: 1a1c644fdd7a00dee1a712cd9b84f1181ffb692c
3
+ metadata.gz: 82a81fd9c748fb4d2a4d138aa4a10303356762bf
4
+ data.tar.gz: e0748ef555fad62c84b42396d04a69c2bd4ecb85
5
5
  SHA512:
6
- metadata.gz: ddd631e94965058ff2c6e674570d6ca2759190de615661c67e653fa65a0cca271cde2d970b42525c0232365346d7a18203e60e4f0640bcae5f0ed3656cb1ba49
7
- data.tar.gz: 5136e1b5b3e3e6188db29f76c238589cf3b07f2a891625e2813f971bde614a1ec2e0bf5fd6f86f1dcb72c7274c7e9c2fce99740470a62b6883bc88a8ab1813e9
6
+ metadata.gz: 82c9b285089afd248a35d4367111a237db709036f3e32fa1a91553a0db5e62fb48a75a935c33e0cdd695056dcc229e57a658becb3feec72602b8a01be974197f
7
+ data.tar.gz: 98bd24c91b056ec3cf7ca3de2ce7f6f81326bddb3975a2fb1db7ca6db22388277730dce07e0ed24b1084a5cc17e9b16edfa82a8a251599df1884ad96ef2d3931
@@ -5,7 +5,8 @@ module DataPackage
5
5
  }
6
6
 
7
7
  attr_optional :primary_key, :key => 'primaryKey',
8
- :serialize => Proc.new{|pkey| pkey.length == 1 ? pkey.first : pkey }
8
+ :if => Proc.new{|pkey| pkey && pkey.length > 0},
9
+ :serialize => Proc.new{|pkey| pkey && pkey.length == 1 ? pkey.first : pkey }
9
10
 
10
11
  def initialize(attrs = {})
11
12
  @fields ||= []
@@ -24,5 +25,13 @@ module DataPackage
24
25
  @primary_key = [json]
25
26
  end
26
27
  end
28
+
29
+ def primary_key
30
+ @primary_key || []
31
+ end
32
+
33
+ def has_primary_key?
34
+ primary_key.length > 0
35
+ end
27
36
  end
28
37
  end
@@ -1,3 +1,3 @@
1
1
  module DataPackage
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
@@ -20,6 +20,7 @@ describe DataPackage::Schema do
20
20
  schema.fields.length.should == 1
21
21
  schema.fields.first.name.should == 'income'
22
22
  schema.primary_key.should == ['income']
23
+ schema.has_primary_key?.should == true
23
24
 
24
25
  modified_json = json.merge('primaryKey' => 'income')
25
26
  schema.to_json.should == Yajl::Encoder.encode(modified_json, :pretty => true)
@@ -33,6 +34,19 @@ describe DataPackage::Schema do
33
34
  schema.fields.length.should == 1
34
35
  schema.fields.first.name.should == 'income'
35
36
  schema.primary_key.should == ['income']
37
+ schema.has_primary_key?.should == true
38
+ schema.to_json.should == Yajl::Encoder.encode(modified_json, :pretty => true)
39
+ end
40
+
41
+ it "should have primary key accessor" do
42
+ modified_json = json.delete_if{|key, v| key == 'primaryKey'}
43
+
44
+ schema = DataPackage::Schema.new(modified_json)
45
+
46
+ schema.fields.length.should == 1
47
+ schema.fields.first.name.should == 'income'
48
+ schema.primary_key.should == []
49
+ schema.has_primary_key?.should == false
36
50
  schema.to_json.should == Yajl::Encoder.encode(modified_json, :pretty => true)
37
51
  end
38
52
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_package
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mode Analytics