syslibgem 0.1.1 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c44275ac6cad0da93606abbfa831b9c7f0c38515
4
- data.tar.gz: 5ee5c624e9b1a37201caac4ae35b13967709a8eb
3
+ metadata.gz: 24834ca2cc0d69c81006520934c4f5d120abd2a2
4
+ data.tar.gz: fa511f21615b969d6c944bfa0a63e4318c373f88
5
5
  SHA512:
6
- metadata.gz: 16a3062ce047197af47ccf0513101abd62f1d7587a16801501f150ce82f0c0e9c06d056b06bd7b2c8bb05c89a48c614a69289d65d9953b1f5643565764b4ea69
7
- data.tar.gz: 77166d1fcbff040df13138e59e2e88e004d2458263cc5e9a4e1ceab31da2cdd89e48d584eff01178d16d7be32d3124d300471ff23eba338b42cbaccdab3e3786
6
+ metadata.gz: a36395336f0b9c4c4dcc3f19b0a574b3b8346fd423fe1824090a5a6c93e3f2c7a0487d8d6fdc358bc76d0ca3b60bacd17bb963790d44cd2b99285857dbfffdf5
7
+ data.tar.gz: 8a1734fd43d6b224bd45abf0bc4a09470b229d1a47c8676412637dd339cdb832c7bba9ad61b30bdb42d8b0362afb69e4c3608d8bee61fcb2af9f0f7326ec86ab
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in syslibgem.gemspec
6
6
  gemspec
data/Gemfile.lock CHANGED
@@ -1,13 +1,34 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- syslibgem (0.1.0)
4
+ syslibgem (0.1.2)
5
+ bundler (~> 1.16.a)
6
+ colorize
7
+ httparty
8
+ json
9
+ os
5
10
  thor (~> 0.20)
6
11
 
7
12
  GEM
8
13
  remote: https://rubygems.org/
9
14
  specs:
15
+ ast (2.3.0)
16
+ colorize (0.8.1)
10
17
  diff-lcs (1.3)
18
+ httparty (0.15.6)
19
+ multi_xml (>= 0.5.2)
20
+ json (2.1.0)
21
+ mini_portile2 (2.3.0)
22
+ multi_xml (0.6.0)
23
+ nokogiri (1.8.1)
24
+ mini_portile2 (~> 2.3.0)
25
+ os (1.0.0)
26
+ parallel (1.12.0)
27
+ parser (2.4.0.0)
28
+ ast (~> 2.2)
29
+ powerpack (0.1.1)
30
+ rainbow (2.2.2)
31
+ rake
11
32
  rake (10.5.0)
12
33
  rspec (3.7.0)
13
34
  rspec-core (~> 3.7.0)
@@ -22,15 +43,25 @@ GEM
22
43
  diff-lcs (>= 1.2.0, < 2.0)
23
44
  rspec-support (~> 3.7.0)
24
45
  rspec-support (3.7.0)
46
+ rubocop (0.51.0)
47
+ parallel (~> 1.10)
48
+ parser (>= 2.3.3.1, < 3.0)
49
+ powerpack (~> 0.1)
50
+ rainbow (>= 2.2.2, < 3.0)
51
+ ruby-progressbar (~> 1.7)
52
+ unicode-display_width (~> 1.0, >= 1.0.1)
53
+ ruby-progressbar (1.9.0)
25
54
  thor (0.20.0)
55
+ unicode-display_width (1.3.0)
26
56
 
27
57
  PLATFORMS
28
58
  ruby
29
59
 
30
60
  DEPENDENCIES
31
- bundler (~> 1.16.a)
61
+ nokogiri
32
62
  rake (~> 10.0)
33
63
  rspec (~> 3.0)
64
+ rubocop (~> 0.51.0)
34
65
  syslibgem!
35
66
 
36
67
  BUNDLED WITH
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/bin/console CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "syslibgem"
3
+ require 'bundler/setup'
4
+ require 'syslibgem'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +10,5 @@ require "syslibgem"
10
10
  # require "pry"
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
data/exe/syslibgem CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "syslibgem"
3
+ require 'syslibgem'
4
4
 
5
5
  Syslibgem::CLI.start(ARGV)
@@ -0,0 +1,36 @@
1
+ require 'httparty'
2
+ require 'json'
3
+ require 'os'
4
+
5
+ # This class handel the server requests
6
+ class Server
7
+ include HTTParty
8
+
9
+ $uri = 'https://desolate-refuge-66236.herokuapp.com'
10
+ # $URI = 'http://localhost:3000'
11
+
12
+ def self.create(gem, deps)
13
+ json = { gem_name: gem, os_name: find_os, deps: deps }
14
+ HTTParty.post(
15
+ $URI + '/api/v1/deps',
16
+ body: json.to_json,
17
+ headers: { 'Content-Type' => 'application/json',
18
+ 'Accept' => 'application/json' }
19
+ )
20
+ end
21
+
22
+ def self.load(gems)
23
+ json = { gems: gems, os_name: find_os }
24
+ HTTParty.get($URI + '/api/v1/deps', query: json)
25
+ end
26
+
27
+ def self.find_os
28
+ if OS.mac?
29
+ 'mac'
30
+ elsif OS.linux?
31
+ 'lunix'
32
+ else
33
+ 'unknown'
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module Syslibgem
2
- VERSION = "0.1.1"
2
+ VERSION = '0.1.3'.freeze
3
3
  end
data/lib/syslibgem.rb CHANGED
@@ -1,15 +1,80 @@
1
- require "syslibgem/version"
1
+ require 'syslibgem/version'
2
+ require 'syslibgem/server'
2
3
  require 'syslibgem'
3
4
  require 'thor'
5
+ require 'colorize'
6
+ require 'bundler'
4
7
 
5
8
  module Syslibgem
9
+ # The user cli usin thor
6
10
  class CLI < Thor
7
- desc "hello [name]", "say my name"
8
- def hello(name)
9
- if name == "Heisenberg"
10
- puts "you are goddman right"
11
+ desc 'show', 'show required system libraries'
12
+ def show
13
+ gems = Bundler.load.specs.map(&:name)
14
+ respose = Server.load(gems)
15
+ libraries = respose['data']['dependencies']
16
+ unknown = respose['data']['unknown']
17
+ os_name = Server.find_os
18
+ system_libraries_install(os_name, libraries)
19
+ ask_to_learn(unknown)
20
+ end
21
+ desc 'system_libraries_install', 'handel instalation'
22
+ def system_libraries_install(os_name, libraries)
23
+ puts 'Your system needs to install these libraries
24
+ to be able to run bundle install'.yellow
25
+ puts libraries.join(', ').red
26
+ if os_name == 'lunix'
27
+ install_lunix(libraries)
28
+ elsif os_name == 'mac'
29
+ install_mac(libraries)
30
+ else
31
+ abort 'sorry your os is not supported'.red
32
+ end
33
+ end
34
+ desc 'install_lunix', 'install list of system libraries'
35
+ def install_lunix(libraries)
36
+ libraries.each do |pkg|
37
+ puts "Do you want to install #{pkg} library? (y/n)".blue
38
+ system("sudo apt-get -y install #{pkg}") if input
39
+ end
40
+ end
41
+ desc 'install_mac', 'install list of system libraries'
42
+ def install_mac(libraries)
43
+ libraries.each do |pkg|
44
+ puts "Do you want to install #{pkg} library? (y/n)".blue
45
+ system("bower install #{pkg} --no-interactive") if input
46
+ end
47
+ end
48
+ desc 'ask_to_learn', 'asks the user to teach the gem'
49
+ def ask_to_learn(gems)
50
+ puts 'I don\'t know about these gems would
51
+ you like to help me? (y/n)'.yellow
52
+ puts gems.join(', ').red
53
+ learn(gems) if input
54
+ end
55
+ desc 'learn', 'let the user to introduce gems dependencies'
56
+ def learn(gems)
57
+ gems.each do |gem|
58
+ puts "Do you want teach me #{gem} libraries? (y/n)".blue
59
+ push_new_gem(gem) if input
60
+ end
61
+ end
62
+ desc 'push_new_gem', 'teachs the servers a new gem'
63
+ def push_new_gem(gem)
64
+ puts 'add the dependencies names sperated by comma'.blue
65
+ STDOUT.flush
66
+ line = STDIN.gets.chomp
67
+ deps = line.delete(' ').split(',')
68
+ Server.create(gem, deps) unless deps.empty?
69
+ end
70
+ desc 'input', 'reads user input'
71
+ def input
72
+ STDOUT.flush
73
+ input = STDIN.gets.chomp
74
+ if 'yY'.include? input
75
+ true
11
76
  else
12
- puts "say my name"
77
+ false
13
78
  end
14
79
  end
15
80
  end
data/syslibgem.gemspec CHANGED
@@ -1,31 +1,36 @@
1
1
 
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "syslibgem/version"
4
+ require 'syslibgem/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "syslibgem"
7
+ spec.name = 'syslibgem'
8
8
  spec.version = Syslibgem::VERSION
9
- spec.authors = ["abdelkarim00"]
10
- spec.email = ["kimoacm@gmail.com"]
11
-
12
- spec.summary = %q{Write a short summary, because RubyGems requires one.}
13
- spec.description = %q{Write a longer description or delete this line.}
14
- spec.homepage = "https://github.com/abdelkarim00/syslibgem"
15
- spec.license = "MIT"
9
+ spec.authors = ['abdelkarim00']
10
+ spec.email = ['kimoacm@gmail.com']
16
11
 
12
+ spec.summary = '{Write a short summary, because RubyGems requires one.}'
13
+ spec.description = '{Write a longer description or delete this line.}'
14
+ spec.homepage = 'https://github.com/abdelkarim00/syslibgem'
15
+ spec.license = 'MIT'
17
16
 
18
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
18
  f.match(%r{^(test|spec|features)/})
20
19
  end
21
- spec.bindir = "exe"
20
+ spec.bindir = 'exe'
22
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
24
23
 
25
- spec.add_dependency "thor", "~> 0.20"
24
+ spec.add_dependency 'bundler'
25
+ spec.add_dependency 'colorize'
26
+ spec.add_dependency 'httparty'
27
+ spec.add_dependency 'json'
28
+ spec.add_dependency 'os'
29
+ spec.add_dependency 'thor', '~> 0.20'
26
30
 
27
- spec.add_development_dependency "bundler", "~> 1.16.a"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
30
- spec.add_development_dependency "syslibgem"
31
+ spec.add_development_dependency 'nokogiri'
32
+ spec.add_development_dependency 'rake', '~> 10.0'
33
+ spec.add_development_dependency 'rspec', '~> 3.0'
34
+ spec.add_development_dependency 'rubocop', '~> 0.51.0'
35
+ spec.add_development_dependency 'syslibgem'
31
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: syslibgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - abdelkarim00
@@ -10,6 +10,76 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2017-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: colorize
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: httparty
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: os
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
13
83
  - !ruby/object:Gem::Dependency
14
84
  name: thor
15
85
  requirement: !ruby/object:Gem::Requirement
@@ -25,19 +95,19 @@ dependencies:
25
95
  - !ruby/object:Gem::Version
26
96
  version: '0.20'
27
97
  - !ruby/object:Gem::Dependency
28
- name: bundler
98
+ name: nokogiri
29
99
  requirement: !ruby/object:Gem::Requirement
30
100
  requirements:
31
- - - "~>"
101
+ - - ">="
32
102
  - !ruby/object:Gem::Version
33
- version: 1.16.a
103
+ version: '0'
34
104
  type: :development
35
105
  prerelease: false
36
106
  version_requirements: !ruby/object:Gem::Requirement
37
107
  requirements:
38
- - - "~>"
108
+ - - ">="
39
109
  - !ruby/object:Gem::Version
40
- version: 1.16.a
110
+ version: '0'
41
111
  - !ruby/object:Gem::Dependency
42
112
  name: rake
43
113
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +136,20 @@ dependencies:
66
136
  - - "~>"
67
137
  - !ruby/object:Gem::Version
68
138
  version: '3.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 0.51.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.51.0
69
153
  - !ruby/object:Gem::Dependency
70
154
  name: syslibgem
71
155
  requirement: !ruby/object:Gem::Requirement
@@ -80,7 +164,7 @@ dependencies:
80
164
  - - ">="
81
165
  - !ruby/object:Gem::Version
82
166
  version: '0'
83
- description: Write a longer description or delete this line.
167
+ description: "{Write a longer description or delete this line.}"
84
168
  email:
85
169
  - kimoacm@gmail.com
86
170
  executables:
@@ -101,6 +185,7 @@ files:
101
185
  - bin/setup
102
186
  - exe/syslibgem
103
187
  - lib/syslibgem.rb
188
+ - lib/syslibgem/server.rb
104
189
  - lib/syslibgem/version.rb
105
190
  - syslibgem.gemspec
106
191
  homepage: https://github.com/abdelkarim00/syslibgem
@@ -126,5 +211,5 @@ rubyforge_project:
126
211
  rubygems_version: 2.6.14
127
212
  signing_key:
128
213
  specification_version: 4
129
- summary: Write a short summary, because RubyGems requires one.
214
+ summary: "{Write a short summary, because RubyGems requires one.}"
130
215
  test_files: []