azendoo 0.0.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.
@@ -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: