vexile 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b0a45838d0f62377e8b62ac0daa4434f21d09a35
4
+ data.tar.gz: ccad5ba68da21b801ba6c2d19706cdb40de239ee
5
+ SHA512:
6
+ metadata.gz: 579fad69270a43266089226e08bc21bce2c1c8848b6d464d0c43ebacb987dc4bb8e9d9835dc6b73bd582eb613565731684895ca0a48b37e229a0710689bf8ec8
7
+ data.tar.gz: 4b8dc4672b70bb7d2d4e49ccbb047f49600894b62bafcb8e48283467126829f9a4baba379ea76158886f6c361121791dcb155faf7d89a72b9001b7b36958bb94
data/README.md CHANGED
@@ -18,8 +18,78 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ Just declare some classes using such DSL:
22
22
 
23
+ class A
24
+ include Vexile::DSL
25
+ end
26
+
27
+ class B
28
+ include Vexile::DSL
29
+ end
30
+
31
+ class C
32
+ include Vexile::DSL
33
+ end
34
+
35
+ and then, if you have deep level hashes something like {"a": {"b":{"param1":"value1"}, "cs": [{"param2":2}, {"param2": 3}]}}}
36
+ and if you know it's structure, you can modify classes somehow like that:
37
+
38
+ class A
39
+ include Vexile::DSL
40
+ has_one :b
41
+ has_many :cs
42
+ end
43
+
44
+ class B
45
+ include Vexile::DSL
46
+ attr_accessor :param1
47
+ end
48
+
49
+ class C
50
+ include Vexile::DSL
51
+ attr_accessor :param2
52
+ end
53
+
54
+ then create instance of top level class and load hash to it:
55
+
56
+ a = A.new
57
+ a.load_params({"b"=>{"param1"=>"value1"}, "cs"=> [{"param2"=>"atata"}, {"param2"=> 3}]})
58
+
59
+ Now you have an instances tree initialized:
60
+
61
+ a.b # => <B ... @param1="value1" ... >
62
+ a.cs # => [#<C ... @param2=2 ...>, #<C ... @param2=3 ...>]
63
+
64
+ So you can also add activemodel validations:
65
+
66
+ class A
67
+ include Vexile::DSL
68
+ has_one :b
69
+ has_many :cs
70
+ validates :cs, :recursive => true # validator that checks any loaded C instance
71
+ end
72
+
73
+ class B
74
+ include Vexile::DSL
75
+ attr_accessor :param1
76
+ validates :param1, :numericality => true
77
+ end
78
+
79
+ class C
80
+ include Vexile::DSL
81
+ attr_accessor :param2
82
+ validates :param2, :numericality => true
83
+ end
84
+
85
+ So
86
+
87
+ a.valid? # => false #
88
+
89
+ because of NumericalityValidator added
90
+
91
+ a.errors # => ... @messages={:cs=>["is invalid in #<C:0x007f94729ade28> : {:param2=>[\"is not a number\"]}"...
92
+
23
93
  ## Contributing
24
94
 
25
95
  1. Fork it
@@ -1,3 +1,3 @@
1
1
  module Vexile
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
@@ -11,7 +11,7 @@ describe Vexile do
11
11
  class B
12
12
  include Vexile::DSL
13
13
  attr_accessor :p3, :p4
14
- validates :p4, :format => /^test\d+$/
14
+ validates :p4, :format => /\Atest\d+\z/
15
15
  end
16
16
 
17
17
  class C
@@ -16,8 +16,8 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
  gem.version = Vexile::VERSION
18
18
 
19
- gem.add_dependency 'activemodel', '~> 3'
20
- gem.add_dependency 'activesupport', '~> 3'
19
+ gem.add_dependency 'activemodel', '>= 3'
20
+ gem.add_dependency 'activesupport', '>= 3'
21
21
  gem.add_dependency 'bzproxies', '>= 0.1.11'
22
22
  gem.add_dependency 'addressable'
23
23
  gem.add_development_dependency "rspec"
metadata CHANGED
@@ -1,99 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vexile
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
5
- prerelease:
4
+ version: 1.0.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Alexander Kostrov
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-20 00:00:00.000000000 Z
11
+ date: 2013-07-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activemodel
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: activesupport
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '3'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '3'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: bzproxies
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: 0.1.11
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: 0.1.11
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: addressable
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  description: Auto generating ActiveModel validations for hashes
95
- email: !binary |-
96
- Ym9tYmF6b29rQGdtYWlsLmNvbQ==
84
+ email: bombazook@gmail.com
97
85
  executables: []
98
86
  extensions: []
99
87
  extra_rdoc_files: []
@@ -114,28 +102,28 @@ files:
114
102
  - vexile.gemspec
115
103
  homepage: http://malstream.info
116
104
  licenses: []
105
+ metadata: {}
117
106
  post_install_message:
118
107
  rdoc_options: []
119
108
  require_paths:
120
109
  - lib
121
110
  required_ruby_version: !ruby/object:Gem::Requirement
122
- none: false
123
111
  requirements:
124
- - - ! '>='
112
+ - - '>='
125
113
  - !ruby/object:Gem::Version
126
114
  version: '0'
127
115
  required_rubygems_version: !ruby/object:Gem::Requirement
128
- none: false
129
116
  requirements:
130
- - - ! '>='
117
+ - - '>='
131
118
  - !ruby/object:Gem::Version
132
119
  version: '0'
133
120
  requirements: []
134
121
  rubyforge_project:
135
- rubygems_version: 1.8.24
122
+ rubygems_version: 2.0.3
136
123
  signing_key:
137
- specification_version: 3
124
+ specification_version: 4
138
125
  summary: ActiveModel validations for hashes
139
126
  test_files:
140
127
  - spec/main_spec.rb
141
128
  - spec/spec_helper.rb
129
+ has_rdoc: