data_package 0.0.9 → 0.0.10

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