spigoter 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,26 @@
1
+ require 'open-uri'
2
+
3
+ module Spigoter
4
+ module Utils
5
+ def self.download(url)
6
+ begin
7
+ file = open(url).read
8
+ rescue
9
+ raise "Can't download anything from #{url}, check internet?"
10
+ end
11
+ return file
12
+ end
13
+
14
+ def self.which(cmd)
15
+ # http://stackoverflow.com/questions/2108727/which-in-ruby-checking-if-program-exists-in-path-from-ruby
16
+ exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
17
+ ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
18
+ exts.each { |ext|
19
+ exe = File.join(path, "#{cmd}#{ext}")
20
+ return exe if File.executable?(exe) && !File.directory?(exe)
21
+ }
22
+ end
23
+ return nil
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,3 @@
1
1
  module Spigoter
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,25 +2,12 @@ require 'open-uri'
2
2
  require 'logging'
3
3
 
4
4
  module Spigoter
5
- class PluginCurse
5
+ class PluginCurse < Plugin
6
6
  def initialize(website)
7
- @url = website # Url of the plugin
8
- @main_page # Mainpage content
9
- @name # Name of the plugin
10
- @download_page # Content of the download page
11
- @download_url # Download url of the plugin
7
+ super(website)
12
8
 
13
9
  raise "Bad URL #{@url}" if @url.match(/^http:\/\/mods.curse.com\/bukkit-plugins\/minecraft\/[a-z\-]+$/).nil?
14
10
  end
15
- def main_page
16
- return @main_page unless @main_page.nil?
17
- begin
18
- @main_page = open(@url).read
19
- rescue
20
- raise "404 Error, that plugin URL doesn't exists"
21
- end
22
- return @main_page
23
- end
24
11
  def download_page
25
12
  return @download_page unless @download_page.nil?
26
13
  begin
@@ -44,14 +31,5 @@ module Spigoter
44
31
  return @name unless @name.nil?
45
32
  @name = /minecraft\/(?<name>.+)/.match(@url)[:name]
46
33
  end
47
- def download
48
- download_url
49
- begin
50
- file = open(@download_url).read
51
- rescue
52
- raise "Can't download file for #{name}, #{@download_url}, check internet?"
53
- end
54
- return file
55
- end
56
34
  end
57
35
  end
@@ -2,32 +2,18 @@ require 'open-uri'
2
2
  require 'logging'
3
3
 
4
4
  module Spigoter
5
- class PluginBukkit
5
+ class PluginBukkit < Plugin
6
6
  def initialize(website)
7
- @url = website # Url of the plugin
8
- @main_page # Mainpage content
9
- @name # Name of the plugin
10
- @download_page # Content of the download page
11
- @download_url # Download url of the plugin
7
+ super(website)
12
8
 
13
9
  raise "Bad URL #{@url}" if @url.match(/http:\/\/dev.bukkit.org\/bukkit-plugins\/[a-z\-]+\/?/).nil?
14
10
  end
15
- def main_page
16
- return @main_page unless @main_page.nil?
17
- begin
18
- @main_page = open(@url).read
19
- rescue
20
- raise "404 Error, that plugin URL doesn't exists"
21
- end
22
- return @main_page
23
- end
24
11
  def download_page
25
12
  return @download_page unless @download_page.nil?
26
13
  main_page
27
14
  url_download_page = @main_page.match(/<a href="(?<download_page_url>.+)">Download/)[:download_page_url]
28
15
  @download_page = open("http://dev.bukkit.org/#{url_download_page}").read
29
16
  # Don't need to begin-rescue, it's done by main_page
30
- return @download_page
31
17
  end
32
18
  def download_url
33
19
  return @download_url unless @download_url.nil?
@@ -43,14 +29,5 @@ module Spigoter
43
29
  return @name unless @name.nil?
44
30
  @name = /ins\/(?<name>[a-z\-]+)\/?/.match(@url)[:name]
45
31
  end
46
- def download
47
- download_url
48
- begin
49
- file = open(@download_url).read
50
- rescue
51
- raise "Can't download file for #{name}, #{@download_url}, check internet?"
52
- end
53
- return file
54
- end
55
32
  end
56
33
  end
@@ -0,0 +1,29 @@
1
+ require 'open-uri'
2
+ require 'logging'
3
+
4
+ module Spigoter
5
+ class Plugin
6
+ def initialize(website)
7
+ @url = website # Url of the plugin
8
+ #@main_page # Mainpage content
9
+ #@name # Name of the plugin
10
+ #@download_page # Content of the download page
11
+ #@download_url # Download url of the plugin
12
+ #@regexp # Regexp that matches the URL
13
+ #@file # Where the file is stored
14
+ end
15
+ def main_page
16
+ return @main_page unless @main_page.nil?
17
+ begin
18
+ @main_page = open(@url).read
19
+ rescue
20
+ raise "404 Error, that plugin URL doesn't exists"
21
+ end
22
+ return @main_page
23
+ end
24
+ def file
25
+ return @file unless @file.nil?
26
+ @file = Spigoter::Utils.download(download_url) # download_url is implemented in child class
27
+ end
28
+ end
29
+ end
data/spigoter.gemspec CHANGED
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency "guard-bundler", "~> 2.1"
36
36
  spec.add_development_dependency "coveralls", "~> 0.8"
37
37
  spec.add_development_dependency "yard", "~> 0.8"
38
- spec.add_development_dependency "trollop", "~> 2.1"
38
+ spec.add_development_dependency "codeclimate-test-reporter", "~> 0.5.0"
39
39
 
40
40
  spec.add_runtime_dependency "logging", "~> 2.1"
41
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spigoter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Ramos
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-01 00:00:00.000000000 Z
11
+ date: 2016-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -123,19 +123,19 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.8'
125
125
  - !ruby/object:Gem::Dependency
126
- name: trollop
126
+ name: codeclimate-test-reporter
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '2.1'
131
+ version: 0.5.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '2.1'
138
+ version: 0.5.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: logging
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -158,12 +158,13 @@ executables:
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
+ - ".codeclimate.yml"
161
162
  - ".gitignore"
162
163
  - ".rspec"
164
+ - ".rubocop.yml"
163
165
  - ".travis.yml"
164
166
  - CODE_OF_CONDUCT.md
165
167
  - Gemfile
166
- - Gemfile.lock
167
168
  - Guardfile
168
169
  - LICENSE.txt
169
170
  - README.md
@@ -178,9 +179,11 @@ files:
178
179
  - lib/spigoter/cli/cli_update.rb
179
180
  - lib/spigoter/log/log.rb
180
181
  - lib/spigoter/plugins.rb
182
+ - lib/spigoter/utils.rb
181
183
  - lib/spigoter/version.rb
182
184
  - lib/spigoter/webapi/curse.rb
183
185
  - lib/spigoter/webapi/devbukkit.rb
186
+ - lib/spigoter/webapi/plugin.rb
184
187
  - pkg/.gitignore
185
188
  - spigoter.gemspec
186
189
  - tmp/.gitignore