lhs 3.1.3 → 3.2.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: 0fea30df48822225921db5b070d8b3581c64451e
4
- data.tar.gz: b29781282f62a5a68e97b0f4643af68b221c6bf1
3
+ metadata.gz: 3104a36287bf44989ceded81a998fd803298b14c
4
+ data.tar.gz: 48c62d18f012d593731a5ec8f0ed3c69992a8512
5
5
  SHA512:
6
- metadata.gz: b1a1529a764d30f17a15346b102ac3a68c3a52709fc12d55fd6454f6dfae9131f30baa61a7bb67931217748f34804b5715cbda3438ba2702d655137f7b153812
7
- data.tar.gz: 321a76d203b0d7122af4ad1d38bf4c6feb0bf848c8991dd14c33205267d39deef3cf4ce931b5e6f7941471ddef6c44e5aa9c0958bea362f9012bdff6257cedd6
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
+ ```
@@ -29,4 +29,5 @@ Gem::Specification.new do |s|
29
29
  s.add_development_dependency 'geminabox'
30
30
  s.add_development_dependency 'pry'
31
31
  s.add_development_dependency 'ciderizer'
32
+ s.add_development_dependency 'capybara'
32
33
  end
@@ -6,10 +6,16 @@ class LHS::Record
6
6
  module Model
7
7
  extend ActiveSupport::Concern
8
8
 
9
- module ClassMethods
10
- def model_name
11
- ActiveModel::Name.new(self)
12
- end
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
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "3.1.3"
2
+ VERSION = "3.2.0"
3
3
  end
@@ -0,0 +1,5 @@
1
+ <%= form_for(@instance, url: '/create') do |f| %>
2
+ <%= f.text_field :name %>
3
+ <%= f.text_area :text %>
4
+ <%= f.submit "Create" %>
5
+ <% end %>
@@ -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.1.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-25 00:00:00.000000000 Z
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