natives 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
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