rack-backend-api 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -293,6 +293,7 @@ CHANGE LOG
293
293
  0.1.0 Introduce sorting functionality
294
294
  0.2.0 Control what you send on 201 responses
295
295
  0.2.1 Have a title in forms + Only use `_method` if not POST
296
+ 0.2.2 Backend form should accept a block for populating the fields
296
297
 
297
298
  COPYRIGHT
298
299
  =========
data/lib/backend_api.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class BackendAPI
2
- VERSION = [0,2,1]
2
+ VERSION = [0,2,2]
3
3
  WRAP = <<-EOT
4
4
  <!doctype html>
5
5
  <html>
@@ -25,9 +25,14 @@ module ::Sequel::Plugins::RackBackendApiAdapter
25
25
 
26
26
  def backend_form(url, cols=nil, opts={})
27
27
  cols ||= default_backend_columns
28
- fields_list = respond_to?(:crushyform) ? crushyform(cols) : backend_fields(cols)
28
+ if block_given?
29
+ fields_list = ''
30
+ yield(fields_list)
31
+ else
32
+ fields_list = respond_to?(:crushyform) ? crushyform(cols) : backend_fields(cols)
33
+ end
29
34
  o = "<form action='#{url}' method='POST' #{"enctype='multipart/form-data'" if fields_list.match(/type='file'/)} class='backend-form'>\n"
30
- o << backend_form_title
35
+ o << backend_form_title unless block_given?
31
36
  o << fields_list
32
37
  opts[:method] = 'PUT' if (opts[:method].nil? && !self.new?)
33
38
  o << "<input type='hidden' name='_method' value='#{opts[:method]}' />\n" unless opts[:method].nil?
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'rack-backend-api'
3
- s.version = "0.2.1"
3
+ s.version = "0.2.2"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.summary = "A Rack middleware that provides a simple API for your Admin section"
6
6
  s.description = "The purpose of this Rack Middleware is to provide an API that interfaces with database actions in order to build a CMS."
@@ -110,4 +110,10 @@ describe 'Sequel Adapter' do
110
110
  Author[1].backend_form('/url').should.match(/#{Regexp.escape(Author[1].backend_form_title)}/)
111
111
  end
112
112
 
113
+ should 'Yield the given block to populate the form fields' do
114
+ Author[1].backend_form('/url'){|out| out << '<!-- YIELDED -->'}.should.match(/<!-- YIELDED -->/)
115
+ Author[1].backend_form('/url', [:name]){|out|}.should.not.match(/#{Regexp.escape Author[1].crushyfield(:name)}/)
116
+ Author[1].backend_form('/url'){|out| out << '<!-- YIELDED -->'}.should.not.match(/#{Regexp.escape(Author[1].backend_form_title)}/)
117
+ end
118
+
113
119
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-backend-api
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 1
10
- version: 0.2.1
9
+ - 2
10
+ version: 0.2.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mickael Riga
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-05 00:00:00 +01:00
18
+ date: 2011-08-08 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21