jeckle 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/History.markdown +6 -1
- data/README.md +72 -19
- data/examples/dribbble.rb +7 -2
- data/jeckle.gemspec +4 -4
- data/lib/jeckle.rb +1 -1
- data/lib/jeckle/attribute_aliasing.rb +13 -0
- data/lib/jeckle/resource.rb +2 -0
- data/lib/jeckle/rest_actions.rb +4 -2
- data/lib/jeckle/setup.rb +1 -1
- data/lib/jeckle/version.rb +1 -1
- data/spec/{jeckle → lib/jeckle}/api_spec.rb +0 -0
- data/spec/lib/jeckle/attribute_aliasing_spec.rb +19 -0
- data/spec/{jeckle → lib/jeckle}/http_spec.rb +0 -0
- data/spec/{jeckle → lib/jeckle}/model_spec.rb +0 -0
- data/spec/{jeckle → lib/jeckle}/request_spec.rb +0 -0
- data/spec/{jeckle → lib/jeckle}/resource_spec.rb +0 -0
- data/spec/{jeckle → lib/jeckle}/rest_actions_spec.rb +15 -2
- data/spec/{jeckle → lib/jeckle}/setup_spec.rb +0 -0
- metadata +47 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f21821c33e6f22dc7c478aea1e3362943909fa73
|
4
|
+
data.tar.gz: 7a95a145731b2d5b00c025bff09d54e8d1572531
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: edd8cae15a4e4779c72e8e0d1fc93e2038d467c2d9089f751472e6c10bbf2e284f902247c32f1f8c3211f409fcdb7d2d8fc92274092d8d47050111c86a502d70
|
7
|
+
data.tar.gz: 7a3f7ebe5e921202cea52c038e77506e9a69ecb6a3568cced27f0c35c702b60f3c21cfadb3189a063e5d622636be65e64b6c29366a6c6d1923dd41d589c79c6a
|
data/.travis.yml
CHANGED
data/History.markdown
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
## v.0.3.1
|
2
|
+
|
3
|
+
* Add attribute aliasing
|
4
|
+
* Add possibility to change the resource name when call Resource.search.
|
5
|
+
|
1
6
|
## v.0.3.0
|
2
7
|
|
3
8
|
* Change Jeckle::Resource.default_api to Jeckle::Resource.api
|
@@ -8,4 +13,4 @@
|
|
8
13
|
|
9
14
|
## v.0.2.0
|
10
15
|
|
11
|
-
* Add Jeckle middlewares
|
16
|
+
* Add Jeckle middlewares
|
data/README.md
CHANGED
@@ -20,19 +20,25 @@ Let third party APIs be Heckle for your app's Jeckle.
|
|
20
20
|
|
21
21
|
Add this line to your application's Gemfile:
|
22
22
|
|
23
|
-
|
23
|
+
```ruby
|
24
|
+
gem 'jeckle'
|
25
|
+
```
|
24
26
|
|
25
27
|
And then execute:
|
26
28
|
|
27
|
-
|
29
|
+
```sh
|
30
|
+
$ bundle
|
31
|
+
```
|
28
32
|
|
29
|
-
|
33
|
+
## Usage
|
30
34
|
|
31
|
-
|
35
|
+
### Configuring an API
|
32
36
|
|
33
|
-
|
34
|
-
|
37
|
+
Let's say you'd like to connect your app to Dribbble.com - a community of designers sharing screenshots of their work, process, and projects.
|
38
|
+
|
39
|
+
First, you would need to configure the API:
|
35
40
|
|
41
|
+
```ruby
|
36
42
|
Jeckle.configure do |config|
|
37
43
|
config.register :some_service do |api|
|
38
44
|
api.base_uri = 'http://api.someservice.com'
|
@@ -46,17 +52,13 @@ Jeckle.configure do |config|
|
|
46
52
|
end
|
47
53
|
```
|
48
54
|
|
49
|
-
|
50
|
-
|
51
|
-
```ruby
|
52
|
-
# app/services/some_service/models/my_resource.rb
|
55
|
+
### Mapping resources
|
53
56
|
|
54
|
-
|
55
|
-
module Models
|
56
|
-
class MyResource
|
57
|
-
include Jeckle::Resource
|
57
|
+
Following the previous example, Dribbble.com consists of pieces of web designers work called "Shots". Each shot has the attributes `id`, `name`, `url` and `image_url`. A Jeckle resource representing Dribbble's shots would be something like this:
|
58
58
|
|
59
|
-
|
59
|
+
```ruby
|
60
|
+
class Shot
|
61
|
+
include Jeckle::Resource
|
60
62
|
|
61
63
|
attribute :id
|
62
64
|
end
|
@@ -64,9 +66,60 @@ module SomeService
|
|
64
66
|
end
|
65
67
|
```
|
66
68
|
|
69
|
+
### Fetching data
|
70
|
+
|
71
|
+
The resource class allows us to search shots through HTTP requests to the API, based on the provided information. For example, we can find a specific shot by providing its id to the `find` method:
|
72
|
+
|
73
|
+
```ruby
|
74
|
+
# GET http://api.dribbble.com/shots/1600459
|
75
|
+
shot = Shot.find 1600459
|
76
|
+
```
|
77
|
+
|
78
|
+
That will return a `Shot` instance, containing the shot info:
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
shot.id
|
82
|
+
=> 1600459
|
83
|
+
|
84
|
+
shot.name
|
85
|
+
=> "Daryl Heckle And Jeckle Oates"
|
86
|
+
|
87
|
+
shot.image_url
|
88
|
+
=> "https://d13yacurqjgara.cloudfront.net/users/85699/screenshots/1600459/daryl_heckle_and_jeckle_oates-dribble.jpg"
|
89
|
+
```
|
90
|
+
|
91
|
+
You can also look for many shots matching one or more attributes, by using the `search` method:
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
# GET http://api.dribbble.com/shots?name=avengers
|
95
|
+
shots = Shot.search name: 'avengers'
|
96
|
+
```
|
97
|
+
|
98
|
+
### Attribute Aliasing
|
99
|
+
|
100
|
+
Sometimes you want to call the API's attributes something else, either because their names aren't very concise or because they're out of you app's convention. If that's the case, you can add an `as` option:
|
101
|
+
|
102
|
+
```ruby
|
103
|
+
attribute :thumbnailSize, String, as: :thumbnail_size
|
104
|
+
```
|
105
|
+
|
106
|
+
Both mapping will work:
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
shot.thumbnailSize
|
110
|
+
=> "50x50"
|
111
|
+
|
112
|
+
shot.thumbnail_size
|
113
|
+
=> "50x50"
|
114
|
+
```
|
115
|
+
|
116
|
+
We're all set! Now we can expand the mapping of our API, e.g to add ability to search Dribbble Designer directory by adding Designer class, or we can expand the original mapping of Shot class to include more attributes, such as tags or comments.
|
117
|
+
|
118
|
+
## Examples
|
119
|
+
|
120
|
+
You can see more examples here: [https://github.com/tomas-stefano/jeckle/tree/master/examples](https://github.com/tomas-stefano/jeckle/tree/master/examples)
|
121
|
+
|
67
122
|
## Roadmap
|
68
123
|
|
69
|
-
|
70
|
-
|
71
|
-
- Comprehensive restful actions
|
72
|
-
- Testability
|
124
|
+
Follow [GitHub's milestones](https://github.com/tomas-stefano/jeckle/milestones)
|
125
|
+
>>>>>>> 14eb4ce... Merge pull request #49 from tomas-stefano/attribute-mapping
|
data/examples/dribbble.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
require 'jeckle'
|
2
2
|
|
3
|
+
# Here is an example using the Dribbble API
|
4
|
+
|
3
5
|
Jeckle.configure do |config|
|
4
6
|
config.register :dribbble do |api|
|
5
7
|
api.base_uri = 'http://api.dribbble.com'
|
8
|
+
api.middlewares do
|
9
|
+
response :json
|
10
|
+
end
|
6
11
|
end
|
7
12
|
end
|
8
13
|
|
@@ -14,7 +19,7 @@ class Shot
|
|
14
19
|
attribute :id, Integer
|
15
20
|
attribute :name, String
|
16
21
|
attribute :url, String
|
17
|
-
attribute :image_url, String
|
22
|
+
attribute :image_url, String, as: :image
|
18
23
|
end
|
19
24
|
|
20
25
|
shot = Shot.find 1600459
|
@@ -25,5 +30,5 @@ shot.id
|
|
25
30
|
shot.name
|
26
31
|
# => Daryl Heckle And Jeckle Oates
|
27
32
|
|
28
|
-
shot.
|
33
|
+
puts "The shot image URL is #{shot.image}"
|
29
34
|
# => https://d13yacurqjgara.cloudfront.net/users/85699/screenshots/1600459/daryl_heckle_and_jeckle_oates-dribble.jpg
|
data/jeckle.gemspec
CHANGED
@@ -21,11 +21,11 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_dependency 'activemodel', '>= 4.0'
|
22
22
|
spec.add_dependency 'faraday', '~> 0.9'
|
23
23
|
spec.add_dependency 'faraday_middleware'
|
24
|
-
spec.add_dependency 'virtus'
|
24
|
+
spec.add_dependency 'virtus'
|
25
25
|
|
26
|
-
spec.add_development_dependency 'bundler', '
|
26
|
+
spec.add_development_dependency 'bundler', '>= 1.6'
|
27
27
|
spec.add_development_dependency 'rake'
|
28
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
28
|
+
spec.add_development_dependency 'rspec', '~> 3.2'
|
29
29
|
|
30
30
|
if RUBY_ENGINE == 'rbx'
|
31
31
|
spec.add_development_dependency 'rubinius-compiler'
|
@@ -34,6 +34,6 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency 'pry'
|
35
35
|
else
|
36
36
|
spec.add_development_dependency 'pry-nav' if RUBY_VERSION < '2.0.0'
|
37
|
-
spec.add_development_dependency 'pry-byebug' if RUBY_VERSION >= '2.0.0'
|
37
|
+
spec.add_development_dependency 'pry-byebug', '3.1.0' if RUBY_VERSION >= '2.0.0'
|
38
38
|
end
|
39
39
|
end
|
data/lib/jeckle.rb
CHANGED
@@ -5,7 +5,7 @@ require 'virtus'
|
|
5
5
|
|
6
6
|
require 'jeckle/version'
|
7
7
|
|
8
|
-
%w(setup api model request http rest_actions resource errors).each do |file_name|
|
8
|
+
%w(setup api model request http rest_actions resource errors attribute_aliasing).each do |file_name|
|
9
9
|
require "jeckle/#{file_name}"
|
10
10
|
end
|
11
11
|
|
data/lib/jeckle/resource.rb
CHANGED
data/lib/jeckle/rest_actions.rb
CHANGED
@@ -13,11 +13,13 @@ module Jeckle
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def search(params = {})
|
16
|
-
|
16
|
+
custom_resource_name = params.delete(:resource_name) if params.kind_of?(Hash)
|
17
|
+
|
18
|
+
response = run_request(custom_resource_name || resource_name, params: params).response.body || []
|
17
19
|
collection = response.kind_of?(Array) ? response : response[resource_name]
|
18
20
|
|
19
21
|
Array(collection).collect { |attrs| new attrs }
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
23
|
-
end
|
25
|
+
end
|
data/lib/jeckle/setup.rb
CHANGED
data/lib/jeckle/version.rb
CHANGED
File without changes
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class AttributeAliasingResource
|
4
|
+
include Jeckle::Resource
|
5
|
+
|
6
|
+
attribute :firstName, String, as: :first_name
|
7
|
+
end
|
8
|
+
|
9
|
+
RSpec.describe Jeckle::AttributeAliasing do
|
10
|
+
let(:first_name) { 'First Name' }
|
11
|
+
let(:resource) { AttributeAliasingResource.new(firstName: first_name) }
|
12
|
+
|
13
|
+
describe '.attribute' do
|
14
|
+
it 'initializes attributes by :as options' do
|
15
|
+
expect(resource.first_name).to eq first_name
|
16
|
+
expect(resource.firstName).to eq first_name
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -30,7 +30,7 @@ RSpec.describe Jeckle::RESTActions do
|
|
30
30
|
|
31
31
|
it 'calls default API connection with GET and search params' do
|
32
32
|
expect(Jeckle::Request).to receive(:run)
|
33
|
-
.with(api, 'fake_resources', query).and_return(fake_request)
|
33
|
+
.with(api, 'fake_resources', { params: query }).and_return(fake_request)
|
34
34
|
|
35
35
|
FakeResource.search query
|
36
36
|
end
|
@@ -69,5 +69,18 @@ RSpec.describe Jeckle::RESTActions do
|
|
69
69
|
expect(FakeResource.search query).to match []
|
70
70
|
end
|
71
71
|
end
|
72
|
+
|
73
|
+
context 'when the endpoint is overwritten' do
|
74
|
+
let(:endpoint) { 'custom_endpoint' }
|
75
|
+
let(:query) { { resource_name: endpoint, name: 'cocada' } }
|
76
|
+
let(:body) { [{ id: 1001 }, { id: 1002 }] }
|
77
|
+
|
78
|
+
it 'calls default API connection with GET and search params' do
|
79
|
+
expect(Jeckle::Request).to receive(:run)
|
80
|
+
.with(api, endpoint, params: query).and_return(fake_request)
|
81
|
+
|
82
|
+
FakeResource.search query
|
83
|
+
end
|
84
|
+
end
|
72
85
|
end
|
73
|
-
end
|
86
|
+
end
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jeckle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomas D'Stefano
|
@@ -9,120 +9,120 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-05-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '4.0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '4.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: faraday
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - ~>
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0.9'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - ~>
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0.9'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: faraday_middleware
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: virtus
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '
|
62
|
+
version: '0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '
|
69
|
+
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: bundler
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '1.6'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '1.6'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: rake
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: rspec
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - ~>
|
102
|
+
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '3.
|
104
|
+
version: '3.2'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - ~>
|
109
|
+
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '3.
|
111
|
+
version: '3.2'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: pry-byebug
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - '
|
116
|
+
- - '='
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
118
|
+
version: 3.1.0
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - '
|
123
|
+
- - '='
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version:
|
125
|
+
version: 3.1.0
|
126
126
|
description: Simple module for building client APIs
|
127
127
|
email:
|
128
128
|
- tomas_stefano@successoft.com
|
@@ -131,9 +131,9 @@ executables: []
|
|
131
131
|
extensions: []
|
132
132
|
extra_rdoc_files: []
|
133
133
|
files:
|
134
|
-
- .gitignore
|
135
|
-
- .rspec
|
136
|
-
- .travis.yml
|
134
|
+
- ".gitignore"
|
135
|
+
- ".rspec"
|
136
|
+
- ".travis.yml"
|
137
137
|
- Gemfile
|
138
138
|
- History.markdown
|
139
139
|
- LICENSE.txt
|
@@ -143,6 +143,7 @@ files:
|
|
143
143
|
- jeckle.gemspec
|
144
144
|
- lib/jeckle.rb
|
145
145
|
- lib/jeckle/api.rb
|
146
|
+
- lib/jeckle/attribute_aliasing.rb
|
146
147
|
- lib/jeckle/errors.rb
|
147
148
|
- lib/jeckle/http.rb
|
148
149
|
- lib/jeckle/model.rb
|
@@ -154,13 +155,14 @@ files:
|
|
154
155
|
- spec/fixtures/jeckle_config.rb
|
155
156
|
- spec/fixtures/models/fake_model.rb
|
156
157
|
- spec/fixtures/resources/fake_resource.rb
|
157
|
-
- spec/jeckle/api_spec.rb
|
158
|
-
- spec/jeckle/
|
159
|
-
- spec/jeckle/
|
160
|
-
- spec/jeckle/
|
161
|
-
- spec/jeckle/
|
162
|
-
- spec/jeckle/
|
163
|
-
- spec/jeckle/
|
158
|
+
- spec/lib/jeckle/api_spec.rb
|
159
|
+
- spec/lib/jeckle/attribute_aliasing_spec.rb
|
160
|
+
- spec/lib/jeckle/http_spec.rb
|
161
|
+
- spec/lib/jeckle/model_spec.rb
|
162
|
+
- spec/lib/jeckle/request_spec.rb
|
163
|
+
- spec/lib/jeckle/resource_spec.rb
|
164
|
+
- spec/lib/jeckle/rest_actions_spec.rb
|
165
|
+
- spec/lib/jeckle/setup_spec.rb
|
164
166
|
- spec/spec_helper.rb
|
165
167
|
- spec/support/shared_examples.rb
|
166
168
|
homepage: https://github.com/tomas-stefano/jeckle
|
@@ -173,17 +175,17 @@ require_paths:
|
|
173
175
|
- lib
|
174
176
|
required_ruby_version: !ruby/object:Gem::Requirement
|
175
177
|
requirements:
|
176
|
-
- -
|
178
|
+
- - ">="
|
177
179
|
- !ruby/object:Gem::Version
|
178
180
|
version: '0'
|
179
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
180
182
|
requirements:
|
181
|
-
- -
|
183
|
+
- - ">="
|
182
184
|
- !ruby/object:Gem::Version
|
183
185
|
version: '0'
|
184
186
|
requirements: []
|
185
187
|
rubyforge_project:
|
186
|
-
rubygems_version: 2.
|
188
|
+
rubygems_version: 2.4.5
|
187
189
|
signing_key:
|
188
190
|
specification_version: 4
|
189
191
|
summary: Simple module for building client APIs
|
@@ -191,12 +193,13 @@ test_files:
|
|
191
193
|
- spec/fixtures/jeckle_config.rb
|
192
194
|
- spec/fixtures/models/fake_model.rb
|
193
195
|
- spec/fixtures/resources/fake_resource.rb
|
194
|
-
- spec/jeckle/api_spec.rb
|
195
|
-
- spec/jeckle/
|
196
|
-
- spec/jeckle/
|
197
|
-
- spec/jeckle/
|
198
|
-
- spec/jeckle/
|
199
|
-
- spec/jeckle/
|
200
|
-
- spec/jeckle/
|
196
|
+
- spec/lib/jeckle/api_spec.rb
|
197
|
+
- spec/lib/jeckle/attribute_aliasing_spec.rb
|
198
|
+
- spec/lib/jeckle/http_spec.rb
|
199
|
+
- spec/lib/jeckle/model_spec.rb
|
200
|
+
- spec/lib/jeckle/request_spec.rb
|
201
|
+
- spec/lib/jeckle/resource_spec.rb
|
202
|
+
- spec/lib/jeckle/rest_actions_spec.rb
|
203
|
+
- spec/lib/jeckle/setup_spec.rb
|
201
204
|
- spec/spec_helper.rb
|
202
205
|
- spec/support/shared_examples.rb
|