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.
- checksums.yaml +7 -0
- data/lib/ecraft-ow/counter.rb +10 -0
- data/lib/ecraft-ow/document.rb +26 -0
- data/lib/ecraft-ow/menu.rb +56 -0
- data/lib/ecraft-ow/request.rb +26 -0
- data/lib/ecraft_ow.rb +6 -0
- metadata +47 -0
checksums.yaml
ADDED
@@ -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,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
|
data/lib/ecraft_ow.rb
ADDED
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: []
|