servi 1.0.1 → 1.0.2

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/servi/form.rb +51 -0
  3. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d709873b6eb803abba6738c857dc91ab3f5db58b
4
- data.tar.gz: 65fc977b2f68056312576f5354e4990d16862c18
3
+ metadata.gz: d356442d48496f255f8557d1599babedae0cdfc8
4
+ data.tar.gz: 6ad9b60ff0cca553224ae5bb55c88368e88d1ab9
5
5
  SHA512:
6
- metadata.gz: bc3671d343c2fc906ad0e72f43348eca4298b6f128ff6dcf588b00f060fe170ec1ccbcee6fc1042cb9501edc5efb84b8d3c590e7d5c175d1481706c5288ef517
7
- data.tar.gz: 1018746b84bfa01ecba75849adbbaf71c3709394d5c6ac764758e32fa8dcbd0dc499f0578893d9e2826b58cd06a4e2e732094ca93cd2ae4d6da9fce73d46775c
6
+ metadata.gz: e3c0533934762b83a1fff7bd16fb23e8ed6ffa80f3c79c83d0d9c82e0b9c682bb531e9011704533c8426e1bd021db4689bc31d42acfa446b23f7005197c4f724
7
+ data.tar.gz: 6adddfec1aca5f0ccfa733537dd7cbdec026b25edad6834e0debf8dbc2c8d09474d00f13a567bb88a241f696e8accaa1dee4047a07519dab72e7f82c55232aed
data/lib/servi/form.rb ADDED
@@ -0,0 +1,51 @@
1
+ class Servi
2
+ class Form
3
+ def self.empty
4
+ new(Servi::Result.new(:unbound, {}, {}))
5
+ end
6
+
7
+ def self.from(attrs)
8
+ form = self.empty
9
+ form.fill(attrs)
10
+ form
11
+ end
12
+
13
+ def initialize(result)
14
+ @result = result
15
+ end
16
+
17
+ def params
18
+ @result.params
19
+ end
20
+
21
+ def errors
22
+ Errors.new(@result.errors)
23
+ end
24
+ end
25
+
26
+ class Errors
27
+ def initialize(errors)
28
+ @errors = errors
29
+ end
30
+
31
+ def empty?
32
+ @errors.empty?
33
+ end
34
+
35
+ def on(att, name)
36
+ @errors[att].include?(name)
37
+ end
38
+
39
+ def [](key)
40
+ @errors[key]
41
+ end
42
+
43
+ def each
44
+ @errors.each do |att, names|
45
+ names.each do |name|
46
+ yield([att, name])
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: servi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Hanna
@@ -19,6 +19,7 @@ extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
21
21
  - lib/servi.rb
22
+ - lib/servi/form.rb
22
23
  - lib/servi/validations.rb
23
24
  homepage: http://github.com/kevinjhanna/servi
24
25
  licenses: