pkgwat 0.1.0 → 0.1.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.
@@ -0,0 +1 @@
1
+ pkgwat
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p448
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 1.9.3
5
+
6
+ branches:
7
+ only:
8
+ - master
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013 David Davis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- pkgwat
1
+ pkgwat [![Build Status](https://travis-ci.org/daviddavis/pkgwat.png)](http://travis-ci.org/daviddavis/pkgwat)
2
2
  ======
3
3
 
4
4
  Pkgwat is a gem for querying gem versions from RPM repos. It's based off of
@@ -39,3 +39,51 @@ To check your gems in bundler against Fedora repos, run:
39
39
  ```bash
40
40
  rake pkgwat:check
41
41
  ```
42
+
43
+ Developing pkgwat
44
+ -----------------
45
+
46
+ ### Requirements
47
+
48
+ * ruby 1.9.3
49
+ * rvm (optional but recommended)
50
+ * rubygems
51
+ * bundler (`gem install bundler`)
52
+
53
+ ### Getting started
54
+
55
+ To develop pkgwat, check out the git repo and bundle:
56
+
57
+ ```bash
58
+ git clone git@github.com:daviddavis/pkgwat.git pkgwat
59
+ cd pkgwat # accept the rvmrc file
60
+ bundle install # run bundler
61
+ ```
62
+
63
+ Then just fire up irb:
64
+
65
+ ```
66
+ irb -Ilib -rpkgwat
67
+ >> Pkgwat::F16
68
+ => "Fedora 16"
69
+ ```
70
+
71
+ ### Testing
72
+
73
+ To run the pkgwat test suite execute via rake:
74
+
75
+ ```bash
76
+ rake test
77
+ ```
78
+
79
+ Also you can run an individual test:
80
+
81
+ ```bash
82
+ ruby -Itest test/pkgwat_test.rb
83
+ ```
84
+
85
+ To record your interactions via VCR and use the actual web APIs:
86
+
87
+ ```bash
88
+ rake test mode=all
89
+ ```
data/Rakefile CHANGED
@@ -1,2 +1,11 @@
1
1
  require 'bundler/gem_tasks'
2
2
  require 'pkgwat/tasks'
3
+ require 'rake/testtask'
4
+
5
+ Rake::TestTask.new do |t|
6
+ t.libs.push "test"
7
+ t.verbose = true
8
+ t.pattern = 'test/**/*_test.rb'
9
+ end
10
+
11
+ task :default => [:test]
@@ -25,8 +25,12 @@ module Pkgwat
25
25
  BODHI_REALEASE = ["all", "f17", "f16", "f15", "e16", "e15"]
26
26
  BODHI_ARCH = ["x86_64", "i686"]
27
27
 
28
+ class << self
29
+ attr_accessor :debug
30
+ end
31
+
28
32
  def self.check_gem(name, version, distros = DEFAULT_DISTROS, throw_ex = false)
29
- puts "Checking #{name} #{version}...\n"
33
+ puts "Checking #{name} #{version}...\n" if self.debug
30
34
  versions = get_versions(name)
31
35
  matches = []
32
36
  distros.each do |distro|
@@ -34,7 +38,9 @@ module Pkgwat
34
38
  match = compare_versions(version, dv["stable_version"])
35
39
  matches << dv["release"] if match
36
40
  end
37
- puts "#{name} is available in the following distros: #{matches.join(",")}"
41
+ puts "#{name} is available in the following distros: #{matches.join(",")}" if self.debug
42
+
43
+ matches.any?
38
44
  end
39
45
 
40
46
  def self.compare_versions(version, distro)
@@ -1,6 +1,6 @@
1
1
  require 'pkgwat'
2
2
  require 'rails'
3
- module MyPlugin
3
+ module Pkgwat
4
4
  class Railtie < Rails::Railtie
5
5
  railtie_name :pkgwat
6
6
  end
@@ -1,3 +1,3 @@
1
1
  module Pkgwat
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.version = Pkgwat::VERSION
8
8
  s.authors = ["David Davis"]
9
9
  s.email = ["daviddavis@redhat.com"]
10
- s.homepage = ""
10
+ s.homepage = "https://github.com/daviddavis/pkgwat"
11
11
  s.summary = %q{pkgwat checks your gems to against Fedora/EPEL.}
12
12
  s.description = %q{pkgwat checks your Gemfile.lock to make sure all your gems
13
13
  are packaged in Fedora/EPEL. Eventually we hope to support
@@ -21,6 +21,9 @@ Gem::Specification.new do |s|
21
21
  s.add_dependency("json", "1.6.5")
22
22
  s.add_dependency("sanitize")
23
23
 
24
+ s.add_development_dependency("vcr", "~> 2.4.0")
25
+ s.add_development_dependency("webmock", "~> 1.9.0")
26
+ s.add_development_dependency("minitest", "~> 4.4.0")
24
27
  if RUBY_VERSION >= "1.9"
25
28
  s.add_development_dependency("debugger")
26
29
  else
@@ -0,0 +1,136 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://apps.fedoraproject.org/packages/fcomm_connector/bodhi/query/query_active_releases/%7B%22filters%22:%7B%22package%22:%22rubygem-rails%22%7D%7D
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Sun, 20 Jan 2013 17:10:05 GMT
21
+ Server:
22
+ - Apache/2.2.15 (Red Hat)
23
+ Content-Length:
24
+ - '577'
25
+ Apptime:
26
+ - D=5932
27
+ Appserver:
28
+ - packages02.phx2.fedoraproject.org
29
+ Vary:
30
+ - Accept-Encoding
31
+ Content-Type:
32
+ - text/html; charset=UTF-8
33
+ Proxytime:
34
+ - D=35750
35
+ Proxyserver:
36
+ - proxy08.fedoraproject.org
37
+ body:
38
+ encoding: US-ASCII
39
+ string: ! '{"start_row":0,"total_rows":6,"rows":[{"stable_version":"3.2.8-1.fc18","release":"Rawhide","testing_version":"<i>Not
40
+ Applicable</i>"},{"stable_version":"3.2.8-1.fc18","release":"Fedora 18","testing_version":"None"},{"stable_version":"3.0.11-1.fc17","release":"Fedora
41
+ 17","testing_version":"None"},{"stable_version":"3.0.10-1.fc16","release":"Fedora
42
+ 16","testing_version":"None"},{"stable_version":"None","release":"Fedora EPEL
43
+ 6","testing_version":"None"},{"stable_version":"2.1.1-2.el5","release":"Fedora
44
+ EPEL 5","testing_version":"None"}],"rows_per_page":10,"visible_rows":6}'
45
+ http_version:
46
+ recorded_at: Sun, 20 Jan 2013 17:10:03 GMT
47
+ - request:
48
+ method: get
49
+ uri: https://apps.fedoraproject.org/packages/fcomm_connector/bodhi/query/query_active_releases/%7B%22filters%22:%7B%22package%22:%22rubygem-rails%22%7D%7D
50
+ body:
51
+ encoding: US-ASCII
52
+ string: ''
53
+ headers:
54
+ Accept:
55
+ - ! '*/*'
56
+ User-Agent:
57
+ - Ruby
58
+ response:
59
+ status:
60
+ code: 200
61
+ message: OK
62
+ headers:
63
+ Date:
64
+ - Sun, 20 Jan 2013 17:10:05 GMT
65
+ Server:
66
+ - Apache/2.2.15 (Red Hat)
67
+ Content-Length:
68
+ - '577'
69
+ Apptime:
70
+ - D=6254
71
+ Appserver:
72
+ - packages02.phx2.fedoraproject.org
73
+ Vary:
74
+ - Accept-Encoding
75
+ Content-Type:
76
+ - text/html; charset=UTF-8
77
+ Proxytime:
78
+ - D=142563
79
+ Proxyserver:
80
+ - proxy04.fedoraproject.org
81
+ body:
82
+ encoding: US-ASCII
83
+ string: ! '{"visible_rows":6,"total_rows":6,"start_row":0,"rows":[{"stable_version":"3.2.8-1.fc18","testing_version":"<i>Not
84
+ Applicable</i>","release":"Rawhide"},{"stable_version":"3.2.8-1.fc18","testing_version":"None","release":"Fedora
85
+ 18"},{"stable_version":"3.0.11-1.fc17","testing_version":"None","release":"Fedora
86
+ 17"},{"stable_version":"3.0.10-1.fc16","testing_version":"None","release":"Fedora
87
+ 16"},{"stable_version":"None","testing_version":"None","release":"Fedora EPEL
88
+ 6"},{"stable_version":"2.1.1-2.el5","testing_version":"None","release":"Fedora
89
+ EPEL 5"}],"rows_per_page":10}'
90
+ http_version:
91
+ recorded_at: Sun, 20 Jan 2013 17:10:04 GMT
92
+ - request:
93
+ method: get
94
+ uri: https://apps.fedoraproject.org/packages/fcomm_connector/bodhi/query/query_active_releases/%7B%22filters%22:%7B%22package%22:%22rubygem-this-gem-doesnt-exist%22%7D%7D
95
+ body:
96
+ encoding: US-ASCII
97
+ string: ''
98
+ headers:
99
+ Accept:
100
+ - ! '*/*'
101
+ User-Agent:
102
+ - Ruby
103
+ response:
104
+ status:
105
+ code: 200
106
+ message: OK
107
+ headers:
108
+ Date:
109
+ - Sun, 20 Jan 2013 17:10:03 GMT
110
+ Server:
111
+ - Apache/2.2.15 (Red Hat)
112
+ Content-Length:
113
+ - '566'
114
+ Apptime:
115
+ - D=6904
116
+ Appserver:
117
+ - packages01.phx2.fedoraproject.org
118
+ Vary:
119
+ - Accept-Encoding
120
+ Content-Type:
121
+ - text/html; charset=UTF-8
122
+ Proxytime:
123
+ - D=137898
124
+ Proxyserver:
125
+ - proxy04.fedoraproject.org
126
+ body:
127
+ encoding: US-ASCII
128
+ string: ! '{"total_rows":6,"rows_per_page":10,"start_row":0,"visible_rows":6,"rows":[{"testing_version":"<i>Not
129
+ Applicable</i>","stable_version":"No builds tagged with dist-5E-epel","release":"Rawhide"},{"testing_version":"None","stable_version":"None","release":"Fedora
130
+ 18"},{"testing_version":"None","stable_version":"None","release":"Fedora 17"},{"testing_version":"None","stable_version":"None","release":"Fedora
131
+ 16"},{"testing_version":"None","stable_version":"None","release":"Fedora EPEL
132
+ 6"},{"testing_version":"None","stable_version":"None","release":"Fedora EPEL
133
+ 5"}]}'
134
+ http_version:
135
+ recorded_at: Sun, 20 Jan 2013 17:10:04 GMT
136
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,36 @@
1
+ require 'test_helper'
2
+
3
+ describe "Pkgwat" do
4
+
5
+ it "has a Fedora 17 constant" do
6
+ Pkgwat::F17.must_equal "Fedora 17"
7
+ end
8
+
9
+ describe "#check_gem" do
10
+ before do
11
+ VCR.insert_cassette('pkgwat_check_gem')
12
+ end
13
+
14
+ after do
15
+ VCR.eject_cassette
16
+ end
17
+
18
+ it "returns false for a non-existing gem" do
19
+ Pkgwat.check_gem("this-gem-doesnt-exist", "0.0.1").must_equal false
20
+ end
21
+
22
+ it "returns true for existing gem" do
23
+ Pkgwat.check_gem("rails", "3.2.8", [Pkgwat::F18]).must_equal true
24
+ end
25
+
26
+ it "returns false for non-existing version" do
27
+ Pkgwat.check_gem("rails", "3.2.8", [Pkgwat::F17]).must_equal false
28
+ Pkgwat.check_gem("rails", "3.2.7", [Pkgwat::F18]).must_equal false
29
+ end
30
+
31
+ it "returns false for an incomplete match" do
32
+ skip "Need to fix this" # TODO: remove this line
33
+ Pkgwat.check_gem("rails", "3.2.8", [Pkgwat::F17, Pkgwat::F18]).must_equal false
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,14 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+ require 'minitest/autorun'
3
+ require 'pkgwat'
4
+ require 'vcr'
5
+
6
+ mode = ENV['mode'] ? ENV['mode'] : :none
7
+
8
+ VCR.configure do |c|
9
+ c.cassette_library_dir = 'test/fixtures/vcr'
10
+ c.hook_into :webmock
11
+ c.default_cassette_options = {
12
+ :record => mode.to_sym
13
+ }
14
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkgwat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-16 00:00:00.000000000 Z
12
+ date: 2013-07-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -91,6 +91,54 @@ dependencies:
91
91
  - - ! '>='
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: vcr
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 2.4.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 2.4.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: webmock
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 1.9.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.9.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: minitest
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 4.4.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 4.4.0
94
142
  - !ruby/object:Gem::Dependency
95
143
  name: debugger
96
144
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +165,11 @@ extensions: []
117
165
  extra_rdoc_files: []
118
166
  files:
119
167
  - .gitignore
168
+ - .ruby-gemset
169
+ - .ruby-version
170
+ - .travis.yml
120
171
  - Gemfile
172
+ - LICENSE
121
173
  - README.md
122
174
  - Rakefile
123
175
  - lib/pkgwat.rb
@@ -125,7 +177,10 @@ files:
125
177
  - lib/pkgwat/tasks.rb
126
178
  - lib/pkgwat/version.rb
127
179
  - pkgwat.gemspec
128
- homepage: ''
180
+ - test/fixtures/vcr/pkgwat_check_gem.yml
181
+ - test/pkgwat_test.rb
182
+ - test/test_helper.rb
183
+ homepage: https://github.com/daviddavis/pkgwat
129
184
  licenses: []
130
185
  post_install_message:
131
186
  rdoc_options: []
@@ -137,22 +192,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
192
  - - ! '>='
138
193
  - !ruby/object:Gem::Version
139
194
  version: '0'
140
- segments:
141
- - 0
142
- hash: 2352334897922640855
143
195
  required_rubygems_version: !ruby/object:Gem::Requirement
144
196
  none: false
145
197
  requirements:
146
198
  - - ! '>='
147
199
  - !ruby/object:Gem::Version
148
200
  version: '0'
149
- segments:
150
- - 0
151
- hash: 2352334897922640855
152
201
  requirements: []
153
202
  rubyforge_project: pkgwat
154
- rubygems_version: 1.8.24
203
+ rubygems_version: 1.8.25
155
204
  signing_key:
156
205
  specification_version: 3
157
206
  summary: pkgwat checks your gems to against Fedora/EPEL.
158
- test_files: []
207
+ test_files:
208
+ - test/fixtures/vcr/pkgwat_check_gem.yml
209
+ - test/pkgwat_test.rb
210
+ - test/test_helper.rb