twoffein-client 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ results.html
3
+ pkg
4
+ html
5
+ *~
6
+ *.swp
7
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --fail-fast
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.9.3@twoffein-client --create
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in twoffein-client.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 DSIW
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,207 @@
1
+ # Twoffein-Client
2
+ Client-Version: 1.0.0 | API-Version: 0.2
3
+
4
+ This client for [Twoffein](http://twoffein.com/)'s [API](http://twoffein.com/api-faq/).
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'twoffein-client'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install twoffein-client
19
+
20
+ ## Usage
21
+
22
+ ```
23
+ NAME
24
+ twoffein-client - Client for API 0.2 twoffein.de
25
+
26
+ SYNOPSIS
27
+ twoffein-client [global options] command [command options] [arguments...]
28
+
29
+ VERSION
30
+ 1.0.0
31
+
32
+ GLOBAL OPTIONS
33
+ --help - Show this message
34
+ --version - Show version
35
+
36
+ COMMANDS
37
+ cookie - Give cookie to RECEIVER
38
+ drinks - List all drinks
39
+ help - Shows a list of commands or help for one command
40
+ profile - List the profile, which you have chosen by PROFILE
41
+ tweet - Tweet your drinking DRINK
42
+
43
+ ```
44
+
45
+ ## Examples
46
+
47
+ ### Drinks
48
+
49
+ **Input:**
50
+
51
+ twoffein-client drinks
52
+
53
+ **Output:**
54
+ ```
55
+ Drink (key)
56
+ -------------------------------------------
57
+ Kaffee (kaffee)
58
+ Milchkaffee (milchkaffee)
59
+ Eiskaffee (eiskaffee)
60
+ Energy Drink (energiedrink)
61
+ Cola (cola)
62
+ Cola Light (colalight)
63
+ Cola Zero (colazero)
64
+ Cola-Mix (colamix)
65
+ Cola-Mix Light (colamixlight)
66
+ Cola-Mix Zero (colamixzero)
67
+ Bubble Tea (bubbletea)
68
+ Cherry Cola (cherrycola)
69
+ Vanilla Cola (vanillacola)
70
+ Caffé Latte (cafelatte)
71
+ Caffé au Lait (cafeaulait)
72
+ Latte Macchiato (lattemacchiato)
73
+ Espresso Macciato (espressomacciato)
74
+ Espresso con Panne (espressoconpanne)
75
+ Flat White (flatwhite)
76
+ Caffé Breve (caffebreve)
77
+ Caffé Mocha (caffemocha)
78
+ Americano (americano)
79
+ Melange (melange)
80
+ Red Eye (redeye)
81
+ Tee (tee)
82
+ Eistee (eistee)
83
+ Kakao (kakao)
84
+ Mate (mate)
85
+ Espresso (espresso)
86
+ Cappuccino (cappuccino)
87
+ Vannillochino (vannillochino)
88
+ Instantkaffee (instantkaffee)
89
+ Mokka (mokka)
90
+ Chai-Latte (chailatte)
91
+ Grünen Tee (guenertee)
92
+ Schwarztee (schwarztee)
93
+ 1337MATE (leetmate)
94
+ Club-Mate (clubmate)
95
+ Club-Mate Cola (clubmatecola)
96
+ ICE-Tea KRAFTSTOFF (kraftstoff)
97
+ Premium-Cola (premiumcola)
98
+ Dr Pepper (drpepper)
99
+ Vita Cola (vitacola)
100
+ Vita Cola Mix (vitacolamix)
101
+ Vita Cola Pur (vitacolapur)
102
+ Schokocino (schokocino)
103
+ afri cola (africola)
104
+ afri sugarfree (afrisugarfree)
105
+ afri power (afripower)
106
+ fritz-kola (fritzkola)
107
+ fritz-kola stevia (fritzkolastevia)
108
+ fritz-kola zuckerfrei (fritzkolazuckerfrei)
109
+ mischmasch (mischmasch)
110
+ Haji Cola (hajicola)
111
+ KILLERFISH Hot Energy (killerfishhotenergy)
112
+ Café Frappé (cafefrappe)
113
+ Energy Shot (energyshot)
114
+ Wasser (wasser)
115
+ Mineralwasser (mineralwasser)
116
+ Apfelsaft (apfelsaft)
117
+ Orangensaft (orangensaft)
118
+ Milch (milch)
119
+ Sojamilch (sojamilch)
120
+ Orangenlimonade (orangenlimonade)
121
+ Zitronenlimonade (zitronenlimonade)
122
+ Kräuterlimonade (kraeuterlimonade)
123
+ Apfelsaftschorle (apfelsaftschorle)
124
+ Ginger Ale (gingerale)
125
+ Tonic Water (tonicwater)
126
+ Bitter Lemon (bitterlemon)
127
+ Bananensaft (bananensaft)
128
+ Traubensaft (traubensaft)
129
+ Milchshake (milchshake)
130
+ Joghurtdrink (joghurtdrink)
131
+ Smoothie (smoothie)
132
+ Espresso Doppio (espressodoppio)
133
+ Fassbrause (fassbrause)
134
+ Ayran (ayran)
135
+ Flora Power (florapower)
136
+ VOLT Cola (voltcola)
137
+ COFAIN 699 (cofain669)
138
+ Erdbeersaft (erdbeersaft)
139
+ KiBa (kiba)
140
+ Müllermilch (muellermilch)
141
+ ```
142
+
143
+ ### Drinks (filtered)
144
+
145
+ **Input:**
146
+
147
+ twoffein-client drinks --grep club
148
+
149
+ **Output:**
150
+ ```
151
+ Drink (key)
152
+ ------------------------------------
153
+ Club-Mate (clubmate)
154
+ Club-Mate Cola (clubmatecola)
155
+ ```
156
+
157
+ ### Profile
158
+
159
+ **Input:**
160
+
161
+ twoffein-client profile
162
+
163
+ **Output:**
164
+ ```
165
+ Quest: Blitzlicht
166
+ Drink: Club-Mate
167
+ Rank: 75
168
+ Rank Title: Kaffeekännchen
169
+ Drunken: 12
170
+ Bluttwoffeinkonzentration: 1%
171
+ First Login: 2012-07-08 13:36
172
+ Screen Name: DSIW
173
+ ```
174
+
175
+ ### Cookie
176
+
177
+ **Input:**
178
+
179
+ twoffein-client cookie DSIW
180
+
181
+ **Output:**
182
+ ```
183
+ Lol.
184
+ ```
185
+
186
+ _Notice: You can't send yourself a cookie._
187
+
188
+ ### Tweet
189
+
190
+ **Input:**
191
+
192
+ twoffein-client tweet clubmate
193
+
194
+ **Output:**
195
+ ```
196
+ Ich trinke gerade Club-Mate.
197
+ Info: Youre Tweet has been tweeted. Thanks.
198
+ Drinks today: 1
199
+ ```
200
+
201
+ ## Contributing
202
+
203
+ 1. Fork it
204
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
205
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
206
+ 4. Push to the branch (`git push origin my-new-feature`)
207
+ 5. Create new Pull Request
data/README.md.erb ADDED
@@ -0,0 +1,52 @@
1
+ # Twoffein-Client
2
+ Client-Version: <%= require File.absolute_path("lib/twoffein-client/version.rb", __FILE__); Twoffein::Client::VERSION %> | API-Version: <%= require File.absolute_path("lib/twoffein-client/version.rb", __FILE__); Twoffein::Server::VERSION %>
3
+
4
+ This client for [Twoffein](http://twoffein.com/)'s [API](http://twoffein.com/api-faq/).
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ gem 'twoffein-client'
11
+
12
+ And then execute:
13
+
14
+ $ bundle
15
+
16
+ Or install it yourself as:
17
+
18
+ $ gem install twoffein-client
19
+
20
+ ## Usage
21
+
22
+ ```
23
+ <%= %x[bundle exec bin/twoffein-client --help] %>
24
+ ```
25
+
26
+ ## Examples
27
+ <%
28
+ def example(title, command);
29
+ title = "### #{title}"
30
+ input = "**Input:**\n\n #{command.gsub("bundle exec bin/",'')}"
31
+ output = "**Output:**\n```\n#{%x[#{command}]}```"
32
+ [title, input, output].join("\n\n")
33
+ end
34
+ %>
35
+
36
+ <%= example "Drinks", "bundle exec bin/twoffein-client drinks" %>
37
+
38
+ <%= example "Drinks (filtered)", "bundle exec bin/twoffein-client drinks --grep club" %>
39
+
40
+ <%= example "Profile", "bundle exec bin/twoffein-client profile" %>
41
+
42
+ <%= example "Cookie", "bundle exec bin/twoffein-client cookie DSIW" %>
43
+
44
+ <%= example "Tweet", "bundle exec bin/twoffein-client tweet clubmate" %>
45
+
46
+ ## Contributing
47
+
48
+ 1. Fork it
49
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
50
+ 3. Commit your changes (`git commit -am 'Added some feature'`)
51
+ 4. Push to the branch (`git push origin my-new-feature`)
52
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,67 @@
1
+ require 'bundler'
2
+ require 'rake/clean'
3
+
4
+ require 'rspec/core/rake_task'
5
+
6
+ require 'cucumber'
7
+ require 'cucumber/rake/task'
8
+ gem 'rdoc' # we need the installed RDoc gem, not the system one
9
+ require 'rdoc/task'
10
+
11
+ require 'pathname'
12
+
13
+ require File.expand_path('../lib/twoffein-client/version', __FILE__)
14
+
15
+ include Rake::DSL
16
+
17
+ Bundler::GemHelper.install_tasks
18
+
19
+ RSpec::Core::RakeTask.new do |t|
20
+ # Put spec opts in a file named .rspec in root
21
+ end
22
+
23
+ CUKE_RESULTS = 'results.html'
24
+ CLEAN << CUKE_RESULTS
25
+ Cucumber::Rake::Task.new(:features) do |t|
26
+ t.cucumber_opts = "features --format html -o #{CUKE_RESULTS} --format pretty --no-source -x"
27
+ t.fork = false
28
+ end
29
+
30
+ Rake::RDocTask.new do |rd|
31
+ #rd.main = "README.rdoc"
32
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
33
+ end
34
+
35
+ require 'rake/version_task'
36
+ Rake::VersionTask.new
37
+
38
+ task :default => [:spec,:features]
39
+
40
+ module Erb
41
+ require 'erb'
42
+
43
+ def rm_basename_ext file, extension
44
+ path = Pathname.new(file)
45
+ path.basename.sub(/\.#{extension}$/, '').to_s
46
+ end
47
+
48
+ def target_of file
49
+ rm_basename_ext(file, "erb")
50
+ end
51
+
52
+ def generate_file file, options={}
53
+ target = target_of file
54
+ puts "generating #{target}"
55
+ return if options[:noop]
56
+
57
+ File.open(target, 'w') do |new_file|
58
+ new_file.write ERB.new(File.read(file)).result(binding)
59
+ end
60
+ rescue Interrupt
61
+ end
62
+ end
63
+
64
+ desc "Generate README.md"
65
+ task :gen_readme do
66
+ Erb::generate_file "README.md.erb"
67
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'twoffein-client'
4
+ require 'gli'
5
+
6
+ include Twoffein
7
+ include GLI::App
8
+
9
+ DEBUG = $DEBUG
10
+
11
+ program_desc "Client for API #{Server::VERSION} twoffein.de"
12
+
13
+ desc "Show version"
14
+ version Client::VERSION
15
+
16
+ desc 'List the profile, which you have chosen by PROFILE'
17
+ arg_name 'Name of profile which will be shown'
18
+ command :profile do |c|
19
+ #c.desc "Grep all profiles"
20
+ #c.flag :grep
21
+
22
+ c.action do |global_options,options,args|
23
+ profile = args.first
24
+ #if options[:grep]
25
+ #puts Profiles.search(/#{options["grep"]}/i)
26
+ #else
27
+ puts Profile.get profile
28
+ #end
29
+ end
30
+ end
31
+
32
+ desc "List all drinks"
33
+ arg_name "Describe arguments to drinks here"
34
+ command :drinks do |c|
35
+ c.desc "Grep all drinks"
36
+ c.flag :grep
37
+
38
+ c.action do |global_options,options,args|
39
+ if options[:grep]
40
+ puts Drinks.search(/#{options[:grep]}/i)
41
+ else
42
+ puts Drinks.new
43
+ end
44
+ end
45
+ end
46
+
47
+ desc 'Tweet your drinking DRINK'
48
+ arg_name 'key_of_drink (see command "drinks")'
49
+ command :tweet do |c|
50
+ c.desc "Drink with somebody"
51
+ c.flag :with
52
+
53
+ c.action do |global_options,options,args|
54
+ help_now!('DRINK is required') if args.empty?
55
+ drink = args.first
56
+ tweet = Tweet.new(drink, options[:with])
57
+ puts tweet.to_s
58
+ begin
59
+ info = tweet.publish unless DEBUG
60
+ puts 'Info: ' + info[:info] unless info.nil?
61
+ puts 'Drinks today: ' + info[:tweets].to_s if info && !info[:tweets].nil?
62
+ rescue Twoffein::Error => e
63
+ puts e.message
64
+ end
65
+ end
66
+ end
67
+
68
+ desc 'Give cookie to RECEIVER'
69
+ arg_name 'Receiver receives your cookie'
70
+ command :cookie do |c|
71
+ c.action do |global_options,options,args|
72
+ help_now!('RECEIVER is required') if args.empty?
73
+ receiver = args.first
74
+ cookie = Cookie.new(receiver)
75
+ begin
76
+ info = cookie.send unless DEBUG
77
+ puts 'Info: ' + info[:info] unless info.nil?
78
+ rescue Twoffein::Error => e
79
+ puts e.message
80
+ end
81
+ end
82
+ end
83
+
84
+ exit run(ARGV)