sqwiggle-ruby 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9861f73c0c503ae86faae33ce3ee99d9eef3a174
4
- data.tar.gz: 14385e245da76c95eea2e39c73f5692e597f8f28
3
+ metadata.gz: 14b3945293f0642e0d9270fbd303850511aa4f02
4
+ data.tar.gz: c72b4b53e004bdd3c9fd27c1add24cedae67962a
5
5
  SHA512:
6
- metadata.gz: b34a848bd1cae0cd70750c2a9df6fcb4d95a923cd4391521241c27d29359f788ddd188a5f8739671a0efc6d0fbd57e9cb0805fbd2cd70f85e59b3f7dc8b53bfa
7
- data.tar.gz: d6bfe2fc293cc46c0e8cc5a39fc1a5e31c28467d0e91706eb8433877a5e5c7e37f87956cfc4457948c32b88d7b393d0e81f2e753f25e89d80a4ed57f1e8000bc
6
+ metadata.gz: 5600af7ae02615d1b411d092611413f28fa2aabe8282f9a78a5e0eecdf119627606f2b5431f60da12d13d40a9c8c22edfb9207bc29bfa490c2a7bb9378076176
7
+ data.tar.gz: 6231e7c35e8228a53747f4243402d09416a400a61bb6c344d733ab6cf549bf029645379c95258d72ebd3de9e367b7f73c11cdf266fba6a8f4c71b78e24e012a9
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ tmp
19
19
  .yardoc
20
20
  _yardoc
21
21
  doc/
22
+ .DS_Store
data/.travis.yml CHANGED
@@ -4,6 +4,7 @@ rvm:
4
4
  - 1.9.2
5
5
  - 1.9.3
6
6
  - 2.0.0
7
+ - 2.1.0
7
8
  - rbx
8
9
  - ruby-head
9
10
  matrix:
@@ -20,3 +21,7 @@ matrix:
20
21
  - rvm: ruby-head
21
22
  fast_finish: true
22
23
  script: bundle exec rspec
24
+ notifications:
25
+ sqwiggle:
26
+ rooms:
27
+ - secure: GCzKzx6svwXQvRekfXojzgJsE7hJz4mb8PMy71d8AWyOYgEGAyKH9Ysb5pXQuMXlWo7esCegzci398FY9+zNzYl8RZxX4AR/uND2scaO8alp09/i6QCz/JdU8JZC5H9tSWPU6xCDAdbPb3XdEYYVZaj23Ckn7SqtYg/KngX5zs8=
data/Gemfile CHANGED
@@ -1,4 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'rspec' #for travis
4
+ gem 'fuubar' #for travis
5
+ gem 'webmock' #for travis
6
+
3
7
  # Specify your gem's dependencies in sqwiggle-ruby.gemspec
4
8
  gemspec
data/README.md CHANGED
@@ -1,12 +1,8 @@
1
1
  # Ruby Client for the Sqwiggle API
2
2
 
3
- The API and this gem are currently in ~~BETA~~ ALPHA
4
-
5
- Comments, pull requests, discussion and input are all welcome at this stage.
6
-
7
3
  ![Build Status](https://api.travis-ci.org/sqwiggle/sqwiggle-ruby.png)
8
4
 
9
- A Ruby gem for the Sqwiggle API.
5
+ A Ruby wrapper for the Sqwiggle REST API.
10
6
 
11
7
  ## Installation
12
8
 
@@ -22,13 +18,71 @@ Or install it yourself as:
22
18
 
23
19
  $ gem install sqwiggle-ruby
24
20
 
25
- ## Usage
21
+ ## Configuration
26
22
 
27
23
  Create an API Client at https://www.sqwiggle.com/company/clients
28
24
 
25
+ Once you have a token there are two ways of instantiating an instance of a client.
26
+
27
+ ### Globally (not thread safe)
28
+ ```ruby
29
+ Sqwiggle.token = 'your token here'
30
+ client = Sqwiggle.client
31
+ ```
32
+ ### Locally (thread safe)
33
+ ```ruby
34
+ client = Sqwiggle.client('your token here')
35
+ ```
36
+ Which is basically syntactic sugar for
37
+ ```ruby
38
+ Sqwiggle::Api::Client.new('your token here')
39
+ ```
40
+
41
+ ## Usage
42
+
43
+ ### Services
44
+
45
+ A service acts a bit like an ActiveRecord relation proxy
46
+
47
+ ```ruby
48
+ #load the message service
49
+ messages = client.messages
50
+
51
+ #the service currently has the following methods
52
+ old_message = messages.find 42
53
+ new_message = messages.new(params)
54
+ all_messages = messages.all
55
+ ```
56
+
57
+ #### Available Services
58
+ * messages
59
+ * invites
60
+ * conversations
61
+ * attachments
62
+ * organizations
63
+ * rooms
64
+ * users
65
+
66
+ ### Resources
67
+ Resources are not dissimilar to an ActiveResource or an ActiveRecord object
68
+ ```ruby
69
+ #with a persisted object
70
+ message = client.messages.find 42
71
+ message.update(text:'the message') #fails silently
72
+ message.update!(text:'the message') #raises a Sqwiggle::Api::Errors::BadRequestError
73
+
74
+ #creating a new object
75
+ message = client.messages.new
76
+ message.text = 'the new message'
77
+ message.save #fails silently
78
+ message.save! #raises an error
79
+ ```
80
+
29
81
  ## TODO
30
82
 
31
- * Compile todo list
83
+ * Capistrano integration
84
+ * Pagination
85
+ * Rdoc (or similar)
32
86
 
33
87
 
34
88
  ## Contributing
data/lib/sqwiggle-ruby.rb CHANGED
@@ -4,6 +4,7 @@ require 'virtus'
4
4
 
5
5
  module Sqwiggle
6
6
  module Api
7
+ require "sqwiggle/api"
7
8
  require "sqwiggle/api/error_handler"
8
9
  require "sqwiggle/api/service"
9
10
  require "sqwiggle/api/client"
@@ -0,0 +1,12 @@
1
+ module Sqwiggle
2
+ module Api
3
+ #for testing/development purposes
4
+ def self.url
5
+ @@url ||= 'https://api.sqwiggle.com/'
6
+ end
7
+
8
+ def self.url=(val)
9
+ @@url = val
10
+ end
11
+ end
12
+ end
@@ -4,7 +4,6 @@ module Sqwiggle
4
4
  class NoTokenError < StandardError;end;
5
5
 
6
6
  attr_accessor :token
7
- attr_writer :url #for testing purposes
8
7
 
9
8
  def initialize(token=nil)
10
9
  unless @token = token || Sqwiggle.token
@@ -54,15 +53,12 @@ module Sqwiggle
54
53
 
55
54
  private
56
55
 
57
- def url
58
- @url || 'https://api.sqwiggle.com/'
59
- end
60
-
61
56
  def connection
62
- @connection ||= Faraday.new(url:url) do |f|
57
+ @connection ||= Faraday.new(url:Sqwiggle::Api.url) do |f|
63
58
  f.request :url_encoded # form-encode POST params
64
59
  f.adapter Faraday.default_adapter # make requests with Net::HTTP
65
60
  f.basic_auth token, 'X'
61
+ f.headers['User-Agent'] = "sqwiggle-ruby #{Sqwiggle::VERSION}"
66
62
  f.use ErrorHandler
67
63
  end
68
64
  end
@@ -1,3 +1,3 @@
1
1
  module Sqwiggle
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -24,7 +24,4 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
26
26
  spec.add_development_dependency "pry"
27
- spec.add_development_dependency 'rspec'
28
- spec.add_development_dependency 'webmock'
29
- spec.add_development_dependency 'fuubar'
30
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sqwiggle-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Roberts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-26 00:00:00.000000000 Z
11
+ date: 2014-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -80,48 +80,6 @@ dependencies:
80
80
  - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: webmock
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: fuubar
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '>='
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
83
  description: Ruby wrapper for the sqwiggle API
126
84
  email:
127
85
  - luke@sqwiggle.com
@@ -137,6 +95,7 @@ files:
137
95
  - README.md
138
96
  - Rakefile
139
97
  - lib/sqwiggle-ruby.rb
98
+ - lib/sqwiggle/api.rb
140
99
  - lib/sqwiggle/api/client.rb
141
100
  - lib/sqwiggle/api/error_handler.rb
142
101
  - lib/sqwiggle/api/errors/authentication_error.rb