fulcrum 0.1.5 → 0.1.6
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.
- checksums.yaml +15 -0
- data/.rvmrc +1 -1
- data/Gemfile +0 -1
- data/README.md +77 -59
- data/fulcrum.gemspec +5 -5
- data/lib/fulcrum/api.rb +4 -0
- data/lib/fulcrum/form.rb +0 -1
- data/lib/fulcrum/version.rb +1 -1
- data/spec/lib/api_spec.rb +19 -16
- data/spec/lib/form_spec.rb +3 -7
- metadata +14 -31
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWY2MDkwMWM5ZWI3NjUxNzExMTQxNzRhYTNmMjg0OGJjNDdkNDhmNA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YzU0ZWNhZmE4ODc1MmViYjVlMTI1NjVjM2M0Y2QxMDBjYTgxNWYyZg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjA2NjdiM2JkNDViMGEzODQ5OWU1N2MzMzc3NmI0YzNhNDlhYzBhNDY4NDhm
|
10
|
+
N2RiNGM4NjM1ZjNkMjAxNzZmZjgwNDdiNWQ1ZDBmZTMzYTJjYzA2MDA2N2M3
|
11
|
+
ZTg2NmIwMTc0OTJjZjM1ZTdlNDZiNzhmNzAwNzU0OTFlYjIwNzE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MTRkOTIwNzQwNDI5YjFiZTE4ZTc0YzkyZWU0ZWEyMThlMDRkNjRkYzA4YzUx
|
14
|
+
MzAwZTkyOGRiMmRlMjM2N2M3MDgzYjVlNDhjZjExMGIxYjJmYWZiNTZmMWYx
|
15
|
+
ZTU0MTNjYjE5MjBhODExNjliZmZlNTliNzRlYjc2NDFmYjhkMTU=
|
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use ruby-1.9.3@fulcrum_api
|
1
|
+
rvm use ruby-1.9.3@fulcrum_api --create
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -4,122 +4,140 @@ Fulcrum API Gem
|
|
4
4
|
|
5
5
|
## Requirements
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
* Ruby 1.9
|
8
|
+
* [Fulcrum user account](https://web.fulcrumapp.com)
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
12
12
|
Add this line to your application's Gemfile:
|
13
13
|
|
14
|
-
|
14
|
+
```ruby
|
15
|
+
gem 'fulcrum'
|
16
|
+
```
|
15
17
|
|
16
18
|
And then execute:
|
17
19
|
|
18
|
-
|
20
|
+
bundle
|
19
21
|
|
20
22
|
Or install it yourself as:
|
21
23
|
|
22
|
-
|
24
|
+
gem install fulcrum
|
23
25
|
|
24
26
|
## Configuration
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
```ruby
|
29
|
+
Fulcrum::Api.configure do |config|
|
30
|
+
config.uri = 'https://api.fulcrumapp.com/api/v2'
|
31
|
+
config.key = 'your_api_key'
|
32
|
+
end
|
33
|
+
```
|
30
34
|
|
31
35
|
## Projects
|
32
36
|
|
33
|
-
|
34
|
-
|
35
|
-
|
37
|
+
```ruby
|
38
|
+
Fulcrum::Project.all(opts)
|
39
|
+
# opts = { 'page' => page_number,
|
40
|
+
# 'updated_since' => date_time }
|
41
|
+
```
|
36
42
|
|
37
43
|
## Forms
|
38
44
|
|
39
|
-
|
40
|
-
|
41
|
-
|
45
|
+
```ruby
|
46
|
+
Fulcrum::Form.all(opts)
|
47
|
+
# opts = { 'page' => page_number,
|
48
|
+
# 'schema' => true_or_false }
|
42
49
|
|
43
|
-
|
44
|
-
|
50
|
+
Fulcrum::Form.find(id, opts)
|
51
|
+
# opts = { 'include_foreign_elements' => true_or_false }
|
45
52
|
|
46
|
-
|
47
|
-
|
53
|
+
Fulcrum::Form.create(form)
|
54
|
+
# form = { 'form' => { ... } }
|
48
55
|
|
49
|
-
|
50
|
-
|
56
|
+
Fulcrum::Form.update(id, form)
|
57
|
+
# form = { 'form' => { ... } }
|
51
58
|
|
52
|
-
|
59
|
+
Fulcrum::Form.delete(id)
|
60
|
+
```
|
53
61
|
|
54
62
|
## Records
|
55
63
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
64
|
+
```ruby
|
65
|
+
Fulcrum::Record.all(opts)
|
66
|
+
# opts = { 'page' => page_number,
|
67
|
+
# 'form_id' => form_id,
|
68
|
+
# 'bounding_box' => 'lat_bottom,lng_left,lat_top,lng_right',
|
69
|
+
# 'updated_since' => date_since_epoch_in_seconds }
|
61
70
|
|
62
|
-
|
63
|
-
|
64
|
-
|
71
|
+
Fulcrum::Record.find(id)
|
72
|
+
Fulcrum::Record.create(record)
|
73
|
+
# record = { 'record' => { ... } }
|
65
74
|
|
66
|
-
|
67
|
-
|
75
|
+
Fulcrum::Record.update(id, record)
|
76
|
+
# record = { 'record' => { ... } }
|
68
77
|
|
69
|
-
|
78
|
+
Fulcrum::Record.delete(id)
|
79
|
+
```
|
70
80
|
|
71
81
|
## Photos
|
72
82
|
|
73
|
-
|
74
|
-
|
83
|
+
```ruby
|
84
|
+
Fulcrum::Photo.find(access_key, opts)
|
85
|
+
# opts = { 'format' => 'json|jpg' }, defaults to 'json'
|
75
86
|
|
76
|
-
|
77
|
-
|
87
|
+
Fulcrum::Photo.thumbnail(access_key, opts)
|
88
|
+
# opts = { 'format' => 'json|jpg' }, defaults to 'json'
|
78
89
|
|
79
|
-
|
90
|
+
Fulcrum::Photo.create(photo, content_type, unique_id, label)
|
80
91
|
|
81
|
-
|
92
|
+
Fulcrum::Photo.delete(access_key)
|
93
|
+
```
|
82
94
|
|
83
95
|
## Choice Lists
|
84
96
|
|
85
|
-
|
86
|
-
|
97
|
+
```ruby
|
98
|
+
Fulcrum::ChoiceList.all(opts)
|
99
|
+
# opts = { 'page' => page_number }
|
87
100
|
|
88
|
-
|
101
|
+
Fulcrum::ChoiceList.find(id)
|
89
102
|
|
90
|
-
|
91
|
-
|
103
|
+
Fulcrum::ChoiceList.create(choice_list)
|
104
|
+
# choice_list = { 'choice_list' => { ... } }
|
92
105
|
|
93
|
-
|
94
|
-
|
106
|
+
Fulcrum::ChoiceList.update(id, choice_list)
|
107
|
+
# choice_list = { 'choice_list' => { ... } }
|
95
108
|
|
96
|
-
|
109
|
+
Fulcrum::ChoiceList.delete(id)
|
110
|
+
```
|
97
111
|
|
98
112
|
## Classification Sets
|
99
113
|
|
100
|
-
|
101
|
-
|
114
|
+
```ruby
|
115
|
+
Fulcrum::ClassificationSet.all(opts)
|
116
|
+
# opts = { 'page' => page_number }
|
102
117
|
|
103
|
-
|
118
|
+
Fulcrum::ClassificationSet.find(id)
|
104
119
|
|
105
|
-
|
106
|
-
|
120
|
+
Fulcrum::ClassificationSet.create(classification_set)
|
121
|
+
# classification_set = { 'classification_set' => { ... } }
|
107
122
|
|
108
|
-
|
109
|
-
|
123
|
+
Fulcrum::ClassificationSet.update(id, classification_set)
|
124
|
+
# classification_set = { 'classification_set' => { ... } }
|
110
125
|
|
111
|
-
|
126
|
+
Fulcrum::ClassificationSet.delete(id)
|
127
|
+
```
|
112
128
|
|
113
129
|
## Members
|
114
130
|
|
115
|
-
|
116
|
-
|
131
|
+
```ruby
|
132
|
+
Fulcrum::Member.all(opts)
|
133
|
+
# opts = { 'page' => page_number }
|
117
134
|
|
118
|
-
|
135
|
+
Fulcrum::Member.find(id)
|
136
|
+
```
|
119
137
|
|
120
138
|
## Extra Reading
|
121
139
|
|
122
|
-
|
140
|
+
* [Fulcrum API documentation](http://fulcrumapp.com/developers/api/)
|
123
141
|
|
124
142
|
## Contributing
|
125
143
|
|
data/fulcrum.gemspec
CHANGED
@@ -2,10 +2,10 @@
|
|
2
2
|
require File.expand_path('../lib/fulcrum/version', __FILE__)
|
3
3
|
|
4
4
|
Gem::Specification.new do |gem|
|
5
|
-
gem.authors = ["
|
6
|
-
gem.email = ["
|
7
|
-
gem.description = %q{Fulcrum API
|
8
|
-
gem.summary = %q{Fulcrum API
|
5
|
+
gem.authors = ["Spatial Networks"]
|
6
|
+
gem.email = ["sniadmin@spatialnetworks.com"]
|
7
|
+
gem.description = %q{Fulcrum API}
|
8
|
+
gem.summary = %q{Fulcrum API}
|
9
9
|
gem.homepage = "http://github.com/spatialnetworks/fulcrum-ruby"
|
10
10
|
|
11
11
|
gem.files = `git ls-files`.split($\)
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_development_dependency 'debugger'
|
22
22
|
|
23
23
|
gem.add_dependency 'activesupport'
|
24
|
-
gem.add_dependency 'faraday'
|
24
|
+
gem.add_dependency 'faraday', '~> 0.8.8'
|
25
25
|
gem.add_dependency 'hashie'
|
26
26
|
gem.add_dependency 'faraday_middleware'
|
27
27
|
end
|
data/lib/fulcrum/api.rb
CHANGED
data/lib/fulcrum/form.rb
CHANGED
data/lib/fulcrum/version.rb
CHANGED
data/spec/lib/api_spec.rb
CHANGED
@@ -1,39 +1,42 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Fulcrum::Api do
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
let(:default_uri) { 'https://api.fulcrumapp.com/api/v2' }
|
5
|
+
|
6
|
+
let(:uri) { 'http://foo.bar/api/v2' }
|
7
|
+
let(:key) { 'foobar' }
|
8
|
+
|
9
|
+
it 'has a default uri' do
|
10
|
+
Fulcrum::Api.configuration.uri.should eq(default_uri)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'is configured' do
|
7
14
|
Fulcrum::Api.configure do |config|
|
8
|
-
config.uri =
|
9
|
-
config.key =
|
15
|
+
config.uri = uri
|
16
|
+
config.key = key
|
10
17
|
end
|
11
|
-
end
|
12
18
|
|
13
|
-
|
14
|
-
Fulcrum::Api.configuration.
|
15
|
-
Fulcrum::Api.configuration.key.should eq(@key)
|
19
|
+
Fulcrum::Api.configuration.uri.should eq(uri)
|
20
|
+
Fulcrum::Api.configuration.key.should eq(key)
|
16
21
|
end
|
17
22
|
|
18
|
-
it '
|
23
|
+
it 'gets the key' do
|
19
24
|
user = "foo@bar.com"
|
20
25
|
pass = "foobar"
|
21
26
|
stub_request(:get, /.*\/users.json/).to_return(:status => 200, :body => '{ "user": { "api_token": "foobar" }}')
|
22
27
|
Fulcrum::Api.get_key(user, pass).should eq('foobar')
|
23
28
|
end
|
24
29
|
|
25
|
-
|
30
|
+
specify '#parse_opts returns only expected opts' do
|
26
31
|
params = Fulcrum::Api.parse_opts([:foo], { foo: 'bar', bar: 'foo'})
|
27
|
-
params.
|
28
|
-
params[:foo].should eq('bar')
|
29
|
-
params.has_key?(:bar).should be(false)
|
32
|
+
params.should eq({ foo: 'bar' })
|
30
33
|
end
|
31
34
|
|
32
|
-
|
35
|
+
specify '#call should raise ArgumentError with invalid method' do
|
33
36
|
expect { Fulcrum::Api.call(:foo) }.to raise_error(ArgumentError)
|
34
37
|
end
|
35
38
|
|
36
|
-
|
39
|
+
specify '#call should not raise ArgumentError with valid method' do
|
37
40
|
expect { Fulcrum::Api.call(:get) }.to_not raise_error(ArgumentError)
|
38
41
|
end
|
39
42
|
end
|
data/spec/lib/form_spec.rb
CHANGED
@@ -12,16 +12,12 @@ describe Fulcrum::Form do
|
|
12
12
|
describe 'successful requests' do
|
13
13
|
context '#all' do
|
14
14
|
it 'should retrieve all records' do
|
15
|
-
|
15
|
+
records = {"current_page" => 1,"total_pages" => 1,"total_count" => 1,"per_page" => 50,"forms" => []}
|
16
|
+
stub_request(:get, "#{Fulcrum::Api.configuration.uri}/forms.json").to_return(:status => 200, :body => records.to_json)
|
16
17
|
forms = Fulcrum::Form.all
|
17
18
|
Fulcrum::Form.response.status.should eq(200)
|
18
19
|
forms = JSON.parse(forms)
|
19
|
-
forms.
|
20
|
-
forms.keys.should include('total_pages')
|
21
|
-
forms.keys.should include('total_count')
|
22
|
-
forms.keys.should include('per_page')
|
23
|
-
forms.keys.should include('forms')
|
24
|
-
forms['forms'].should be_a(Array)
|
20
|
+
forms.should == records
|
25
21
|
end
|
26
22
|
end
|
27
23
|
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fulcrum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.6
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
-
|
7
|
+
- Spatial Networks
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: webmock
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: debugger
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: activesupport
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ! '>='
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ! '>='
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,23 +83,20 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: faraday
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
89
|
+
version: 0.8.8
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
96
|
+
version: 0.8.8
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: hashie
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: faraday_middleware
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,14 +118,13 @@ dependencies:
|
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ! '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
|
-
description: Fulcrum API
|
125
|
+
description: Fulcrum API
|
143
126
|
email:
|
144
|
-
-
|
127
|
+
- sniadmin@spatialnetworks.com
|
145
128
|
executables: []
|
146
129
|
extensions: []
|
147
130
|
extra_rdoc_files: []
|
@@ -185,28 +168,27 @@ files:
|
|
185
168
|
- spec/spec_helper.rb
|
186
169
|
homepage: http://github.com/spatialnetworks/fulcrum-ruby
|
187
170
|
licenses: []
|
171
|
+
metadata: {}
|
188
172
|
post_install_message:
|
189
173
|
rdoc_options: []
|
190
174
|
require_paths:
|
191
175
|
- lib
|
192
176
|
required_ruby_version: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
177
|
requirements:
|
195
178
|
- - ! '>='
|
196
179
|
- !ruby/object:Gem::Version
|
197
180
|
version: '0'
|
198
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
199
|
-
none: false
|
200
182
|
requirements:
|
201
183
|
- - ! '>='
|
202
184
|
- !ruby/object:Gem::Version
|
203
185
|
version: '0'
|
204
186
|
requirements: []
|
205
187
|
rubyforge_project:
|
206
|
-
rubygems_version: 1.
|
188
|
+
rubygems_version: 2.1.5
|
207
189
|
signing_key:
|
208
|
-
specification_version:
|
209
|
-
summary: Fulcrum API
|
190
|
+
specification_version: 4
|
191
|
+
summary: Fulcrum API
|
210
192
|
test_files:
|
211
193
|
- spec/data/form_data.json
|
212
194
|
- spec/data/test.jpg
|
@@ -223,3 +205,4 @@ test_files:
|
|
223
205
|
- spec/lib/validators/form_validator_spec.rb
|
224
206
|
- spec/lib/validators/record_validator_spec.rb
|
225
207
|
- spec/spec_helper.rb
|
208
|
+
has_rdoc:
|