ecraft-ow 0.1.0

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,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 31bc50465198e36a993e209734a0a37ae084e6f299b6cbfde5b9d7c3a36b1eee
4
+ data.tar.gz: 75c229054d0bd9205c133c18dc022fd85df394638a936ba0b1a0f9cf46c53072
5
+ SHA512:
6
+ metadata.gz: e7a660196c63e0fc21eb68897ad7c4ffe6daf98237d13b2fa58e37e1f30a72af2843012eac39227d899030b3a9806849200166b3b324581e085a0cfd64e8e444
7
+ data.tar.gz: 1e7ce5751b3047f5635c9570fc80cc41aab6c420a7977c0565d4468709aef6a956e725e9333d9123f4c10db1079f52612f1fa6bec6f5507d1e20fab69fc86ad6
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cont
4
+ # contador de letras
5
+ class Char
6
+ def count_char(string, char)
7
+ string.to_json.to_s.upcase.count(char.upcase)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'prawn'
4
+ require 'pdf/reader'
5
+ require 'json'
6
+ require 'open-uri'
7
+
8
+ module Document
9
+ # clase con todos los metodos para manipular PDF
10
+ class Pdf
11
+ def create(response)
12
+ t = Time.now.strftime('%F_%H:%M')
13
+ Prawn::Document.generate('./public/openWeather:' + t + '.pdf') do
14
+ text response.to_s
15
+ end
16
+ puts 'Su archivo ah sido guardado con exito'
17
+ end
18
+
19
+ def read
20
+ # devuelve el ultimo archivo modificado en la carpeta public
21
+ last_file = Dir.glob('./public/*').max_by { |f| File.mtime(f) }
22
+ reader = PDF::Reader.new(last_file)
23
+ reader.pages.each(&:text)
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'document.rb'
4
+ require_relative 'request.rb'
5
+ require_relative 'counter.rb'
6
+ require 'tty-prompt'
7
+
8
+ module Main
9
+ # clase principal del programa
10
+ class Menu
11
+ def initialize
12
+ @opts = [
13
+ { name: 'buscar una letra', value: 1 },
14
+ { name: 'consultar clima', value: 2 },
15
+ { name: 'salir', value: 3 }
16
+ ]
17
+ @continue = true
18
+ @prompt = TTY::Prompt.new
19
+ system 'clear'
20
+ end
21
+
22
+ def selec_ciudad
23
+ ciudad = @prompt.ask('sobre que ciudad desea buscar?')
24
+ hb = Request::HistoryBulk.new
25
+ res = hb.by_city(ciudad)
26
+ pdf = Document::Pdf.new
27
+ pdf.create(res)
28
+ end
29
+
30
+ def selec_letra
31
+ letra = @prompt.ask('que letra desea buscar?')
32
+ pdf = Document::Pdf.new
33
+ string = pdf.read
34
+ counter = Cont::Char.new
35
+ puts counter.count_char(string, letra)
36
+ end
37
+
38
+ def mostrar_opciones
39
+ ops_selec = @prompt.select('que desea hacer? ', @opts, enum: ')')
40
+ case ops_selec
41
+ when 1 then selec_letra
42
+ when 2 then selec_ciudad
43
+ else
44
+ exit
45
+ end
46
+ end
47
+
48
+ def menu_start
49
+ while @continue == true
50
+ mostrar_opciones
51
+ @continue = @prompt.yes?('Desea continuar? ')
52
+ system 'clear'
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'uri'
4
+ require 'net/http'
5
+ require 'awesome_print'
6
+ require 'json'
7
+
8
+ module Request
9
+ # Clases segun API
10
+ class HistoryBulk
11
+ def initialize
12
+ @app_id = '1df2f62250291f78ccc5dabfec972da0'
13
+ @base_url = 'http://api.openweathermap.org/data/2.5/'
14
+ end
15
+
16
+ def by_city(city)
17
+ url = URI("#{@base_url}weather?q=" + city + "&appid=#{@app_id}")
18
+ http = Net::HTTP.new(url.host, url.port)
19
+ request = Net::HTTP::Get.new(url)
20
+ response = http.request(request)
21
+ response = response.read_body
22
+ response = JSON.parse(response)
23
+ ap response
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'ecraft-ow/menu.rb'
4
+
5
+ m = Main::Menu.new
6
+ m.menu_start
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ecraft-ow
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Lucas Saldias
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-02-26 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Devuelve el tiempo segun la ciudad y cuenta letras en un pdf
14
+ email: saldiasl@ecraft.com.ar
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/ecraft-ow/counter.rb
20
+ - lib/ecraft-ow/document.rb
21
+ - lib/ecraft-ow/menu.rb
22
+ - lib/ecraft-ow/request.rb
23
+ - lib/ecraft_ow.rb
24
+ homepage: http://www.ecraf.com.ar
25
+ licenses:
26
+ - MIT
27
+ metadata: {}
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ required_rubygems_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ requirements: []
43
+ rubygems_version: 3.0.6
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Primer proyecto en ruby
47
+ test_files: []