natives 0.6.0 → 0.6.1

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzQxZTNmYjcyMGI5MGIxNjUzYWZiYjExYmE1MWUxMDQ3YjU2NWExNw==
4
+ YzhmYmZlMjMxM2UxMWYyYmNjYjY4ODZmNjlhY2Y2N2M4YjI5M2JjMA==
5
5
  data.tar.gz: !binary |-
6
- ZjI4MTc0NzY1OTdjMGUyM2Q5MzJiOGU4NmRiNjEzMzc0YWZiZDViNQ==
6
+ MjBjZjhkNWM1MjNmNDU5NzA3MzIyMTcxMmY3Zjk5YTRhNzRmYzE1OQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmM1NGVmZGM0YWUzZThmMDc4NGQ3Njc2YTFiZjAyOTJmOGEzYzIwYzExNDY2
10
- ZmM2Nzg2MjY0ODQzYjY4NjE1YzA2OGVjNDEyN2JmYTgzYWQ4ZDYxMjdkYjdh
11
- NzcwOWVkMTM4MTI1MWZkYTMwMzkyY2Q2OGJhZmNlYjdhMmU1ZDE=
9
+ ZmQwOGU1YmJmNjI0YjBhMTA5NGRlZDQwMmI4ODhiNmU4ZjEwZDY3ZDZhNWUz
10
+ NDA3NWIxMzNmZTg3ZTBkM2NjMDM0ZmJkY2M2NDljNmNkOGY2N2ZiYWU0ZmFm
11
+ N2RlNTdmODYwN2JkNTRhOTEyM2EzZjI1ODkxN2E1MTA4ODZlOTA=
12
12
  data.tar.gz: !binary |-
13
- ZjkzOThmY2M0OGU5NzI1NWMwMzQ2ZTMxNjllMDQwNjUwZGE4MWY4NTIwYWYx
14
- OGFiYzVlMGIyOWRiNGU1YWY1NTVlZDY3NDM3MjI2ODM1NzY0MDkxNmI3ZmZj
15
- MDcxODVlNmI2MWQ2M2YxNWFlMjhmNWI1M2M3ZGY4NDhhMzAxZTE=
13
+ YjdiNmI2MWUyYzQ2MzU0NmE2MzM0NGEyMzk5YzYzNjdhMWI3MWMzN2MzYTc0
14
+ YTY4NjU1MTk5MmZiODBjM2MxNzhmZWVmZWQ4ZjYwZjE1OTUyZDY0MjJmOGU5
15
+ ODk2YWZkYjIwYmNmNTA4YjE4MjQ2Yjg3NDg2NDAzNDAxNGY0YjI=
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.6.1
@@ -12,17 +12,23 @@ module Natives
12
12
  platform = platform.to_s
13
13
  platform_version = platform_version.to_s
14
14
 
15
- values = nil
16
- platforms = @values.fetch(package_provider, nil)
17
- if platforms
18
- versions = platforms.fetch(platform, nil)
19
- if versions
20
- values = versions.fetch(platform_version, nil) ||
21
- versions.fetch('default', nil)
22
- else
23
- values = platforms.fetch('default', nil)
24
- end
25
- end
15
+ values = if @values.key?(package_provider) &&
16
+ @values[package_provider].key?(platform) &&
17
+ @values[package_provider][platform].key?(platform_version)
18
+
19
+ @values[package_provider][platform][platform_version]
20
+
21
+ elsif @values.key?(package_provider) &&
22
+ @values[package_provider].key?(platform) &&
23
+ @values[package_provider][platform].key?('default')
24
+
25
+ @values[package_provider][platform]['default']
26
+
27
+ elsif @values.key?(package_provider) &&
28
+ @values[package_provider].key?('default')
29
+
30
+ @values[package_provider]['default']
31
+ end
26
32
 
27
33
  Array(values)
28
34
  end
@@ -2,15 +2,15 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: natives 0.6.0 ruby lib
5
+ # stub: natives 0.6.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "natives"
9
- s.version = "0.6.0"
9
+ s.version = "0.6.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.authors = ["Huiming Teo"]
13
- s.date = "2013-11-18"
13
+ s.date = "2013-11-19"
14
14
  s.description = "Lookup native package dependencies required by gems on your machine."
15
15
  s.email = "teohuiming@gmail.com"
16
16
  s.executables = ["natives"]
@@ -118,7 +118,7 @@ describe "Catalog Normalizer" do
118
118
  expect {
119
119
  normalizer.normalize({
120
120
  "macports" => {
121
- "ubuntu" => nil
121
+ "ubuntu" => "invalid"
122
122
  }
123
123
  })
124
124
  }.to raise_error Natives::InvalidCatalogFormat
@@ -14,6 +14,12 @@ describe Natives::Catalog::Selector do
14
14
  'default' => %w(ubuntu-default1 ubuntu-default2)
15
15
  }
16
16
  },
17
+ macports: {
18
+ default: 'macports-default',
19
+ mac_os_x: {
20
+ '10' => 'bar'
21
+ }
22
+ },
17
23
  homebrew: {
18
24
  mac_os_x: {
19
25
  '10' => 'foo'
@@ -22,30 +28,100 @@ describe Natives::Catalog::Selector do
22
28
  })
23
29
  end
24
30
 
25
- it "returns values for a specific platform version" do
26
- expect(selector.values_for(:apt, :ubuntu, :'12.10')).to eq(
27
- ['ubuntu-12.10'])
31
+ it "returns values for matching platform version" do
32
+ selector = Natives::Catalog::Selector.new({
33
+ apt: {
34
+ ubuntu: {
35
+ '12.10' => 'value'
36
+ }
37
+ }
38
+ })
39
+ expect(selector.values_for(:apt, :ubuntu, '12.10')).to eq(
40
+ ['value'])
28
41
  end
29
- it "returns a value for a specific platform version in version group" do
30
- expect(selector.values_for(:apt, :ubuntu, :'10.10.1')).to eq(
31
- ['ubuntu-10.10s'])
42
+
43
+ it "returns a value for matching platform version in version list" do
44
+ selector = Natives::Catalog::Selector.new({
45
+ apt: {
46
+ ubuntu: {
47
+ ['12.10.1', '12.10', '12.10.2'] => 'value'
48
+ }
49
+ }
50
+ })
51
+ expect(selector.values_for(:apt, :ubuntu, '12.10')).to eq(
52
+ ['value'])
32
53
  end
54
+
33
55
  it "returns default version values when no matching platform version" do
34
- expect(selector.values_for('apt', 'ubuntu', '13')).to eq(
35
- ['ubuntu-default1', 'ubuntu-default2'])
56
+ selector = Natives::Catalog::Selector.new({
57
+ apt: {
58
+ ubuntu: {
59
+ ['12.10.1', '12.10', '12.10.2'] => 'value',
60
+ default: 'value-default'
61
+ }
62
+ }
63
+ })
64
+ expect(selector.values_for(:apt, :ubuntu, '99')).to eq(
65
+ ['value-default'])
36
66
  end
67
+
37
68
  it "returns default value when not matching platform" do
38
- expect(selector.values_for(:apt, :foo, :'13')).to eq(
39
- ['apt-default'])
69
+ selector = Natives::Catalog::Selector.new({
70
+ apt: {
71
+ ubuntu: {
72
+ ['12.10.1', '12.10', '12.10.2'] => 'ubuntu-value',
73
+ default: 'ubuntu-value-default'
74
+ },
75
+ default: 'value'
76
+ }
77
+ })
78
+ expect(selector.values_for(:apt, :foo, '12.10.1')).to eq(
79
+ ['value'])
80
+ end
81
+
82
+ it "returns default value when not matching platform version, and no version default value" do
83
+ selector = Natives::Catalog::Selector.new({
84
+ apt: {
85
+ ubuntu: {
86
+ ['12.10.1', '12.10', '12.10.2'] => 'ubuntu-value',
87
+ },
88
+ default: 'value'
89
+ }
90
+ })
91
+ expect(selector.values_for(:apt, :ubuntu, '99')).to eq(
92
+ ['value'])
40
93
  end
94
+
41
95
  it "returns empty list if there is no matching package provider" do
42
- expect(selector.values_for(:notfound, :ubuntu, '10')).to eq([])
96
+ selector = Natives::Catalog::Selector.new({
97
+ apt: {
98
+ ubuntu: {
99
+ default: 'value'
100
+ }
101
+ }
102
+ })
103
+ expect(selector.values_for(:foo, :ubuntu, '99')).to eq([])
43
104
  end
44
- it "returns nil if there is no default and no matching platform" do
45
- expect(selector.values_for(:homebrew, :notfound, 1)).to eq([])
105
+
106
+ it "returns empty list if there is no default and no matching platform" do
107
+ selector = Natives::Catalog::Selector.new({
108
+ apt: {
109
+ ubuntu: {
110
+ '10.10' => 'value'
111
+ }
112
+ }
113
+ })
114
+ expect(selector.values_for(:apt, :foo, '10.10')).to eq([])
46
115
  end
47
- it "returns nil if there is no default and no matching platform version" do
48
- expect(selector.values_for(:homebrew, :mac_os_x, '999')).to eq([])
116
+ it "returns empty list if there is no default and no matching platform version" do
117
+ selector = Natives::Catalog::Selector.new({
118
+ apt: {
119
+ ubuntu: {
120
+ '10.10' => 'value'
121
+ }
122
+ }
123
+ })
124
+ expect(selector.values_for(:apt, :ubuntu, '99')).to eq([])
49
125
  end
50
126
  end
51
127
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: natives
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Huiming Teo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-18 00:00:00.000000000 Z
11
+ date: 2013-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ohai