schema 0.0.3 → 0.0.4

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.
data/README.md CHANGED
@@ -16,6 +16,10 @@ A Schema is either a type that implements `#from` or a hash of schemas or an arr
16
16
  { :string => String } # is a schema
17
17
  { :foo => [{ :bar => DateTime }]} # is a schema
18
18
 
19
+ Ruby has no Boolean class, therefore we define it, so we have
20
+
21
+ Boolean # is a schema
22
+
19
23
  In Hash-schemas keys may be optional indicated by a trailing question mark.
20
24
 
21
25
  { :optional => '42' }.transform({ :optional? => Float }) == { :optional => 42.0 }
data/lib/schema.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'schema/version'
2
2
  require 'schema/schema'
3
+ require 'schema/boolean'
3
4
  require 'schema/core_ext'
4
5
  require 'schema/include'
@@ -0,0 +1,12 @@
1
+ module Boolean
2
+ def self.from val
3
+ case val.to_s
4
+ when /^true$/i
5
+ true
6
+ when /^false$/i
7
+ false
8
+ else
9
+ raise ArgumentError, "Could not create Boolean from #{val}"
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module Schema
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
data/schema.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{schema}
8
- s.version = "0.0.3"
8
+ s.version = "0.0.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Daniel Kirsch"]
12
- s.date = %q{2010-12-06}
12
+ s.date = %q{2010-12-07}
13
13
  s.description = %q{Deep type conversion through schemas for hashes}
14
14
  s.email = %q{danishkirel@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "Rakefile",
24
24
  "autotest/discover.rb",
25
25
  "lib/schema.rb",
26
+ "lib/schema/boolean.rb",
26
27
  "lib/schema/core_ext.rb",
27
28
  "lib/schema/include.rb",
28
29
  "lib/schema/schema.rb",
data/spec/schema_spec.rb CHANGED
@@ -11,6 +11,10 @@ describe "Schema" do
11
11
  '42'.transform(Float).should be_kind_of(Float)
12
12
  '42'.transform(Integer).should == 42
13
13
  '42'.transform(Integer).should be_kind_of(Integer)
14
+ 'true'.transform(Boolean).should == true
15
+ 'true'.transform(Boolean).should be_kind_of(TrueClass)
16
+ 'false'.transform(Boolean).should == false
17
+ 'false'.transform(Boolean).should be_kind_of(FalseClass)
14
18
  end
15
19
 
16
20
  it "should cast dates" do
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
8
+ - 4
9
+ version: 0.0.4
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Kirsch
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-06 00:00:00 +01:00
17
+ date: 2010-12-07 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -60,6 +60,7 @@ files:
60
60
  - Rakefile
61
61
  - autotest/discover.rb
62
62
  - lib/schema.rb
63
+ - lib/schema/boolean.rb
63
64
  - lib/schema/core_ext.rb
64
65
  - lib/schema/include.rb
65
66
  - lib/schema/schema.rb