lhs 3.1.3 → 3.2.0
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 +4 -4
- data/README.md +10 -0
- data/lhs.gemspec +1 -0
- data/lib/lhs/concerns/record/model.rb +10 -4
- data/lib/lhs/version.rb +1 -1
- data/spec/dummy/app/views/form_for.html.erb +5 -0
- data/spec/record/persisted_spec.rb +44 -0
- data/spec/views/form_for_spec.rb +19 -0
- metadata +22 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3104a36287bf44989ceded81a998fd803298b14c
|
4
|
+
data.tar.gz: 48c62d18f012d593731a5ec8f0ed3c69992a8512
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc6ac276747f1c18059f7ae120aa7672af03dec3976886175883ac8dbd4faea963b5029ac427eb5a80e9887f64d9c994fcca9210e4e829d5e13af5124d2e01be
|
7
|
+
data.tar.gz: 4cf2de0d3f4965de5c236a48e3a5fc89b033df6cebb88d1de1f23aa3c7cd9f38480afc2091df6d9fe4e90562b83ff16d561da89ddd338599c0bcb73676e3cf61
|
data/README.md
CHANGED
@@ -347,3 +347,13 @@ For example, you can use kaminari to render paginations based on LHS Records:
|
|
347
347
|
# view
|
348
348
|
= paginate @items
|
349
349
|
```
|
350
|
+
|
351
|
+
## form_for Helper
|
352
|
+
Rails `form_for` view-helper can be used in combination with instances of LHS::Record to autogenerate forms:
|
353
|
+
```
|
354
|
+
<%= form_for(@instance, url: '/create') do |f| %>
|
355
|
+
<%= f.text_field :name %>
|
356
|
+
<%= f.text_area :text %>
|
357
|
+
<%= f.submit "Create" %>
|
358
|
+
<% end %>
|
359
|
+
```
|
data/lhs.gemspec
CHANGED
@@ -6,10 +6,16 @@ class LHS::Record
|
|
6
6
|
module Model
|
7
7
|
extend ActiveSupport::Concern
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
def to_model
|
10
|
+
self
|
11
|
+
end
|
12
|
+
|
13
|
+
def persisted?
|
14
|
+
!href.nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
included do
|
18
|
+
extend ActiveModel::Naming
|
13
19
|
end
|
14
20
|
end
|
15
21
|
end
|
data/lib/lhs/version.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe LHS::Record do
|
4
|
+
context '#persisted?' do
|
5
|
+
let(:datastore) { 'http://local.ch/v2' }
|
6
|
+
|
7
|
+
before(:each) do
|
8
|
+
LHC.config.placeholder('datastore', datastore)
|
9
|
+
class Feedback < LHS::Record
|
10
|
+
endpoint ':datastore/content-ads/:campaign_id/feedbacks'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'for new record' do
|
15
|
+
subject { Feedback.new }
|
16
|
+
|
17
|
+
it 'is false' do
|
18
|
+
expect(subject.persisted?).to be(false)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'for saved record' do
|
23
|
+
let(:campaign_id) { 'aaa' }
|
24
|
+
let(:parameters) do
|
25
|
+
{
|
26
|
+
recommended: true,
|
27
|
+
campaign_id: campaign_id
|
28
|
+
}
|
29
|
+
end
|
30
|
+
subject { Feedback.new(parameters) }
|
31
|
+
|
32
|
+
before do
|
33
|
+
stub_request(:post, "#{datastore}/content-ads/#{campaign_id}/feedbacks")
|
34
|
+
.with(body: parameters.to_json)
|
35
|
+
.to_return(status: 200, body: parameters.merge(href: "#{datastore}/content-ads/#{campaign_id}/feedbacks/123456789").to_json)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'is true' do
|
39
|
+
subject.save
|
40
|
+
expect(subject.persisted?).to be(true)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
require 'capybara/rspec'
|
3
|
+
|
4
|
+
describe 'form_for helper' do
|
5
|
+
class Feedback < LHS::Record
|
6
|
+
endpoint ':datastore/v2/feedbacks'
|
7
|
+
end
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
assign(:instance, Feedback.new)
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'supported by LHS' do
|
14
|
+
render template: 'form_for.html'
|
15
|
+
expect(rendered).to have_selector('form')
|
16
|
+
expect(rendered).to have_selector('input[name="feedback[name]"]')
|
17
|
+
expect(rendered).to have_selector('textarea[name="feedback[text]"]')
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/local-ch/lhs/graphs/contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lhc
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: capybara
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
description: Rails gem providing an easy, active-record-like interface to use http
|
126
140
|
backend services
|
127
141
|
email:
|
@@ -202,6 +216,7 @@ files:
|
|
202
216
|
- spec/dummy/app/mailers/.keep
|
203
217
|
- spec/dummy/app/models/.keep
|
204
218
|
- spec/dummy/app/models/concerns/.keep
|
219
|
+
- spec/dummy/app/views/form_for.html.erb
|
205
220
|
- spec/dummy/app/views/layouts/application.html.erb
|
206
221
|
- spec/dummy/bin/bundle
|
207
222
|
- spec/dummy/bin/rails
|
@@ -261,6 +276,7 @@ files:
|
|
261
276
|
- spec/record/model_name_spec.rb
|
262
277
|
- spec/record/new_spec.rb
|
263
278
|
- spec/record/pagination_spec.rb
|
279
|
+
- spec/record/persisted_spec.rb
|
264
280
|
- spec/record/request_spec.rb
|
265
281
|
- spec/record/select_spec.rb
|
266
282
|
- spec/record/to_json_spec.rb
|
@@ -273,6 +289,7 @@ files:
|
|
273
289
|
- spec/support/fixtures/json/feedbacks.json
|
274
290
|
- spec/support/fixtures/json/localina_content_ad.json
|
275
291
|
- spec/support/load_json.rb
|
292
|
+
- spec/views/form_for_spec.rb
|
276
293
|
homepage: https://github.com/local-ch/lhs
|
277
294
|
licenses: []
|
278
295
|
metadata: {}
|
@@ -323,6 +340,7 @@ test_files:
|
|
323
340
|
- spec/dummy/app/mailers/.keep
|
324
341
|
- spec/dummy/app/models/.keep
|
325
342
|
- spec/dummy/app/models/concerns/.keep
|
343
|
+
- spec/dummy/app/views/form_for.html.erb
|
326
344
|
- spec/dummy/app/views/layouts/application.html.erb
|
327
345
|
- spec/dummy/bin/bundle
|
328
346
|
- spec/dummy/bin/rails
|
@@ -382,6 +400,7 @@ test_files:
|
|
382
400
|
- spec/record/model_name_spec.rb
|
383
401
|
- spec/record/new_spec.rb
|
384
402
|
- spec/record/pagination_spec.rb
|
403
|
+
- spec/record/persisted_spec.rb
|
385
404
|
- spec/record/request_spec.rb
|
386
405
|
- spec/record/select_spec.rb
|
387
406
|
- spec/record/to_json_spec.rb
|
@@ -394,3 +413,4 @@ test_files:
|
|
394
413
|
- spec/support/fixtures/json/feedbacks.json
|
395
414
|
- spec/support/fixtures/json/localina_content_ad.json
|
396
415
|
- spec/support/load_json.rb
|
416
|
+
- spec/views/form_for_spec.rb
|