funky_form 0.1.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []