ey_resolver 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MTg2YThiMjMyZWFkZDAwOGFkM2VmYjI1NjM3ZmU1NDUwZjFjNzMxNA==
5
+ data.tar.gz: !binary |-
6
+ ZDFmMjA1MTQ0YjU4NjAxN2E2Mzk0MjNjNjc3MGRiZDZlOTU4ZmUxMQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MDA5Yzk4Njc0MTllNDE3MjYxZWU4NDhhN2UwYmE0ZmZlNmI5N2MxNGU1ODc1
10
+ MTExMDMxMTFjOGY5ZWZjYmU0OTViNjE5NmQ1OWVjODgxNzEwOGNkMjYyMmFj
11
+ ZDEwYzFjY2I5YWYyZTljZGZlMjI2MzRlNzFhYjVjYmJiMWVkYTE=
12
+ data.tar.gz: !binary |-
13
+ NWE2ZDAxNjFkOWQ5NDQzNjc0YjU1YzRmOGVlOWYyODQ5YmM3NTVmMDMzNDJl
14
+ MTE0YmZkNDJlM2YyMDg1MWY2NWEwN2VkYjU3ZDQ0MWZmMjA2Zjg2YWVlYTQx
15
+ NWQzZTAzZWIxNjVkYmJiYzRkYzQ4NWNhZmYwODZiNDc1YWRkYjg=
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  # specify any dependencies here; for example:
22
- s.add_runtime_dependency "gitable", "~>0.2.3"
22
+ s.add_runtime_dependency "gitable", "~>0.2.4"
23
23
  s.add_development_dependency "rake"
24
24
  s.add_development_dependency "rspec", "~>2.0"
25
25
  end
@@ -1,12 +1,12 @@
1
+ module EY
2
+ class Resolver
3
+ class UnconstrainedError < ArgumentError; end
4
+ end
5
+ end
6
+
1
7
  require 'ey_resolver/query'
2
8
  require 'ey_resolver/examiner'
3
9
  require 'ey_resolver/account_resolver'
4
10
  require 'ey_resolver/app_resolver'
5
11
  require 'ey_resolver/app_env_resolver'
6
12
  require 'ey_resolver/environment_resolver'
7
-
8
- module EY
9
- class Resolver
10
- class UnconstrainedError < ArgumentError; end
11
- end
12
- end
@@ -32,7 +32,7 @@ class EY::Resolver
32
32
  def exact_match?(account, key, val)
33
33
  case key.to_sym
34
34
  when :remotes
35
- app_uris = account.apps.map { |app| app.gitable_uri }.flatten
35
+ app_uris = account.apps.map { |app| app.gitable_uri }.flatten.compact
36
36
  val.any? { |uri| app_uris.any? { |app_uri| app_uri.equivalent?(uri) } }
37
37
  when :app_name
38
38
  account.apps.any? {|app| app.name.downcase.index(val.downcase) } # partial match app if given for account
@@ -50,7 +50,7 @@ class EY::Resolver
50
50
  end
51
51
 
52
52
  def equivalent_remote?(app_env, uri)
53
- app_env.app.gitable_uri.equivalent?(uri)
53
+ app_env.app.gitable_uri && app_env.app.gitable_uri.equivalent?(uri)
54
54
  end
55
55
 
56
56
  def exact_match?(app_env, key, val)
@@ -34,7 +34,7 @@ class EY::Resolver
34
34
  end
35
35
 
36
36
  def equivalent_remote?(app, uri)
37
- app.gitable_uri.equivalent?(uri)
37
+ app.gitable_uri && app.gitable_uri.equivalent?(uri)
38
38
  end
39
39
 
40
40
  def exact_match?(app, key, val)
@@ -45,7 +45,7 @@ class EY::Resolver
45
45
  # cache app uris since we might use it twice
46
46
  def app_uris(env)
47
47
  @app_uris ||= {}
48
- @app_uris[env] ||= env.apps.map { |app| app.gitable_uri }.flatten
48
+ @app_uris[env] ||= env.apps.map { |app| app.gitable_uri }.flatten.compact
49
49
  end
50
50
 
51
51
  def equivalent_remote?(env, uri)
@@ -63,6 +63,7 @@ class EY::Resolver
63
63
  return nil if val.nil? || val.empty?
64
64
  val.reject {|uri| uri.to_s.empty? }.map { |uri| Gitable::URI.parse_when_valid(uri) }.compact
65
65
  else
66
+ # allowable characters assumption: [a-zA-Z0-9_-]
66
67
  norm = val.to_s.gsub(/[^\w-]+/,'')
67
68
  norm.empty? ? nil : norm
68
69
  end
@@ -1,5 +1,5 @@
1
1
  module EY
2
2
  class Resolver
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
@@ -199,10 +199,10 @@ describe EY::Resolver::AppEnvResolver do
199
199
  end
200
200
 
201
201
  it "app (by repo) does not have an environment" do
202
- resolver = app_env_resolver(nil, nil, nil, ["git://github.com/repo/noe.git"])
202
+ resolver = app_env_resolver(nil, nil, nil, ["git@github.com:repo/noe.git"])
203
203
  resolver.matches.should == []
204
204
  resolver.errors.should ==
205
- [%|No environment found for applications matching remotes:\n\tgit://github.com/repo/noe.git|]
205
+ [%|No environment found for applications matching remotes:\n\tgit@github.com:repo/noe.git|]
206
206
  resolver.suggestions.should be_empty
207
207
  end
208
208
  end
@@ -107,10 +107,10 @@ describe EY::Resolver::AppEnvResolver do
107
107
  end
108
108
 
109
109
  it "repo not found" do
110
- resolver = app_resolver(nil, nil, nil, ["git://fake.com/fake/fake.git"])
110
+ resolver = app_resolver(nil, nil, nil, ["git@fake.com:fake/fake.git"])
111
111
  resolver.matches.should == []
112
112
  resolver.errors.should ==
113
- [%|No application found matching remotes:\n\tgit://fake.com/fake/fake.git|]
113
+ [%|No application found matching remotes:\n\tgit@fake.com:fake/fake.git|]
114
114
  end
115
115
 
116
116
  it "repo not found in account" do
@@ -24,7 +24,7 @@ describe EY::Resolver::EnvironmentResolver do
24
24
  end
25
25
 
26
26
  it "returns empty when there is no remote match and env name is not specified" do
27
- env_resolver(nil, nil, nil, ["git://github.com/repo/noe.git"]).matches.should == []
27
+ env_resolver(nil, nil, nil, ["git@github.com:repo/noe.git"]).matches.should == []
28
28
  end
29
29
 
30
30
  it "returns empty when there is no environment match" do
@@ -47,7 +47,7 @@ describe EY::Resolver::EnvironmentResolver do
47
47
 
48
48
  it "finds matches that don't match the remotes" do
49
49
  env_resolver(nil, nil, 'production', ["git://github.com/repo/app.git"]).matches.should == envs(@production, @hugeprod)
50
- env_resolver(nil, nil, 'staging', ["git://github.com/repo/noe.git"]).matches.should == envs(@staging, @big)
50
+ env_resolver(nil, nil, 'staging', ["git@github.com:repo/noe.git"]).matches.should == envs(@staging, @big)
51
51
  end
52
52
 
53
53
  it "scopes by app name when specified" do
@@ -164,10 +164,10 @@ describe EY::Resolver::EnvironmentResolver do
164
164
  end
165
165
 
166
166
  it "repo found but env doesn't exist on it" do
167
- resolver = env_resolver(nil, nil, nil, ["git://github.com/repo/noe.git"])
167
+ resolver = env_resolver(nil, nil, nil, ["git@github.com:repo/noe.git"])
168
168
  resolver.matches.should == []
169
169
  resolver.errors.should ==
170
- [%|No environment found for applications matching remotes:\n\tgit://github.com/repo/noe.git|]
170
+ [%|No environment found for applications matching remotes:\n\tgit@github.com:repo/noe.git|]
171
171
  resolver.suggestions.should be_empty
172
172
  end
173
173
 
@@ -192,10 +192,10 @@ describe EY::Resolver::EnvironmentResolver do
192
192
  end
193
193
 
194
194
  it "app (by repo) does not have an environment" do
195
- resolver = env_resolver(nil, nil, nil, ["git://github.com/repo/noe.git"])
195
+ resolver = env_resolver(nil, nil, nil, ["git@github.com:repo/noe.git"])
196
196
  resolver.matches.should == []
197
197
  resolver.errors.should ==
198
- [%|No environment found for applications matching remotes:\n\tgit://github.com/repo/noe.git|]
198
+ [%|No environment found for applications matching remotes:\n\tgit@github.com:repo/noe.git|]
199
199
  resolver.suggestions.should be_empty
200
200
  end
201
201
  end
@@ -27,10 +27,6 @@ module Helpers
27
27
  raise "Must have an account"
28
28
  end
29
29
 
30
- if !!app_name != !!repo # both or neither (XNOR)
31
- raise "app_name and repo must be supplied together"
32
- end
33
-
34
30
  account = Account.first(:user => user, :name => acc_name)
35
31
  account ||= Account.create(:user => user, :name => acc_name)
36
32
 
@@ -110,7 +106,8 @@ RSpec.configure do |config|
110
106
  @me_dup = mock_models('me', "app_dup", "app_dup", "git://github.com/repo/dup.git")
111
107
  @me_other = mock_models('me', "other", "app_dup", "git://github.com/repo/oth.git")
112
108
  @noapp = mock_models('ey', nil, "noapp", nil)
113
- @noenv = mock_models('ey', "noenv", nil, "git://github.com/repo/noe.git")
109
+ @norepo = mock_models('ey', "herring", "herring", nil)
110
+ @noenv = mock_models('ey', "noenv", nil, "git@github.com:repo/noe.git")
114
111
  @account = mock_models('no', nil, nil, nil)
115
112
  end
116
113
  end
metadata CHANGED
@@ -1,49 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ey_resolver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease:
4
+ version: 0.2.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Martin Emde
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-05-16 00:00:00.000000000 Z
11
+ date: 2013-10-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: gitable
16
- requirement: &70189243891520 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 0.2.3
19
+ version: 0.2.4
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70189243891520
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.4
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rake
27
- requirement: &70189243891100 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ! '>='
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *70189243891100
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rspec
38
- requirement: &70189243890560 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ~>
42
46
  - !ruby/object:Gem::Version
43
47
  version: '2.0'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70189243890560
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.0'
47
55
  description: Resolves apps, environments, app_environments and accounts using a set
48
56
  of constraints
49
57
  email:
@@ -80,33 +88,26 @@ files:
80
88
  - spec/spec_helper.rb
81
89
  homepage: ''
82
90
  licenses: []
91
+ metadata: {}
83
92
  post_install_message:
84
93
  rdoc_options: []
85
94
  require_paths:
86
95
  - lib
87
96
  required_ruby_version: !ruby/object:Gem::Requirement
88
- none: false
89
97
  requirements:
90
98
  - - ! '>='
91
99
  - !ruby/object:Gem::Version
92
100
  version: '0'
93
- segments:
94
- - 0
95
- hash: 4321533697507775913
96
101
  required_rubygems_version: !ruby/object:Gem::Requirement
97
- none: false
98
102
  requirements:
99
103
  - - ! '>='
100
104
  - !ruby/object:Gem::Version
101
105
  version: '0'
102
- segments:
103
- - 0
104
- hash: 4321533697507775913
105
106
  requirements: []
106
107
  rubyforge_project: ey_resolver
107
- rubygems_version: 1.8.15
108
+ rubygems_version: 2.0.6
108
109
  signing_key:
109
- specification_version: 3
110
+ specification_version: 4
110
111
  summary: Resolves awsm models given constraints
111
112
  test_files:
112
113
  - spec/account_resolver_spec.rb