faat 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZWZjNTk2YTIwNzRmZWIyMTlkZWU0NzQ3M2EyZDFmN2UxM2IzNjkwYg==
4
+ ZTE4ZjhlMWVlZTYyYTc3MWE3MzgwZDFkYTIxNDc5MGE0MzdhOGYzMg==
5
5
  data.tar.gz: !binary |-
6
- ODFmMzg4ODQ0MzI1ZmE4YTAyYTNjZjFmYWYyMzlhMGEyODI4MjNmMg==
6
+ MGYwOWI1MzY3ZjE0YjUyMDFhZjRmMGQxYzNkMDZiOTA5ZDNiMDhmMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDA0YzZhODIzYzYxMDZlZjU5YmI5OTFlYjgyMjZkMzBmMzFhMDY1NjZkOTk4
10
- ZDhlM2Y2Yjc0MjQ4ZTI0Nzk3MGMwYzVkNzIzZjhiY2M4MTlkZmQyZDFhMGFi
11
- YWYzYThhMTA5ZjQxODVkZTZiNTg3MTI3YjU1ZGJjNzQzZDUxZTg=
9
+ MTM3NDE0ZjY2NGU1YjkyYTdkYmU3MTQxMDhlNWQ4YTA3OWVkNGQ5MTE5MmMx
10
+ NTM3Y2NhZjk2NTUyYTE1YmNkYzE0OTBmODJjNTJhNDE5ZDk5ZDE2MDA1ODQ3
11
+ MGVkOWU4Mzg5ZTM3MWMyYjY1N2ZkNDNlZTYyOTI2N2UzZDNmMTc=
12
12
  data.tar.gz: !binary |-
13
- YWQzYzg1MzgwYTk3NGMzOTc1NTU4Y2U2YmNkNGEwZGI0Y2NkNTYzMzkyZDli
14
- ZTk0YzhiMWUzMjYxMWUyODUwZWRmMWIwMGQwM2ZjZWUxOTllNThkMTgwYzkx
15
- N2M1YmRiOTZjODQ3ODQyMWQ5YzczMjBiMDI4NzEzMzkzZTQyMjQ=
13
+ M2YxYzAzNmQwZmE3ZTNhMGQxYjEwZjQwMjA5YzU3Y2YyNmNmMWI2MjIyZWFj
14
+ YzU3ZjQ1Nzg3ZDMyMDdiZTk5MzNjODQ5MjBiMzA4ZWM2NmEzMjM3NmY1MTE4
15
+ MmQwMTgzMDRjOWQ4YzRmYmVkNWQ5YjAyYTQwMjE2NDM1ZGViYjY=
data/Gemfile CHANGED
@@ -1,6 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'pry'
4
3
  gem 'codeclimate-test-reporter', group: :test, require: nil
5
4
  # Specify your gem's dependencies in faat.gemspec
6
5
  gemspec
data/README.md CHANGED
@@ -25,11 +25,15 @@ Or install it yourself as:
25
25
  Run ```rails generate faat:resources {model_name}```,
26
26
  generator will create folder ```resource``` in ```app``` directory, and file ```{model_name}_resource.rb```
27
27
 
28
+ Run ```rails generate faat:forms {form_name} {attribute_name}:{attribute_type}```,
29
+ generator will create folder ```forms``` in ```app``` directory, and file ```{form_name}_form.rb```
28
30
 
29
31
  ###Initialize:
30
32
  ```ruby
31
33
  @post = Post.new
32
34
  @post_resource = PostResource.new(@post)
35
+
36
+ @post_form = PostForm.new(post_form_params)
33
37
  ```
34
38
 
35
39
  ###Usage:
@@ -42,9 +46,46 @@ PostResource.all => Post.all
42
46
  PostResource.where(title: "First Test Title") => Post.where(...)
43
47
  ```
44
48
 
49
+ ###Examples:
50
+
51
+
52
+ In ```post_resource.rb```
53
+ ```ruby
54
+ class PostResource < Faat::Resources::Base
55
+ ...
56
+
57
+ def initialize(post_form)
58
+ @author = Author.create!(name: post_form.author_name, email: post_form.author_email)
59
+ @post = Post.create!(text: post_form.text, title: post_form.title)
60
+ send_confirmation_email(@author)
61
+ end
62
+
63
+ ...
64
+ end
65
+ ```
66
+
67
+ In```post_controller.rb```
68
+ ```ruby
69
+ ...
70
+ def create
71
+ @post_form = PostForm.new(post_form_params)
72
+ if @post_form.valid?
73
+ @post_resource = PostResource.new(@post_form) => create @author and @post
74
+ end
75
+ end
76
+ ```
77
+
78
+ Some other usage:
79
+ ```ruby
80
+ @post_form = PostForm.new(post_form_params)
81
+ @post_form.valid? # or invalid?
82
+ @post_form.text => some value
83
+ @post_form.author_email => john@example.com
84
+ @ost_form.author_name => John Smith
85
+ ```
45
86
  ## TODO
46
87
 
47
- Add resource and form generators
88
+ Add spec/test auto generator
48
89
 
49
90
 
50
91
  ## Contributing
@@ -0,0 +1,19 @@
1
+ require 'virtus'
2
+ # root module Faat
3
+ module Faat
4
+ # Faat::Forms forms module
5
+ module Forms
6
+ # Faat::Forms::Base base forms class
7
+ class Base
8
+ # Your classes must inherited from this Base class
9
+ # for removing all business logic from models classes,
10
+ # and controllers
11
+
12
+ include Virtus.model
13
+
14
+ extend ActiveModel::Naming
15
+ include ActiveModel::Conversion
16
+ include ActiveModel::Validations
17
+ end
18
+ end
19
+ end
@@ -1,4 +1,4 @@
1
1
  # root gem module with version constant
2
2
  module Faat
3
- VERSION = '0.1.3'
3
+ VERSION = '0.1.4'
4
4
  end
@@ -0,0 +1,41 @@
1
+ require 'generators/faat'
2
+ require 'rails/generators/base'
3
+
4
+ module Faat
5
+ module Generators
6
+ class FormsGenerator < Base
7
+ argument :form_name, type: :string, default: 'app', banner: 'form_name'
8
+ argument :attr, type: :array, default: [], banner: 'form attributes'
9
+
10
+ def create_form
11
+ @form_attributes = []
12
+
13
+ unless attr.size.zero?
14
+ attr.each do |arg|
15
+ if arg.include?(':')
16
+ @form_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
17
+ else
18
+ @form_attributes << Rails::Generators::GeneratedAttribute.new(arg)
19
+ end
20
+ end
21
+ end
22
+
23
+ template "form_template.rb", "app/forms/#{file_name}_form.rb"
24
+ end
25
+
26
+ private
27
+
28
+ def attributes
29
+ @form_attributes
30
+ end
31
+
32
+ def file_name
33
+ form_name.underscore
34
+ end
35
+
36
+ def class_name
37
+ form_name.downcase.capitalize
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,8 @@
1
+ <%= '# default generated template' %>
2
+
3
+ class <%= "#{class_name}Form" %> < Faat::Forms::Base
4
+ <% attributes.each do |arg| %>
5
+ <%= "attribute :#{arg.name}, #{arg.type.capitalize}" %><% end %>
6
+ <%= '# add your attributes "attribute :title, String"' %>
7
+ <%= '# and add your validation for forms "validates :title, presence: true"' %>
8
+ end
@@ -16,10 +16,6 @@ module Faat
16
16
  resource_name.underscore
17
17
  end
18
18
 
19
- def constant_name
20
- resource_name.underscore.upcase
21
- end
22
-
23
19
  def class_name
24
20
  resource_name.downcase.capitalize
25
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: faat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nazarii Sheremet
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-05 00:00:00.000000000 Z
11
+ date: 2016-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -126,11 +126,13 @@ files:
126
126
  - bin/setup
127
127
  - faat.gemspec
128
128
  - lib/faat.rb
129
+ - lib/faat/forms/base.rb
129
130
  - lib/faat/helpers/string.rb
130
131
  - lib/faat/resources/base.rb
131
132
  - lib/faat/version.rb
132
133
  - lib/generators/faat.rb
133
- - lib/generators/faat/forms/templates/form_tamplate.rb
134
+ - lib/generators/faat/forms/forms_generator.rb
135
+ - lib/generators/faat/forms/templates/form_template.rb
134
136
  - lib/generators/faat/resources/resources_generator.rb
135
137
  - lib/generators/faat/resources/templates/resource_template.rb
136
138
  homepage: https://github.com/xo8bit/faat