ifin24-client 0.1.0 → 0.1.1
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.
- data/VERSION +1 -1
- data/bin/ifin24 +63 -9
- data/lib/ifin24.rb +0 -1
- data/lib/ifin24/client.rb +6 -1
- data/lib/ifin24/configuration.rb +1 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/bin/ifin24
CHANGED
@@ -1,21 +1,75 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
2
|
|
4
3
|
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
4
|
|
6
5
|
require 'rubygems'
|
7
|
-
|
8
|
-
require 'yaml'
|
9
6
|
require 'mechanize'
|
10
7
|
require 'highline/import'
|
11
8
|
|
9
|
+
require 'optparse'
|
10
|
+
require 'ostruct'
|
11
|
+
|
12
12
|
require 'ifin24'
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
class App
|
15
|
+
|
16
|
+
def initialize(arguments)
|
17
|
+
@arguments = arguments
|
18
|
+
|
19
|
+
# Set defaults
|
20
|
+
@options = OpenStruct.new
|
21
|
+
@options.verbose = false
|
22
|
+
@options.quiet = false
|
23
|
+
end
|
24
|
+
|
25
|
+
def run
|
26
|
+
parse_options
|
27
|
+
|
28
|
+
config = Ifin24::Configuration.instance
|
29
|
+
login = @options.login || config[:login]
|
30
|
+
password = @options.password || config[:password]
|
31
|
+
client = Ifin24::Client.new(login, password)
|
32
|
+
|
33
|
+
if client.logged?
|
34
|
+
console = Ifin24::Console.new(client)
|
35
|
+
console.main_menu
|
36
|
+
else
|
37
|
+
puts "Bad login or password."
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
protected
|
42
|
+
|
43
|
+
def parse_options
|
44
|
+
# Specify options
|
45
|
+
opts = OptionParser.new
|
46
|
+
opts.set_summary_indent(' ')
|
47
|
+
script_name = File.basename($0)
|
48
|
+
opts.banner = "Usage: #{script_name} [OPTIONS]"
|
49
|
+
opts.define_head "Abstract description of script"
|
50
|
+
|
51
|
+
opts.separator ""
|
52
|
+
opts.separator "Mandatory arguments to long options are mandatory for short options too."
|
53
|
+
opts.separator ""
|
54
|
+
|
55
|
+
opts.on("-l", "--login", "User login") do |login|
|
56
|
+
@options.login = login
|
57
|
+
end
|
58
|
+
|
59
|
+
opts.on("-p", "--password", "User password") do |password|
|
60
|
+
@options.password = password
|
61
|
+
end
|
62
|
+
|
63
|
+
opts.on_tail("-h", "--help", "Show this help message.") do
|
64
|
+
puts opts
|
65
|
+
exit
|
66
|
+
end
|
67
|
+
|
68
|
+
opts.parse!(@arguments) rescue return false
|
69
|
+
end
|
70
|
+
|
19
71
|
end
|
20
72
|
|
21
|
-
|
73
|
+
# Create and run the application
|
74
|
+
app = App.new(ARGV)
|
75
|
+
app.run
|
data/lib/ifin24.rb
CHANGED
data/lib/ifin24/client.rb
CHANGED
@@ -67,6 +67,10 @@ class Ifin24::Client
|
|
67
67
|
return entries, total_pages
|
68
68
|
end
|
69
69
|
|
70
|
+
def logged?
|
71
|
+
@logged
|
72
|
+
end
|
73
|
+
|
70
74
|
private
|
71
75
|
|
72
76
|
def login(login, password)
|
@@ -76,7 +80,8 @@ class Ifin24::Client
|
|
76
80
|
form['login'] = login
|
77
81
|
form['password'] = password
|
78
82
|
|
79
|
-
form.submit
|
83
|
+
page = form.submit
|
84
|
+
@logged = page.forms.first.nil?
|
80
85
|
end
|
81
86
|
|
82
87
|
def fetch_categories
|
data/lib/ifin24/configuration.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ifin24-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "\xC5\x81ukasz Bandzarewicz"
|