azendoo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3643bcb418c4745c6d653d1e026df169189f7639
4
+ data.tar.gz: a96759d795642296e42d6faf1a29f7705c16334f
5
+ SHA512:
6
+ metadata.gz: 2d9965d7159d6fce7e0ea5d9bf18c320aeac4a11045a7d0707358a2a153256094096a177d98cb39d0abfd0b4eaad1f88e039e74e9e1bd7d38cf4e571fc0423ae
7
+ data.tar.gz: a3b23acfcb608753ccf2be25693b6b569dbf7c0c01384fea4925979585476e641aab56a5eeb77a0297a8c148d4f273dc09c96aeb04e97b8965166738968ac4a5
@@ -0,0 +1,54 @@
1
+ require 'active_resource'
2
+ module Azendoo
3
+ class Conf
4
+
5
+ def self.configure
6
+ yield self
7
+
8
+ require File.join(File.dirname(__FILE__), 'resources/token')
9
+ require File.join(File.dirname(__FILE__), 'resources/az_resource')
10
+ require File.join(File.dirname(__FILE__), 'resources/user')
11
+ require File.join(File.dirname(__FILE__), 'resources/conversation')
12
+ require File.join(File.dirname(__FILE__), 'resources/task')
13
+ require File.join(File.dirname(__FILE__), 'resources/subject')
14
+ require File.join(File.dirname(__FILE__), 'resources/workspace')
15
+ end
16
+
17
+ def self.url
18
+ @url || "https://api.azendoo.com"
19
+ end
20
+
21
+ def self.url=(url)
22
+ @url = url
23
+ end
24
+
25
+ def self.email
26
+ @email
27
+ end
28
+
29
+ def self.email=(email)
30
+ @email = email
31
+ end
32
+
33
+ def self.password
34
+ @password
35
+ end
36
+
37
+ def self.password=(pass)
38
+ @password = pass
39
+ end
40
+
41
+ def self.access_token
42
+ unless @token
43
+ t = Token.new(email: Azendoo::Conf.email, password: Azendoo::Conf.password)
44
+ t.save
45
+ @token = t.access_token
46
+ end
47
+ @token
48
+ end
49
+
50
+ def self.access_token=(token)
51
+ @token = token
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,4 @@
1
+ class AzResource < ActiveResource::Base
2
+ self.site = Azendoo::Conf.url
3
+ self.headers["Authorization"] = " Token token=#{Azendoo::Conf.access_token}"
4
+ end
@@ -0,0 +1,11 @@
1
+ module Azendoo
2
+ class Conversation < AzResource
3
+ class Message < AzResource
4
+ has_one :author, class_name: 'Azendoo::User'
5
+ end
6
+
7
+ has_one :author, class_name: 'Azendoo::User'
8
+ has_many :messages, class_name: 'Azendoo::Conversation::Message'
9
+
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ module Azendoo
2
+ class Subject < AzResource
3
+ has_many :tasks, class_name: 'Azendoo::Task'
4
+ has_many :conversations, class_name: 'Azendoo::Conversation'
5
+
6
+ def add_member(user)
7
+ self.post(:add_member, user_id: user.id)
8
+ end
9
+
10
+ def remove_member(user)
11
+ self.post(:remove_member, user_id: user.id)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ module Azendoo
2
+ class Task < AzResource
3
+ has_one :owner, class_name: 'Azendoo::User'
4
+ has_one :author, class_name: 'Azendoo::User'
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ class Token < ActiveResource::Base
2
+ self.site = Azendoo::Conf.url
3
+ self.include_root_in_json = false
4
+
5
+ def to_json(options = {})
6
+ {
7
+ email: self.email,
8
+ password: self.password
9
+ }.to_json(options)
10
+ end
11
+ def load_attributes_from_response(r)
12
+ load(JSON.load(r.body))
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ module Azendoo
2
+ class User < AzResource
3
+ def self.me
4
+ find(:me)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module Azendoo
2
+ class Workspace < AzResource
3
+ has_many :subjects, class_name: 'Azendoo::Subject'
4
+
5
+ def add_member_by_email(email)
6
+ self.post(:relationships, email: email)
7
+ end
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,52 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: azendoo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Mathieu Laporte
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-27 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Use Azendoo's resource in your applications ;-)
14
+ email: mlaporte+gem@azendoo.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/azendoo.rb
20
+ - lib/resources/az_resource.rb
21
+ - lib/resources/conversation.rb
22
+ - lib/resources/subject.rb
23
+ - lib/resources/task.rb
24
+ - lib/resources/token.rb
25
+ - lib/resources/user.rb
26
+ - lib/resources/workspace.rb
27
+ homepage: https://api.azendoo.com/doc/
28
+ licenses:
29
+ - WTFPL
30
+ metadata: {}
31
+ post_install_message:
32
+ rdoc_options: []
33
+ require_paths:
34
+ - lib
35
+ required_ruby_version: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ required_rubygems_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ requirements: []
46
+ rubyforge_project:
47
+ rubygems_version: 2.2.2
48
+ signing_key:
49
+ specification_version: 4
50
+ summary: A gem to consume azendoo API
51
+ test_files: []
52
+ has_rdoc: