microform 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 19443354ba1018a4a31bdc5c84e81cc10111cf6b
4
- data.tar.gz: 9a351fa3f695c776f6523be43d8bde9be9a84141
3
+ metadata.gz: d6a089ad8864553020f3264e0afe9b0341393ee6
4
+ data.tar.gz: f3524fc51e01adb10b93115a10668208639c6254
5
5
  SHA512:
6
- metadata.gz: 5a174169221181dc9a156da20e780332ca27cb58d5f3fedf557c4cd3b90e2a57371d378c6097df7563d60b96bbccf06d9390bd84582aef45b55fb859579dd1b3
7
- data.tar.gz: 6a79247f933f4b012a7b6768d90742597adbf593024937fa8185b5a7960c7aefafbcfa8ac8b3a6c3961140f48b91f54c44ae37640860c1ec26fc8342b2748a0d
6
+ metadata.gz: fc2105a14b7d161ef67893c5a864cc0eedd4e9434d215302afb5e3068f118912f517f2d7b2899a08690dc196818842b599d0ab43f6357d9442e0d9d3ee2487e0
7
+ data.tar.gz: 60f2266c5aeeff4031d177ca2d12db4b92c208ad362812ba7ffabcd0d611addb7e7adaf6bb1aef2235bb5af1111cf6ffc589e47c38ed0a3a678367014f88d0bb
@@ -1,8 +1,9 @@
1
1
  Description:
2
- Explain the generator
2
+ Generates a form with a given name
3
3
 
4
4
  Example:
5
- rails generate form Name
5
+ rails generate microform:form Name
6
6
 
7
7
  This will create:
8
8
  app/forms/#{Name}_form.rb
9
+ test/forms/#{Name}_form_test.rb
@@ -1,6 +1,10 @@
1
1
  class <%= file_name.capitalize %>Form
2
2
  attr_reader :<%= file_name %>
3
3
 
4
+ delegate :persisted?, to: :<%= file_name %>
5
+ delegate :to_model, to: :<%= file_name %>
6
+ delegate :to_param, to: :<%= file_name %>
7
+
4
8
  def initialize(<%= file_name %>)
5
9
  @<%= file_name %> = <%= file_name %>
6
10
  end
@@ -11,14 +15,6 @@ class <%= file_name.capitalize %>Form
11
15
  <%= file_name %>.save
12
16
  end
13
17
 
14
- def persisted?
15
- <%= file_name %>.persisted?
16
- end
17
-
18
- def to_model
19
- <%= file_name %>
20
- end
21
-
22
18
  def method_missing(method, *args)
23
19
  if <%= file_name %>.respond_to?(method, *args)
24
20
  <%= file_name %>.send(method, *args)
@@ -0,0 +1,43 @@
1
+ require "minitest/stub_any_instance"
2
+ require "minitest/mock"
3
+
4
+ module Microform
5
+ module Test
6
+ module IntegrationMethods
7
+ def assert_submits form_kind, stub: nil, &block
8
+ controller = self.class.name.gsub(/Test\z/, "").constantize
9
+ form = form_kind.new OpenStruct.new(foo: :bar)
10
+
11
+ # Mangle the variable names to circumvent any issues with method
12
+ # collisions when the `submit` lambda is instance eval'ed within
13
+ # the controller.
14
+ __microform_form_kind = form_kind
15
+ __microform_test = self
16
+ __microform_stub = stub
17
+
18
+ submit = -> f, *args {
19
+ __microform_test.assert_equal __microform_form_kind, f
20
+
21
+ if __microform_stub
22
+ __microform_stub
23
+ else
24
+ __minitest_any_instance_stub__submit f, *args
25
+ end
26
+ }
27
+
28
+ controller.stub_any_instance :submit, submit do
29
+ yield form
30
+ end
31
+ end
32
+ end
33
+
34
+ class ValidForm
35
+ def initialize(*)
36
+ end
37
+
38
+ def valid?
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,3 +1,3 @@
1
1
  module Microform
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: microform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Standard Library
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-15 00:00:00.000000000 Z
11
+ date: 2017-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest-stub_any_instance
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -78,6 +92,7 @@ files:
78
92
  - lib/generators/microform/form/templates/form.rb
79
93
  - lib/generators/microform/form/templates/form_test.rb
80
94
  - lib/microform.rb
95
+ - lib/microform/test_methods.rb
81
96
  - lib/microform/version.rb
82
97
  homepage: https://github.com/standard-library/microform
83
98
  licenses:
@@ -100,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
115
  version: '0'
101
116
  requirements: []
102
117
  rubyforge_project:
103
- rubygems_version: 2.6.12
118
+ rubygems_version: 2.6.11
104
119
  signing_key:
105
120
  specification_version: 4
106
121
  summary: The smallest possible form object pattern for Rails.