biosphere 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81c2cd041ce9dde3053f5fe132759eb1b613bca0
4
- data.tar.gz: 3e8b438a25f87f2d0768f95e0b9d869ac4e84e08
3
+ metadata.gz: 2166ef6bb2da626eab94885df92a8b3bb79aa505
4
+ data.tar.gz: 4119e8fc79df78d71dfb9e77f61f83899376e506
5
5
  SHA512:
6
- metadata.gz: c860e5fb498ea64939b51c7ff6b224ba8da60c8e81f3b438152f6d1a7ac88edd3b278c95e9edfc39f9719ad30d907276c59010e763701e6f3a6dcf13db33c710
7
- data.tar.gz: 8e9593ac3d4dad87d535983b2150b5a986c52dc6b16dee8baa7a20a560ea94553de4aced5c91ca42a2fb6a5725aebb5b1981a501fbbad72d5f8675902eaefb9d
6
+ metadata.gz: b5361b142eee09f52c3899b5b173267ebd7e4a50162c3d42cf74ff1122eef2bb04d66fd2dc559419d5e59e971ae4394d95306a23bf19beacdb5a0781fbc07f1a
7
+ data.tar.gz: 46d2b4ad7b982ffaf9eb7f5d4e9ddf4b31c710860fee954d768716741fea224da454bbe11855e7bad364c6e9e1a98e764df247591a5ab8884d453e35169c2646
data/bin/biosphere CHANGED
@@ -63,6 +63,12 @@ if !STDOUT.isatty
63
63
  String.disable_colorization true
64
64
  end
65
65
 
66
+ update_info = Biosphere::CLI::UpdateManager::check_for_update()
67
+ if !update_info[:up_to_date]
68
+ STDERR.puts "Notice. There is a new #{update_info[:latest]} biosphere version available. Your current version is #{update_info[:current]}\n".colorize(:yellow)
69
+ end
70
+
71
+
66
72
  options = BiosphereOpts.parse(ARGV)
67
73
 
68
74
  if ARGV.length == 0
@@ -1,7 +1,7 @@
1
1
  require 'pp'
2
2
  require 'treetop'
3
3
  require 'colorize'
4
- require 'net/http'
4
+ require 'rest-client'
5
5
 
6
6
  class Biosphere
7
7
 
@@ -9,23 +9,31 @@ class Biosphere
9
9
  class UpdateManager
10
10
 
11
11
 
12
- def check_for_update(version = ::Biosphere::Version)
13
- url = URI('https://rubygems.org/api/v1/versions/biosphere/latest.json')
12
+ def self.check_for_update(current_version = ::Biosphere::Version)
13
+ begin
14
+ response = RestClient::Request.execute(method: :get, url: 'https://rubygems.org/api/v1/versions/biosphere/latest.json', timeout: 1)
14
15
 
15
- response = get_response_with_redirect(url)
16
- pp response
16
+ if response.code != 200
17
+ return nil
18
+ end
17
19
 
18
- return info
19
- end
20
+ data = JSON.parse(response.body)
21
+
22
+ info = {
23
+ latest: data["version"],
24
+ current: current_version,
25
+ }
20
26
 
21
- private
22
- def get_response_with_redirect(uri)
23
- r = Net::HTTP.get_response(uri)
24
- if r.code == "301"
25
- r = Net::HTTP.get_response(URI.parse(r.header['location']))
27
+ info[:up_to_date] = Gem::Version.new(info[:current]) == Gem::Version.new(info[:latest])
28
+
29
+ return info
30
+ rescue JSON::ParserError
31
+ return nil
32
+ rescue RestClient::Exceptions::ReadTimeout
33
+ return nil
26
34
  end
27
- r
28
35
  end
36
+
29
37
  end
30
38
  end
31
39
  end
@@ -1,3 +1,3 @@
1
1
  class Biosphere
2
- Version = "0.2.2"
2
+ Version = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biosphere
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juho Mäkinen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-16 00:00:00.000000000 Z
11
+ date: 2017-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.6.8
153
+ - !ruby/object:Gem::Dependency
154
+ name: rest-client
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 2.0.2
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 2.0.2
153
167
  description: "Terraform's HCL lacks quite many programming features like iterators,
154
168
  true variables, advanced string manipulation, functions etc.\n\n This Ruby tool
155
169
  provides an easy-to-use DSL to define Terraform compatible .json files which can