funky_form 0.1.0 → 0.2.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 056514e20bfae06f635ac1cbc1cbb62bc801b2acd1beb4b238c5ecfd0412a0f2
4
+ data.tar.gz: 1a65919513cd99a768e64792b51de4d4d670bb8615b56e2a9fb9ccd7ee18a515
5
+ SHA512:
6
+ metadata.gz: 592eb8128ca9d493046ef5904a3ff7b5208230747ddfae5d9f5ae8c6e8a85d663f15ad8f16e5e73fd33127a14554e0d63df8788fc959f6a43e5058b79d2b487c
7
+ data.tar.gz: 67f1d8d1221b4a8869f1766c56ad6e1bcfc63a4d011de4b830afa833492518c00367618e0a86fb029652b31321845539387370a834bf485d5a88dcf8cbb4d566
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.9.3"
4
+ - "2.0.0"
5
+ before_script: cd test/dummy && rake db:migrate && cd ../..
data/Gemfile CHANGED
@@ -4,7 +4,10 @@ gem "rails", "~> 3.2.0"
4
4
  gem "sqlite3"
5
5
  gem "capybara"
6
6
  gem "launchy"
7
- gem "minitest"
7
+
8
+ gem "minitest", "~> 5.0"
9
+ #gem "minitest-rails"
10
+ gem "minitest-capybara"
8
11
 
9
12
  # Specify your gem's dependencies in funky_form.gemspec
10
13
  gemspec
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2013-2020 Indrek Juhkam
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the “Software”), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
@@ -10,6 +10,7 @@ Gem::Specification.new do |s|
10
10
  s.homepage = ""
11
11
  s.summary = %q{Simple form objects in ruby}
12
12
  s.description = %q{}
13
+ s.license = "MIT"
13
14
 
14
15
  s.rubyforge_project = "funky_form"
15
16
 
@@ -18,6 +19,6 @@ Gem::Specification.new do |s|
18
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
20
  s.require_paths = ["lib"]
20
21
 
21
- s.add_dependency "virtus", "~> 0.5.4"
22
- s.add_dependency "activemodel", "~> 3.2.0"
22
+ s.add_dependency "virtus", "~> 1.0"
23
+ s.add_dependency "activemodel", ">= 3.2.0"
23
24
  end
@@ -7,7 +7,7 @@ module FunkyForm
7
7
  # @param [Class] descendant
8
8
  def self.included(descendant)
9
9
  super
10
- descendant.send(:include, Virtus)
10
+ descendant.send(:include, Virtus.model)
11
11
  descendant.send(:include, ActiveModel::Validations)
12
12
  descendant.send(:include, ActiveModel::Conversion)
13
13
  descendant.send(:include, InstanceMethods)
@@ -4,7 +4,7 @@ module FunkyForm
4
4
  if model_name
5
5
  @model_name = model_name
6
6
  else
7
- @model_name ||= super()
7
+ @model_name ||= superclass.model_name
8
8
  end
9
9
  end
10
10
 
@@ -1,3 +1,3 @@
1
1
  module FunkyForm
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -1,6 +1,6 @@
1
- require_relative "../integration_test_helper"
1
+ require "acceptance_test_helper"
2
2
 
3
- class PostsTest < ActiveSupport::IntegrationCase
3
+ class PostsTest < AcceptanceTest
4
4
  def test_creating_a_post
5
5
  visit new_post_path
6
6
 
@@ -1,11 +1,9 @@
1
- require_relative "test_helper"
1
+ require "test_helper"
2
+ require "minitest-capybara"
2
3
 
3
4
  # Configure Rails Envinronment
4
5
  ENV["RAILS_ENV"] = "test"
5
-
6
6
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
7
- require "rails/test_help"
8
-
9
7
  Rails.backtrace_cleaner.remove_silencers!
10
8
 
11
9
  # Configure capybara for integration testing
@@ -13,7 +11,7 @@ require "capybara/rails"
13
11
  Capybara.default_driver = :rack_test
14
12
  Capybara.default_selector = :css
15
13
 
16
- class ActiveSupport::IntegrationCase < ActiveSupport::TestCase
14
+ class AcceptanceTest < MiniTest::Test
17
15
  include Capybara::DSL
18
16
  include Rails.application.routes.url_helpers
19
17
  end
@@ -1,6 +1,6 @@
1
1
  require_relative "test_helper"
2
2
 
3
- class FunkyFormTest < MiniTest::Unit::TestCase
3
+ class FunkyFormTest < MiniTest::Test
4
4
  parallelize_me!
5
5
 
6
6
  def test_values_from_existing_instance
@@ -81,6 +81,29 @@ class FunkyFormTest < MiniTest::Unit::TestCase
81
81
  assert_equal "Order", form_class.model_name.to_s
82
82
  end
83
83
 
84
+ def test_model_inheritance
85
+ base_class = new_funky_form do
86
+ model "Order"
87
+ end
88
+
89
+ form_class = Class.new(base_class)
90
+
91
+ assert_equal "Order", form_class.model_name.to_s
92
+ end
93
+
94
+ def test_model_inheritance_with_different_model_name
95
+ base_class = new_funky_form do
96
+ model "Order"
97
+ end
98
+
99
+ form_class = Class.new(base_class) do
100
+ model "ConcreteOrder"
101
+ end
102
+
103
+ assert_equal "Order", base_class.model_name.to_s
104
+ assert_equal "ConcreteOrder", form_class.model_name.to_s
105
+ end
106
+
84
107
  def test_validations
85
108
  form = new_funky_form do
86
109
  attribute :title, String
@@ -92,4 +115,19 @@ class FunkyFormTest < MiniTest::Unit::TestCase
92
115
  assert !form.new(:title => "").valid?, "should be invalid when empty"
93
116
  assert !form.new.valid?, "should be invalid when not specified"
94
117
  end
118
+
119
+ def test_validations_with_model_inheritance
120
+ base_class = new_funky_form do
121
+ end
122
+
123
+ form = Class.new(base_class) do
124
+ model "Order"
125
+
126
+ attribute :title, String
127
+ validates :title, :presence => true
128
+ end
129
+
130
+ assert form.new(:title => "a title").valid?
131
+ assert !form.new(:title => nil).valid?, "should be invalid when nil"
132
+ end
95
133
  end
@@ -4,7 +4,7 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
4
4
  require "minitest/autorun"
5
5
  require_relative "../lib/funky_form"
6
6
 
7
- class MiniTest::Unit::TestCase
7
+ class MiniTest::Test
8
8
  private
9
9
 
10
10
  def new_funky_form(&block)
metadata CHANGED
@@ -1,48 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: funky_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
5
- prerelease:
4
+ version: 0.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Indrek Juhkam
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-01-13 00:00:00.000000000 Z
11
+ date: 2020-11-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
14
+ name: virtus
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.4
20
- none: false
19
+ version: '1.0'
21
20
  type: :runtime
22
- name: virtus
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - ~>
24
+ - - "~>"
26
25
  - !ruby/object:Gem::Version
27
- version: 0.5.4
28
- none: false
29
- prerelease: false
26
+ version: '1.0'
30
27
  - !ruby/object:Gem::Dependency
28
+ name: activemodel
31
29
  requirement: !ruby/object:Gem::Requirement
32
30
  requirements:
33
- - - ~>
31
+ - - ">="
34
32
  - !ruby/object:Gem::Version
35
33
  version: 3.2.0
36
- none: false
37
34
  type: :runtime
38
- name: activemodel
35
+ prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ~>
38
+ - - ">="
42
39
  - !ruby/object:Gem::Version
43
40
  version: 3.2.0
44
- none: false
45
- prerelease: false
46
41
  description: ''
47
42
  email:
48
43
  - indrek@urgas.eu
@@ -50,8 +45,10 @@ executables: []
50
45
  extensions: []
51
46
  extra_rdoc_files: []
52
47
  files:
53
- - .gitignore
48
+ - ".gitignore"
49
+ - ".travis.yml"
54
50
  - Gemfile
51
+ - LICENSE
55
52
  - README.rdoc
56
53
  - Rakefile
57
54
  - funky_form.gemspec
@@ -59,6 +56,8 @@ files:
59
56
  - lib/funky_form/class_methods.rb
60
57
  - lib/funky_form/instance_methods.rb
61
58
  - lib/funky_form/version.rb
59
+ - test/acceptance/posts_test.rb
60
+ - test/acceptance_test_helper.rb
62
61
  - test/dummy/Rakefile
63
62
  - test/dummy/app/controllers/application_controller.rb
64
63
  - test/dummy/app/controllers/posts_controller.rb
@@ -86,7 +85,6 @@ files:
86
85
  - test/dummy/config/initializers/session_store.rb
87
86
  - test/dummy/config/locales/en.yml
88
87
  - test/dummy/config/routes.rb
89
- - test/dummy/db/development.sqlite3
90
88
  - test/dummy/db/migrate/20120306162814_create_posts.rb
91
89
  - test/dummy/db/schema.rb
92
90
  - test/dummy/public/404.html
@@ -96,37 +94,28 @@ files:
96
94
  - test/dummy/public/stylesheets/.gitkeep
97
95
  - test/dummy/script/rails
98
96
  - test/funky_form_test.rb
99
- - test/integration/posts_test.rb
100
- - test/integration_test_helper.rb
101
97
  - test/test_helper.rb
102
98
  homepage: ''
103
- licenses: []
99
+ licenses:
100
+ - MIT
101
+ metadata: {}
104
102
  post_install_message:
105
103
  rdoc_options: []
106
104
  require_paths:
107
105
  - lib
108
106
  required_ruby_version: !ruby/object:Gem::Requirement
109
107
  requirements:
110
- - - ! '>='
108
+ - - ">="
111
109
  - !ruby/object:Gem::Version
112
- hash: -865947392686571946
113
110
  version: '0'
114
- segments:
115
- - 0
116
- none: false
117
111
  required_rubygems_version: !ruby/object:Gem::Requirement
118
112
  requirements:
119
- - - ! '>='
113
+ - - ">="
120
114
  - !ruby/object:Gem::Version
121
- hash: -865947392686571946
122
115
  version: '0'
123
- segments:
124
- - 0
125
- none: false
126
116
  requirements: []
127
- rubyforge_project: funky_form
128
- rubygems_version: 1.8.24
117
+ rubygems_version: 3.0.3
129
118
  signing_key:
130
- specification_version: 3
119
+ specification_version: 4
131
120
  summary: Simple form objects in ruby
132
121
  test_files: []