peto 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/examples/rails_app/app/controllers/foo_controller.rb +1 -0
- data/examples/rails_app/config/application.rb +1 -3
- data/examples/rails_app/contracts/generated/animal.rb +4 -4
- data/lib/peto/master.rb +2 -2
- data/lib/peto/rails/rails_controller_helper.rb +1 -1
- data/lib/peto/rake_task.rb +45 -0
- metadata +3 -8
- data/examples/rails_app/contracts/animal.rb +0 -27
- data/examples/rails_app/contracts/foo.rb +0 -36
- data/examples/rails_app/contracts/user.rb +0 -31
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
@@ -15,11 +15,9 @@ module RailsApp
|
|
15
15
|
# Custom directories with classes and modules you want to be autoloadable.
|
16
16
|
# config.autoload_paths += %W(#{config.root}/extras)
|
17
17
|
|
18
|
-
# local peto lib. you dont need it if you install peto by gem.
|
19
|
-
config.autoload_paths += %W(#{config.root}/../../lib)
|
20
|
-
|
21
18
|
# generated files by peto
|
22
19
|
config.autoload_paths += %W(#{config.root}/contracts/generated)
|
20
|
+
#config.autoload_paths += %W(#{config.root}/../../lib)
|
23
21
|
|
24
22
|
# Only load the plugins named here, in the order given (default is alphabetical).
|
25
23
|
# :all can be used as a placeholder for all plugins not explicitly named.
|
@@ -4,20 +4,20 @@ module Peto
|
|
4
4
|
class Animal
|
5
5
|
include PetoClass
|
6
6
|
def initialize(args={})
|
7
|
-
@
|
7
|
+
@name = nil
|
8
8
|
|
9
9
|
set_by_hash(args)
|
10
10
|
raise_errors unless valid?
|
11
11
|
end
|
12
12
|
|
13
|
-
attr_reader :
|
13
|
+
attr_reader :name
|
14
14
|
|
15
15
|
def members
|
16
|
-
[:
|
16
|
+
[:name]
|
17
17
|
end
|
18
18
|
|
19
19
|
def types
|
20
|
-
{:
|
20
|
+
{:name => String}
|
21
21
|
end
|
22
22
|
|
23
23
|
def arrays
|
data/lib/peto/master.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
require "peto"
|
2
|
+
require "rake"
|
3
|
+
require "rake/tasklib"
|
4
|
+
|
5
|
+
module Peto
|
6
|
+
class RakeTask < ::Rake::TaskLib
|
7
|
+
attr_accessor :contracts
|
8
|
+
attr_accessor :output_dir
|
9
|
+
attr_accessor :name
|
10
|
+
attr_accessor :fail_on_error
|
11
|
+
attr_accessor :failure_message
|
12
|
+
|
13
|
+
def initialize(*args)
|
14
|
+
@contracts ||= []
|
15
|
+
@output_dir ||= "./"
|
16
|
+
@name ||= :peto
|
17
|
+
@fail_on_error ||= true
|
18
|
+
|
19
|
+
yield self if block_given?
|
20
|
+
|
21
|
+
desc("Generate codes by contracts") unless ::Rake.application.last_comment
|
22
|
+
|
23
|
+
task name do
|
24
|
+
RakeFileUtils.send(:verbose, verbose) do
|
25
|
+
if contracts.empty?
|
26
|
+
puts "No contracts"
|
27
|
+
else
|
28
|
+
begin
|
29
|
+
self.contracts = [contracts] if contracts.class == String
|
30
|
+
contracts.each do |contract|
|
31
|
+
peto = Peto::Master.new
|
32
|
+
peto.load(contract)
|
33
|
+
peto.generate(output_dir)
|
34
|
+
end
|
35
|
+
rescue
|
36
|
+
puts failure_message if failure_message
|
37
|
+
raise "peto failed" if fail_on_error
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 4
|
9
|
+
version: 0.2.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Toshiyuki Hirooka
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- lib/peto/mixin/peto_errorable.rb
|
81
81
|
- lib/peto/rails/rails_controller_helper.rb
|
82
82
|
- lib/peto/rails/rails_controller_test_helper.rb
|
83
|
+
- lib/peto/rake_task.rb
|
83
84
|
- lib/templates/rb_classes.erb
|
84
85
|
- lib/templates/rb_procedures.erb
|
85
86
|
- test/contracts/generating.yml
|
@@ -108,14 +109,11 @@ files:
|
|
108
109
|
- examples/rails_app/test/unit/helpers/foo_helper_test.rb
|
109
110
|
- examples/rails_app/test/test_helper.rb
|
110
111
|
- examples/rails_app/test/functional/foo_controller_test.rb
|
111
|
-
- examples/rails_app/contracts/animal.rb
|
112
|
-
- examples/rails_app/contracts/user.rb
|
113
112
|
- examples/rails_app/contracts/generated/animal.rb
|
114
113
|
- examples/rails_app/contracts/generated/aho.rb
|
115
114
|
- examples/rails_app/contracts/generated/user.rb
|
116
115
|
- examples/rails_app/contracts/generated/foo.rb
|
117
116
|
- examples/rails_app/contracts/generated/iasdaho.rb
|
118
|
-
- examples/rails_app/contracts/foo.rb
|
119
117
|
has_rdoc: true
|
120
118
|
homepage: http://github.com/tosik/peto
|
121
119
|
licenses: []
|
@@ -173,11 +171,8 @@ test_files:
|
|
173
171
|
- examples/rails_app/test/unit/helpers/foo_helper_test.rb
|
174
172
|
- examples/rails_app/test/test_helper.rb
|
175
173
|
- examples/rails_app/test/functional/foo_controller_test.rb
|
176
|
-
- examples/rails_app/contracts/animal.rb
|
177
|
-
- examples/rails_app/contracts/user.rb
|
178
174
|
- examples/rails_app/contracts/generated/animal.rb
|
179
175
|
- examples/rails_app/contracts/generated/aho.rb
|
180
176
|
- examples/rails_app/contracts/generated/user.rb
|
181
177
|
- examples/rails_app/contracts/generated/foo.rb
|
182
178
|
- examples/rails_app/contracts/generated/iasdaho.rb
|
183
|
-
- examples/rails_app/contracts/foo.rb
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "peto/mixin/peto_class"
|
2
|
-
|
3
|
-
module Peto
|
4
|
-
class Animal
|
5
|
-
include PetoClass
|
6
|
-
def initialize(args={})
|
7
|
-
@name = nil
|
8
|
-
|
9
|
-
set_by_hash(args)
|
10
|
-
raise_errors unless valid?
|
11
|
-
end
|
12
|
-
|
13
|
-
attr_reader :name
|
14
|
-
|
15
|
-
def members
|
16
|
-
[:name]
|
17
|
-
end
|
18
|
-
|
19
|
-
def types
|
20
|
-
{:name => String}
|
21
|
-
end
|
22
|
-
|
23
|
-
def arrays
|
24
|
-
{}
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require "peto/mixin/peto_errorable"
|
2
|
-
|
3
|
-
module Peto
|
4
|
-
class Foo
|
5
|
-
extend PetoErrorable
|
6
|
-
def self.set_user(user)
|
7
|
-
invalid_type("user", User, user) unless user.class == User
|
8
|
-
raise_errors unless errors.empty?
|
9
|
-
|
10
|
-
return {
|
11
|
-
:procedure => "set_user",
|
12
|
-
:args => {
|
13
|
-
:user => hashize(user),
|
14
|
-
}
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.set_user_error_invalid_user(message)
|
19
|
-
invalid_type("message", String, message) unless message.class == String
|
20
|
-
raise_errors unless errors.empty?
|
21
|
-
|
22
|
-
return {
|
23
|
-
:procedure => "set_user_error_invalid_user",
|
24
|
-
:args => {
|
25
|
-
:message => hashize(message),
|
26
|
-
}
|
27
|
-
}
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
def self.hashize(var)
|
32
|
-
return var if [Fixnum, String].include?(var.class)
|
33
|
-
var.to_hash
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require "peto/mixin/peto_class"
|
2
|
-
|
3
|
-
module Peto
|
4
|
-
class User
|
5
|
-
include PetoClass
|
6
|
-
def initialize(args={})
|
7
|
-
@name = nil
|
8
|
-
@age = nil
|
9
|
-
@animals = [] # for Animal
|
10
|
-
|
11
|
-
set_by_hash(args)
|
12
|
-
raise_errors unless valid?
|
13
|
-
end
|
14
|
-
|
15
|
-
attr_reader :name
|
16
|
-
attr_reader :age
|
17
|
-
attr_reader :animals
|
18
|
-
|
19
|
-
def members
|
20
|
-
[:name,:age,:animals]
|
21
|
-
end
|
22
|
-
|
23
|
-
def types
|
24
|
-
{:name => String,:age => Fixnum,:animals => Array}
|
25
|
-
end
|
26
|
-
|
27
|
-
def arrays
|
28
|
-
{:animals => Animal}
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|