json_roa-client 1.0.0.pre.beta.2 → 1.0.0

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: 46382a4f2f15aff6db0a65d35cf46f7a6dab4ccc
4
- data.tar.gz: f64826275e7ce06c69deac16ddaad67b997fe103
3
+ metadata.gz: 9b48bd9fee8fa88a388136211e2b6fcadbb635ba
4
+ data.tar.gz: 487226246eb7481ccbefd741c5d35dbc2c4cd3db
5
5
  SHA512:
6
- metadata.gz: 70cd3d8b62f0ad4d6557cdbb635b9487ccca60868c3d17002552b343967ce16041fa1da3d5b734d539d8a47d25e3983ee2b590a18903bf8183bcc27c2bdd2934
7
- data.tar.gz: 804362c743bef126bf91fc7b5bd8726d239caa5aca1e07a2f4aa3824df9e4ad1e9a1366d7b845da9d578317d1e7f0c4f32ef08e4f9a334e6315c96d32c3ea249
6
+ metadata.gz: 289c5648a42ddcc4a39a7b3b606d233a7560c53c054703869721731acb2af6a71f196d6b194f988605af0886e3a5c40ef2092e270cbe3632ead68a186b28d1bc
7
+ data.tar.gz: d713aab8bf657eafc4f7fbf1d4b5147d29dce8c46e055cf3352a08f1f0efb90e2c17b370cfab1e792e538e36614c53857772e72a9beef160823de9002f6fddf4
data/.rubocop.yml ADDED
@@ -0,0 +1,179 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'db/**/*'
4
+ - 'config/**/*'
5
+ - 'Gemfile'
6
+ RunRailsCops: true
7
+
8
+ Lint/AmbiguousOperator:
9
+ Enabled: false
10
+
11
+ Lint/AmbiguousRegexpLiteral:
12
+ Enabled: false
13
+
14
+ Lint/AssignmentInCondition:
15
+ Enabled: false
16
+
17
+ Lint/DeprecatedClassMethods:
18
+ Enabled: false
19
+
20
+ Lint/ParenthesesAsGroupedExpression:
21
+ Enabled: false
22
+
23
+ Lint/RescueException:
24
+ Enabled: false
25
+
26
+ Lint/ShadowingOuterLocalVariable:
27
+ Enabled: false
28
+
29
+ # Cop supports --auto-correct.
30
+ Lint/UnusedBlockArgument:
31
+ Enabled: false
32
+
33
+ Metrics/AbcSize:
34
+ Max: 136
35
+
36
+ # Configuration parameters: CountComments.
37
+ Metrics/ClassLength:
38
+ Max: 128
39
+
40
+ Metrics/CyclomaticComplexity:
41
+ Max: 10
42
+
43
+ # Configuration parameters: AllowURI, URISchemes.
44
+ Metrics/LineLength:
45
+ Max: 81
46
+
47
+ # Configuration parameters: CountComments.
48
+ Metrics/MethodLength:
49
+ Max: 124
50
+
51
+ Metrics/PerceivedComplexity:
52
+ Max: 11
53
+
54
+ Style/AccessorMethodName:
55
+ Enabled: false
56
+
57
+ # Cop supports --auto-correct.
58
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
59
+ Style/AndOr:
60
+ Enabled: false
61
+
62
+ Style/AsciiComments:
63
+ Enabled: false
64
+
65
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
66
+ Style/ClassAndModuleChildren:
67
+ Enabled: false
68
+
69
+ # Cop supports --auto-correct.
70
+ Style/ColonMethodCall:
71
+ Enabled: false
72
+
73
+ Style/Documentation:
74
+ Enabled: false
75
+
76
+ # Cop supports --auto-correct.
77
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
78
+ Style/EmptyLinesAroundBlockBody:
79
+ Enabled: false
80
+
81
+ # Cop supports --auto-correct.
82
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
83
+ Style/EmptyLinesAroundClassBody:
84
+ Enabled: false
85
+
86
+ # Cop supports --auto-correct.
87
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
88
+ Style/EmptyLinesAroundModuleBody:
89
+ Enabled: false
90
+
91
+ # Configuration parameters: Exclude.
92
+ Style/FileName:
93
+ Enabled: false
94
+
95
+ Style/GuardClause:
96
+ Enabled: false
97
+
98
+ # Configuration parameters: MaxLineLength.
99
+ Style/IfUnlessModifier:
100
+ Enabled: false
101
+
102
+ # Cop supports --auto-correct.
103
+ # Configuration parameters: Width.
104
+ Style/IndentationWidth:
105
+ Enabled: false
106
+
107
+ Style/MultilineBlockChain:
108
+ Enabled: false
109
+
110
+ # Cop supports --auto-correct.
111
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
112
+ Style/MultilineOperationIndentation:
113
+ Enabled: false
114
+
115
+ # Cop supports --auto-correct.
116
+ Style/Not:
117
+ Enabled: false
118
+
119
+ # Cop supports --auto-correct.
120
+ Style/NumericLiterals:
121
+ MinDigits: 7
122
+
123
+ # Cop supports --auto-correct.
124
+ # Configuration parameters: AllowSafeAssignment.
125
+ Style/ParenthesesAroundCondition:
126
+ Enabled: false
127
+
128
+ # Cop supports --auto-correct.
129
+ Style/RedundantBegin:
130
+ Enabled: false
131
+
132
+ # Cop supports --auto-correct.
133
+ Style/RedundantSelf:
134
+ Enabled: false
135
+
136
+ Style/RescueModifier:
137
+ Enabled: false
138
+
139
+ # Cop supports --auto-correct.
140
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
141
+ Style/SignalException:
142
+ Enabled: false
143
+
144
+ # Cop supports --auto-correct.
145
+ Style/SpecialGlobalVars:
146
+ Enabled: false
147
+
148
+ Style/UnlessElse:
149
+ Enabled: false
150
+
151
+ # Cop supports --auto-correct.
152
+ # Configuration parameters: WordRegex.
153
+ Style/WordArray:
154
+ MinSize: 2
155
+
156
+ # Configuration parameters: Include.
157
+ Rails/HasAndBelongsToMany:
158
+ Enabled: false
159
+
160
+ # Configuration parameters: Include.
161
+ Rails/Output:
162
+ Enabled: false
163
+
164
+ # Configuration parameters: Include.
165
+ Rails/ReadWriteAttribute:
166
+ Enabled: false
167
+
168
+ # Configuration parameters: Include.
169
+ Rails/Validation:
170
+ Enabled: false
171
+
172
+
173
+ # Offense count: 6
174
+ Style/ClassAndModuleCamelCase:
175
+ Enabled: false
176
+
177
+ # Offense count: 2
178
+ Style/RegexpLiteral:
179
+ MaxSlashes: 0
data/README.md CHANGED
@@ -2,34 +2,12 @@
2
2
 
3
3
  A ruby client for `JSON-ROA`.
4
4
 
5
- ## Semantic Versioning and Rubygems Versioning
5
+ ## State
6
6
 
7
- This library is _BETA_ because the [JSON-ROA specifciation][] itself is
8
- _BETA_. This library uses [Semantic Versioning][] and the current version
9
- is [1.0.0-beta.2](./lib/json_roa/client/version.rb).
7
+ [![Code Climate][]][]
10
8
 
11
- The rubygems system [claims also to use semantic versioning][] and even *urges
12
- gem developers to follow it*. Rubygems transforms the version as given above
13
- into `1.0.0.pre.beta.1`. Any work using this library should specify the
14
- following in the Gemfile
15
-
16
- gem 'json_roa-client', '= 1.0.0.pre.beta.2'
17
-
18
- or the following in the gemspec
19
-
20
- spec.add_runtime_dependency 'json_roa-client', '= 1.0.0.pre.beta.2'
21
-
22
- In the latter case, building the gem will result in a warning because of the
23
- prerelease. You can safely ignore this warning. It is in the context of
24
- semantic versioning misleading. However, it is important to fix the dependency
25
- by using the `=` sign. In this case, violation would warrant a warning.
26
-
27
-
28
-
29
-
30
- [JSON-ROA specifciation]: http://json-roa.github.io/specification.html
31
- [Semantic Versioning]: http://semver.org/
32
- [claims also to use semantic versioning]: http://guides.rubygems.org/patterns/#semantic-versioning
9
+ [Code Climate]: https://codeclimate.com/github/json-roa/json-roa_ruby-client/badges/gpa.svg
10
+ [![Code Climate][]]: https://codeclimate.com/github/json-roa/json-roa_ruby-client
33
11
 
34
12
  ## Usage
35
13
 
@@ -97,3 +75,34 @@ end
97
75
  [URI Template]: http://tools.ietf.org/html/rfc6570
98
76
  [Faraday]: https://github.com/lostisland/faraday
99
77
 
78
+
79
+
80
+ ## Semantic Versioning and Rubygems Versioning
81
+
82
+ This library is _BETA_ because the [JSON-ROA specifciation][] itself is
83
+ _BETA_. This library uses [Semantic Versioning][] and the current version
84
+ is [1.0.0-beta.2](./lib/json_roa/client/version.rb).
85
+
86
+ The rubygems system [claims also to use semantic versioning][] and even *urges
87
+ gem developers to follow it*. Rubygems transforms the version as given above
88
+ into `1.0.0.pre.beta.1`. Any work using this library should specify the
89
+ following in the Gemfile
90
+
91
+ gem 'json_roa-client', '= 1.0.0.pre.beta.2'
92
+
93
+ or the following in the gemspec
94
+
95
+ spec.add_runtime_dependency 'json_roa-client', '= 1.0.0.pre.beta.2'
96
+
97
+ In the latter case, building the gem will result in a warning because of the
98
+ prerelease. You can safely ignore this warning. It is in the context of
99
+ semantic versioning misleading. However, it is important to fix the dependency
100
+ by using the `=` sign. In this case, violation would warrant a warning.
101
+
102
+
103
+
104
+
105
+ [JSON-ROA specifciation]: http://json-roa.github.io/specification.html
106
+ [Semantic Versioning]: http://semver.org/
107
+ [claims also to use semantic versioning]: http://guides.rubygems.org/patterns/#semantic-versioning
108
+
data/Rakefile CHANGED
@@ -1,2 +1 @@
1
- require "bundler/gem_tasks"
2
-
1
+ require 'bundler/gem_tasks'
@@ -4,25 +4,27 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'json_roa/client/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "json_roa-client"
7
+ spec.name = 'json_roa-client'
8
8
  spec.version = JSON_ROA::Client::VERSION
9
- spec.authors = ["Thomas Schank"]
10
- spec.email = ["DrTom@schank.ch"]
11
- spec.summary = "The Ruby JSON-ROA Client Reference Implementation"
12
- spec.description = ""
13
- spec.homepage = ""
14
- spec.license = "MIT"
9
+ spec.authors = ['Thomas Schank']
10
+ spec.email = ['DrTom@schank.ch']
11
+ spec.summary = 'The Ruby JSON-ROA Client Reference Implementation'
12
+ spec.description = ''
13
+ spec.homepage = ''
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake", "~> 10.0"
23
- spec.add_development_dependency "pry", '~> 0.10'
24
- spec.add_development_dependency 'simplecov', '~> 0.9'
21
+ spec.add_development_dependency 'bundler', '~> 1.6'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'pry', '~> 0.10'
24
+ spec.add_development_dependency 'simplecov', '~> 0.9'
25
25
  spec.add_development_dependency 'rspec', '~> 3'
26
+ spec.add_development_dependency 'cider_ci-support', '= 1.1.0.pre.beta.3'
27
+ spec.add_development_dependency 'rubocop'
26
28
 
27
29
  spec.add_dependency 'addressable', '~> 2'
28
30
  spec.add_dependency 'faraday', '~> 0.9'
@@ -1,5 +1,5 @@
1
- require "json_roa/client/version"
2
- require "json_roa/client/resource"
1
+ require 'json_roa/client/version'
2
+ require 'json_roa/client/resource'
3
3
  require 'faraday'
4
4
  require 'faraday_middleware'
5
5
 
@@ -11,33 +11,32 @@ module JSON_ROA
11
11
  env.class.class_eval do |klass|
12
12
  attr_accessor :json_roa_data
13
13
  end
14
- env.json_roa_data= env.body.delete("_json-roa")
14
+ env.json_roa_data = env.body.delete('_json-roa')
15
15
  end
16
16
  end
17
17
  end
18
18
 
19
19
  module Client
20
20
 
21
- class << self
21
+ class << self
22
22
 
23
- def connect url, &block
24
-
25
- @conn= Faraday.new(url: url,
26
- headers: {accept: "application/json-roa+json"}) do |conn|
27
- conn.use ::JSON_ROA::Middleware
28
- conn.response :json, :content_type => /\bjson$/
29
- conn.request :retry
30
- conn.use Faraday::Response::RaiseError
31
- conn.adapter Faraday.default_adapter
32
- end
23
+ def connect(url, &_block)
24
+ @conn = Faraday.new(
25
+ url: url,
26
+ headers: { accept: 'application/json-roa+json' }) do |conn|
27
+ conn.use ::JSON_ROA::Middleware
28
+ conn.response :json, content_type: /\bjson$/
29
+ conn.request :retry
30
+ conn.use Faraday::Response::RaiseError
31
+ conn.adapter Faraday.default_adapter
32
+ end
33
33
 
34
34
  yield @conn if block_given?
35
-
36
- Relation.new @conn, "root", {"href" => url}
37
-
35
+ Relation.new @conn, 'root', 'href' => url
38
36
  end
39
37
 
40
38
  end
39
+
41
40
  end
42
41
 
43
42
  end
@@ -4,32 +4,39 @@ module JSON_ROA
4
4
  class Collection
5
5
  include Enumerable
6
6
 
7
- def initialize conn, resource
8
- @conn= conn
9
- @resource= resource
7
+ def initialize(conn, resource)
8
+ @conn = conn
9
+ @resource = resource
10
10
  end
11
11
 
12
- def each &block
12
+ def each(&_block)
13
+ loop do
13
14
 
14
- while true do
15
-
16
- relations= @resource.json_roa_data['collection']['relations'] rescue []
15
+ relations = collection_data['relations'] rescue []
17
16
 
18
17
  relations.each do |key, data|
19
- yield Relation.new(@conn,key,data) if block_given?
18
+ yield Relation.new(@conn, key, data) if block_given?
20
19
  end
21
20
 
22
- next_val= @resource.json_roa_data['collection']['next'] rescue nil
21
+ next_val = collection_data['next'] rescue nil
23
22
 
24
23
  if relations.empty? or (not next_val)
25
- break
24
+ break
26
25
  else
27
- @resource= Relation.new(@conn,"next",next_val).get()
26
+ @resource = Relation.new(@conn, 'next', next_val).get
28
27
  end
29
28
 
30
29
  end
30
+ end
31
31
 
32
+ def collection_data
33
+ @resource.json_roa_data['collection']
32
34
  end
35
+
36
+ def to_s
37
+ "#{self.class.name}: #{collection_data}"
38
+ end
39
+
33
40
  end
34
41
 
35
42
  end
@@ -8,10 +8,10 @@ module JSON_ROA
8
8
  attr_reader :data
9
9
  attr_reader :key
10
10
 
11
- def initialize conn, key, data
12
- @conn= conn
13
- @key= key
14
- @data= data
11
+ def initialize(conn, key, data)
12
+ @conn = conn
13
+ @key = key
14
+ @data = data
15
15
 
16
16
  Faraday::Connection::METHODS.intersection(available_methods) \
17
17
  .each do |method_name|
@@ -19,41 +19,44 @@ module JSON_ROA
19
19
  end
20
20
  end
21
21
 
22
- def define_http_method method_name
22
+ def define_http_method(method_name)
23
23
  define_singleton_method method_name \
24
- do |query_parameters={}, body=nil, headers=nil, &block|
24
+ do |query_parameters = {}, body = nil, headers = nil, &block|
25
25
  run_request method_name, query_parameters, body, headers, &block
26
26
  end
27
27
  end
28
28
 
29
- def assert_proper_query_parameters! query_parameters, template
29
+ def assert_proper_query_parameters!(query_parameters, template)
30
30
  unless Set.new(query_parameters.keys).subset? Set.new(template.keys)
31
- raise StandardError, ["query_parameters", query_parameters.keys.to_s,
32
- "do not match template parameters",
33
- template.keys.to_s].join(" ")
31
+ raise StandardError, ['query_parameters', query_parameters.keys.to_s,
32
+ 'do not match template parameters',
33
+ template.keys.to_s].join(' ')
34
34
  end
35
35
  end
36
36
 
37
- def run_request method, query_parameters, body, headers, &block
38
- href= @data['href']
39
- template= ::Addressable::Template.new(href)
37
+ def run_request(method, query_parameters, body, headers, &block)
38
+ href = @data['href']
39
+ template = ::Addressable::Template.new(href)
40
40
  assert_proper_query_parameters! query_parameters, template
41
- expanded_url= template.expand(query_parameters)
42
- response=@conn.run_request( \
41
+ expanded_url = template.expand(query_parameters)
42
+ response = @conn.run_request( \
43
43
  method.to_sym, expanded_url, body, headers, &block)
44
- ::JSON_ROA::Client::Resource.new(@conn,response)
44
+ ::JSON_ROA::Client::Resource.new(@conn, response)
45
45
  end
46
46
 
47
47
  def available_methods_data
48
- @data['methods'] ||= {"get" => {}}
48
+ @data['methods'] ||= { 'get' => {} }
49
49
  end
50
50
 
51
51
  def available_methods
52
52
  available_methods_data.keys.map(&:to_sym)
53
53
  end
54
54
 
55
+ def to_s
56
+ "#{self.class.name}: #{@data}"
57
+ end
58
+
55
59
  end
56
60
 
57
61
  end
58
62
  end
59
-
@@ -1,5 +1,5 @@
1
- require "json_roa/client/relation"
2
- require "json_roa/client/collection"
1
+ require 'json_roa/client/relation'
2
+ require 'json_roa/client/collection'
3
3
 
4
4
  module JSON_ROA
5
5
  module Client
@@ -8,19 +8,19 @@ module JSON_ROA
8
8
 
9
9
  attr_reader :response
10
10
 
11
- def initialize conn, response = nil
12
- @conn= conn
13
- @response= response || conn.get
11
+ def initialize(conn, response = nil)
12
+ @conn = conn
13
+ @response = response || conn.get
14
14
  end
15
15
 
16
- def relation key
17
- relhash= json_roa_data['relations'][key]
16
+ def relation(key)
17
+ relhash = json_roa_data['relations'][key]
18
18
  ::JSON_ROA::Client::Relation.new @conn, key, relhash
19
19
  end
20
20
 
21
21
  def self_relation
22
22
  ::JSON_ROA::Client::Relation.new( \
23
- @conn, "self", json_roa_data['self_relation']) rescue nil
23
+ @conn, 'self', json_roa_data['self_relation']) rescue nil
24
24
  end
25
25
 
26
26
  def data
@@ -32,10 +32,14 @@ module JSON_ROA
32
32
  end
33
33
 
34
34
  def collection
35
- ::JSON_ROA::Client::Collection.new @conn, self
35
+ ::JSON_ROA::Client::Collection.new @conn, self
36
36
  end
37
+
38
+ def to_s
39
+ "#{self.class.name}: #{data} #{json_roa_data}"
40
+ end
41
+
37
42
  end
38
43
 
39
44
  end
40
45
  end
41
-
@@ -1,5 +1,5 @@
1
1
  module JSON_ROA
2
2
  module Client
3
- VERSION = "1.0.0-beta.2"
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
@@ -1,39 +1,38 @@
1
1
  require_relative 'spec_helper.rb'
2
2
 
3
+ describe 'API: traversing from root to resource to some relation' do
3
4
 
4
- describe "API: traversing from root to resource to some relation" do
5
+ describe 'root relation' do
5
6
 
6
- describe "root relation" do
7
-
8
- let :root_relation do
9
- JSON_ROA::Client.connect("/")
7
+ let :root_relation do
8
+ JSON_ROA::Client.connect('/')
10
9
  end
11
10
 
12
- describe "root_resource via get" do
11
+ describe 'root_resource via get' do
13
12
 
14
- subject(:root_resource) {root_relation.get() }
13
+ subject(:root_resource) { root_relation.get }
15
14
 
16
- it do
17
- expect(root_resource.class).to be== JSON_ROA::Client::Resource
15
+ it do
16
+ expect(root_resource.class).to be == JSON_ROA::Client::Resource
18
17
  end
19
18
 
20
- describe "data" do
21
- subject(:data) {root_resource.data}
19
+ describe 'data' do
20
+ subject(:data) { root_resource.data }
22
21
 
23
- it do
24
- expect(data).to be== {"x" => 42}
25
- end
22
+ it do
23
+ expect(data).to be == { 'x' => 42 }
24
+ end
26
25
 
27
26
  end
28
27
 
29
- describe "task relation " do
30
- subject(:task_relation) { root_resource.relation('task')}
28
+ describe 'task relation ' do
29
+ subject(:task_relation) { root_resource.relation('task') }
31
30
 
32
- it "is of class Relation" do
33
- expect(task_relation.class).to be== JSON_ROA::Client::Relation
31
+ it 'is of class Relation' do
32
+ expect(task_relation.class).to be == JSON_ROA::Client::Relation
34
33
  end
35
-
36
- it "responds to get" do
34
+
35
+ it 'responds to get' do
37
36
  expect(task_relation.respond_to? :get).to be
38
37
  end
39
38
 
@@ -2,41 +2,41 @@ require_relative 'spec_helper.rb'
2
2
 
3
3
  describe JSON_ROA::Client::Collection do
4
4
 
5
- let :root_relation do
6
- JSON_ROA::Client.connect("/")
5
+ let :root_relation do
6
+ JSON_ROA::Client.connect('/')
7
7
  end
8
8
 
9
- describe "tasks resource via get" do
10
- subject(:tasks_resource) {root_relation.get().relation('tasks').get() }
9
+ describe 'tasks resource via get' do
10
+ subject(:tasks_resource) { root_relation.get.relation('tasks').get }
11
11
 
12
- it "is a resource" do
13
- expect(tasks_resource.class).to be== JSON_ROA::Client::Resource
12
+ it 'is a resource' do
13
+ expect(tasks_resource.class).to be == JSON_ROA::Client::Resource
14
14
  end
15
15
 
16
- it "responds to collection" do
16
+ it 'responds to collection' do
17
17
  expect(tasks_resource.respond_to? :collection).to be
18
18
  end
19
19
 
20
- describe "tasks collection" do
21
- subject(:tasks_collection) {tasks_resource.collection}
20
+ describe 'tasks collection' do
21
+ subject(:tasks_collection) { tasks_resource.collection }
22
22
 
23
- it "is a collection" do
24
- expect(tasks_collection.class).to be== JSON_ROA::Client::Collection
23
+ it 'is a collection' do
24
+ expect(tasks_collection.class).to be == JSON_ROA::Client::Collection
25
25
  end
26
26
 
27
- it "has exactly one element" do
28
- expect(tasks_collection.count).to be== 1
27
+ it 'has exactly one element' do
28
+ expect(tasks_collection.count).to be == 1
29
29
  end
30
30
 
31
- describe "the first task" do
32
- subject(:first_task) {tasks_collection.first}
31
+ describe 'the first task' do
32
+ subject(:first_task) { tasks_collection.first }
33
33
 
34
- it "is a relation" do
35
- expect(first_task.class).to be== JSON_ROA::Client::Relation
34
+ it 'is a relation' do
35
+ expect(first_task.class).to be == JSON_ROA::Client::Relation
36
36
  end
37
37
 
38
- it "leads to /task/t1" do
39
- expect(first_task.data["href"]).to be== "/tasks/t1"
38
+ it 'leads to /task/t1' do
39
+ expect(first_task.data['href']).to be == '/tasks/t1'
40
40
  end
41
41
 
42
42
  end
@@ -46,4 +46,3 @@ describe JSON_ROA::Client::Collection do
46
46
  end
47
47
 
48
48
  end
49
-
data/spec/connect_spec.rb CHANGED
@@ -3,19 +3,18 @@ require 'json_roa/client'
3
3
  require 'pry'
4
4
 
5
5
  describe JSON_ROA::Client do
6
- context "when calling connect" do
6
+ context 'when calling connect' do
7
7
 
8
- it "returns an instance of JSON_ROA::Client::Relation" do
9
- expect(JSON_ROA::Client.connect("http://example.com").class).to \
10
- be== JSON_ROA::Client::Relation
8
+ it 'returns an instance of JSON_ROA::Client::Relation' do
9
+ expect(JSON_ROA::Client.connect('http://example.com').class).to \
10
+ be == JSON_ROA::Client::Relation
11
11
  end
12
12
 
13
- it "exposes Faraday::Connection via the block" do
14
- JSON_ROA::Client.connect("http://example.com") do |conn|
15
- expect(conn.class).to be== Faraday::Connection
13
+ it 'exposes Faraday::Connection via the block' do
14
+ JSON_ROA::Client.connect('http://example.com') do |conn|
15
+ expect(conn.class).to be == Faraday::Connection
16
16
  end
17
17
  end
18
18
 
19
19
  end
20
20
  end
21
-
data/spec/methods_spec.rb CHANGED
@@ -1,30 +1,28 @@
1
1
  require_relative 'spec_helper.rb'
2
2
 
3
- describe "methods of the relation /tasks/t1" do
3
+ describe 'methods of the relation /tasks/t1' do
4
4
 
5
- let :root_relation do
6
- JSON_ROA::Client.connect("/")
5
+ let :root_relation do
6
+ JSON_ROA::Client.connect('/')
7
7
  end
8
8
 
9
9
  subject(:task1_self_relation) \
10
- {root_relation.get().relation("task").get("id" => "t1").self_relation}
10
+ { root_relation.get.relation('task').get('id' => 't1').self_relation }
11
11
 
12
- it "is a relation" do
13
- expect(task1_self_relation.class).to be== JSON_ROA::Client::Relation
12
+ it 'is a relation' do
13
+ expect(task1_self_relation.class).to be == JSON_ROA::Client::Relation
14
14
  end
15
15
 
16
- describe "defined get" do
17
- it "does not raise" do
18
- expect{task1_self_relation.get()}.not_to raise_error
16
+ describe 'defined get' do
17
+ it 'does not raise' do
18
+ expect { task1_self_relation.get }.not_to raise_error
19
19
  end
20
20
  end
21
21
 
22
- describe "not defined post" do
23
- it "does raise" do
24
- expect{task1_self_relation.post()}.to raise_error
22
+ describe 'not defined post' do
23
+ it 'does raise' do
24
+ expect { task1_self_relation.post }.to raise_error
25
25
  end
26
26
  end
27
27
 
28
28
  end
29
-
30
-
data/spec/spec_helper.rb CHANGED
@@ -17,9 +17,9 @@ module JSON_ROA
17
17
  class << self
18
18
  alias_method :original_connect, :connect
19
19
 
20
- def connect url, &block
21
- res= original_connect url, &block
22
- res.conn= test_api
20
+ def connect(url, &block)
21
+ res = original_connect url, &block
22
+ res.conn = test_api
23
23
  res
24
24
  end
25
25
 
@@ -27,39 +27,47 @@ module JSON_ROA
27
27
  end
28
28
  end
29
29
 
30
-
31
- def root_data
32
- YAML.load_file(File.expand_path("./data/root.yml",
30
+ def root_data
31
+ YAML.load_file(File.expand_path('./data/root.yml',
33
32
  File.dirname(__FILE__)))
34
33
  end
35
34
 
36
- def tasks_page0_data
37
- YAML.load_file( File.expand_path("./data/tasks_page0.yml",
38
- File.dirname(__FILE__)))
35
+ def tasks_page0_data
36
+ YAML.load_file(File.expand_path('./data/tasks_page0.yml',
37
+ File.dirname(__FILE__)))
39
38
  end
40
39
 
41
40
  def tasks_page1_data
42
- YAML.load_file( File.expand_path("./data/tasks_page1.yml",
43
- File.dirname(__FILE__)))
41
+ YAML.load_file(File.expand_path('./data/tasks_page1.yml',
42
+ File.dirname(__FILE__)))
44
43
  end
45
44
 
46
- def task1_data
47
- YAML.load_file( File.expand_path("./data/task1.yml",
48
- File.dirname(__FILE__)))
45
+ def task1_data
46
+ YAML.load_file(File.expand_path('./data/task1.yml',
47
+ File.dirname(__FILE__)))
49
48
  end
50
49
 
51
-
52
50
  def test_api
53
51
  Faraday.new do |conn|
54
- headers= {content_type: "application/json-roa+json"}
52
+ headers = { content_type: 'application/json-roa+json' }
55
53
  conn.use ::JSON_ROA::Middleware
56
- conn.response :json, :content_type => /\bjson$/
54
+ conn.response :json, content_type: /\bjson$/
57
55
  conn.adapter :test do |stub|
58
- stub.get('/') { |env| [ 200, headers, root_data.to_json]}
59
- stub.get('/tasks/') { |env| [ 200, headers, tasks_page0_data.to_json]}
60
- stub.get('/tasks/?page=0') { |env| [ 200, headers, tasks_page0_data.to_json]}
61
- stub.get('/tasks/?page=1') { |env| [ 200, headers, tasks_page1_data.to_json]}
62
- stub.get('/tasks/t1') { |env| [ 200, headers, task1_data.to_json]}
56
+ stub.get('/') do |env|
57
+ [200, headers, root_data.to_json]
58
+ end
59
+ stub.get('/tasks/') do |env|
60
+ [200, headers, tasks_page0_data.to_json]
61
+ end
62
+ stub.get('/tasks/?page=0') do |env|
63
+ [200, headers, tasks_page0_data.to_json]
64
+ end
65
+ stub.get('/tasks/?page=1') do |env|
66
+ [200, headers, tasks_page1_data.to_json]
67
+ end
68
+ stub.get('/tasks/t1') do |env|
69
+ [200, headers, task1_data.to_json]
70
+ end
63
71
  end
64
72
  end
65
73
  end
@@ -1,55 +1,55 @@
1
1
  require_relative 'spec_helper.rb'
2
2
 
3
- describe "template expansion" do
3
+ describe 'template expansion' do
4
4
 
5
- let :root_relation do
6
- JSON_ROA::Client.connect("/")
5
+ let :root_relation do
6
+ JSON_ROA::Client.connect('/')
7
7
  end
8
8
 
9
- context "task relation" do
9
+ context 'task relation' do
10
10
 
11
- subject(:task_relation) {root_relation.get().relation("task")}
11
+ subject(:task_relation) { root_relation.get.relation('task') }
12
12
 
13
- it "is a relation" do
14
- expect(task_relation.class).to be== JSON_ROA::Client::Relation
13
+ it 'is a relation' do
14
+ expect(task_relation.class).to be == JSON_ROA::Client::Relation
15
15
  end
16
16
 
17
- it "is templated" do
18
- expect(task_relation.data['href']).to be== "/tasks/{id}"
17
+ it 'is templated' do
18
+ expect(task_relation.data['href']).to be == '/tasks/{id}'
19
19
  end
20
20
 
21
- describe "get with parameter to expand" do
22
- subject(:task_resource){task_relation.get("id" => "t1")}
21
+ describe 'get with parameter to expand' do
22
+ subject(:task_resource) { task_relation.get('id' => 't1') }
23
23
 
24
- it "is a resource of t1" do
25
- expect(task_resource.class).to be== JSON_ROA::Client::Resource
26
- expect(task_resource.self_relation.data["href"]).to be== "/tasks/t1"
24
+ it 'is a resource of t1' do
25
+ expect(task_resource.class).to be == JSON_ROA::Client::Resource
26
+ expect(task_resource.self_relation.data['href']).to be == '/tasks/t1'
27
27
  end
28
28
 
29
29
  end
30
30
 
31
31
  end
32
32
 
33
- context "tasks relation" do
33
+ context 'tasks relation' do
34
34
 
35
- subject(:tasks_relation) {root_relation.get().relation("tasks")}
35
+ subject(:tasks_relation) { root_relation.get.relation('tasks') }
36
36
 
37
- describe "get with existing parameter to expand" do
38
- it "does not raise an error" do
39
- expect{ tasks_relation.get("x" => "foo")
40
- }.not_to raise_error
37
+ describe 'get with existing parameter to expand' do
38
+ it 'does not raise an error' do
39
+ expect do
40
+ tasks_relation.get('x' => 'foo')
41
+ end.not_to raise_error
41
42
  end
42
43
  end
43
44
 
44
- describe "get with a non-existing parameter to expand" do
45
- it "raises an error" do
46
- expect{ tasks_relation.get("non_existing_query_parameter" => "foo")
47
- }.to raise_error /query_parameters .* do not match template parameters/
45
+ describe 'get with a non-existing parameter to expand' do
46
+ it 'raises an error' do
47
+ expect do
48
+ tasks_relation.get('non_existing_query_parameter' => 'foo')
49
+ end.to raise_error /query_parameters .* do not match template parameters/
48
50
  end
49
51
  end
50
52
 
51
53
  end
52
54
 
53
55
  end
54
-
55
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_roa-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.beta.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Schank
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-16 00:00:00.000000000 Z
11
+ date: 2015-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: cider_ci-support
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 1.1.0.pre.beta.3
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.1.0.pre.beta.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
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'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: addressable
85
113
  requirement: !ruby/object:Gem::Requirement
@@ -131,6 +159,7 @@ extra_rdoc_files: []
131
159
  files:
132
160
  - ".gitignore"
133
161
  - ".rspec"
162
+ - ".rubocop.yml"
134
163
  - Gemfile
135
164
  - LICENSE.txt
136
165
  - README.md
@@ -166,9 +195,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
166
195
  version: '0'
167
196
  required_rubygems_version: !ruby/object:Gem::Requirement
168
197
  requirements:
169
- - - ">"
198
+ - - ">="
170
199
  - !ruby/object:Gem::Version
171
- version: 1.3.1
200
+ version: '0'
172
201
  requirements: []
173
202
  rubyforge_project:
174
203
  rubygems_version: 2.2.2