large_text_field 0.3.1 → 1.0.2.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +6 -2
  3. data/Rakefile +5 -3
  4. data/db/migrate/20110217210640_add_large_text_fields.rb +3 -2
  5. data/lib/large_text_field/engine.rb +2 -0
  6. data/lib/large_text_field/named_text_value.rb +1 -3
  7. data/lib/large_text_field/owner.rb +10 -6
  8. data/lib/large_text_field/version.rb +3 -1
  9. data/lib/large_text_field.rb +1 -2
  10. data/test/dummy/Rakefile +3 -1
  11. data/test/dummy/app/assets/config/manifest.js +1 -0
  12. data/test/dummy/app/models/library.rb +2 -1
  13. data/test/dummy/config/application.rb +3 -1
  14. data/test/dummy/config/boot.rb +4 -2
  15. data/test/dummy/config/database.yml +13 -1
  16. data/test/dummy/config/environment.rb +3 -1
  17. data/test/dummy/config/environments/development.rb +2 -3
  18. data/test/dummy/config/environments/production.rb +2 -0
  19. data/test/dummy/config/environments/test.rb +2 -3
  20. data/test/dummy/config.ru +2 -0
  21. data/test/dummy/db/development.sqlite3 +0 -0
  22. data/test/dummy/db/migrate/20160217033529_create_libraries.rb +2 -0
  23. data/test/dummy/db/schema.rb +5 -5
  24. data/test/dummy/db/test.sqlite3 +0 -0
  25. data/test/dummy/log/development.log +39 -0
  26. data/test/dummy/log/test.log +827 -3763
  27. data/test/dummy/script/rails +4 -2
  28. data/test/large_text_field_test.rb +2 -0
  29. data/test/reports/TEST-LargeTextField-LibraryTest.xml +9 -0
  30. data/test/reports/TEST-LargeTextField-NamedTextValueTest.xml +15 -0
  31. data/test/reports/TEST-LargeTextField-OwnerTest.xml +53 -0
  32. data/test/reports/TEST-LargeTextFieldTest.xml +7 -0
  33. data/test/test_helper.rb +11 -2
  34. data/test/unit/dummy/library_test.rb +2 -0
  35. data/test/unit/large_text_field/name_text_value_test.rb +2 -0
  36. data/test/unit/large_text_field/owner_test.rb +18 -16
  37. metadata +35 -30
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
5
 
4
- APP_PATH = File.expand_path('../../config/application', __FILE__)
5
- require File.expand_path('../../config/boot', __FILE__)
6
+ APP_PATH = File.expand_path('../config/application', __dir__)
7
+ require File.expand_path('../config/boot', __dir__)
6
8
  require 'rails/commands'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class LargeTextFieldTest < ActiveSupport::TestCase
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites>
3
+ <testsuite name="LargeTextField::LibraryTest" filepath="/Users/tstarck/invoca/large_text_field/test/unit/dummy/library_test.rb" skipped="0" failures="0" errors="0" tests="2" assertions="2" time="0.00797699997201562">
4
+ <testcase name="test_: LargeTextField::Library should be able to construct a library. " lineno="7" classname="LargeTextField::LibraryTest" assertions="2" time="0.005172000033780932">
5
+ </testcase>
6
+ <testcase name="test_: LargeTextField::Library should be able to dup a class that has no current large text field. " lineno="20" classname="LargeTextField::LibraryTest" assertions="0" time="0.002804999938234687">
7
+ </testcase>
8
+ </testsuite>
9
+ </testsuites>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites>
3
+ <testsuite name="LargeTextField::NamedTextValueTest" filepath="/Users/tstarck/.rbenv/versions/2.6.1/lib/ruby/gems/2.6.0/gems/shoulda-context-1.2.2/lib/shoulda/context/context.rb" skipped="0" failures="0" errors="0" tests="5" assertions="9" time="0.06121000007260591">
4
+ <testcase name="test_: LargeTextField::NamedTextValue should belong to owner. " lineno="346" classname="LargeTextField::NamedTextValueTest" assertions="1" time="0.003751999931409955">
5
+ </testcase>
6
+ <testcase name="test_: LargeTextField::NamedTextValue should have field name and value attributes. " lineno="11" classname="LargeTextField::NamedTextValueTest" assertions="6" time="0.0427560000680387">
7
+ </testcase>
8
+ <testcase name="test_: LargeTextField::NamedTextValue should use large_text_fields as the table name. " lineno="7" classname="LargeTextField::NamedTextValueTest" assertions="1" time="0.0005510000046342611">
9
+ </testcase>
10
+ <testcase name="test_: unique index should allow different owners and field names. " lineno="36" classname="LargeTextField::NamedTextValueTest" assertions="0" time="0.009568999987095594">
11
+ </testcase>
12
+ <testcase name="test_: unique index should raise a unique constraint failure on the same owner, and field name. " lineno="27" classname="LargeTextField::NamedTextValueTest" assertions="1" time="0.004582000081427395">
13
+ </testcase>
14
+ </testsuite>
15
+ </testsuites>
@@ -0,0 +1,53 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites>
3
+ <testsuite name="LargeTextField::OwnerTest" filepath="/Users/tstarck/invoca/large_text_field/test/unit/large_text_field/owner_test.rb" skipped="0" failures="0" errors="0" tests="24" assertions="99" time="0.18328300002031028">
4
+ <testcase name="test_: a large text field should allow a custom maximum length to be provided. " lineno="135" classname="LargeTextField::OwnerTest" assertions="3" time="0.013416999951004982">
5
+ </testcase>
6
+ <testcase name="test_: a large text field should allow a single argument to be passed into reload. " lineno="301" classname="LargeTextField::OwnerTest" assertions="1" time="0.004912999924272299">
7
+ </testcase>
8
+ <testcase name="test_: a large text field should allow for concurrent sets and deletes. " lineno="84" classname="LargeTextField::OwnerTest" assertions="9" time="0.007678000023588538">
9
+ </testcase>
10
+ <testcase name="test_: a large text field should allow get and set with saves and deletes. " lineno="61" classname="LargeTextField::OwnerTest" assertions="7" time="0.014948999974876642">
11
+ </testcase>
12
+ <testcase name="test_: a large text field should be able to be eager loaded. " lineno="244" classname="LargeTextField::OwnerTest" assertions="3" time="0.01591099996585399">
13
+ </testcase>
14
+ <testcase name="test_: a large text field should be able to update deleted fields. " lineno="194" classname="LargeTextField::OwnerTest" assertions="7" time="0.008474000031128526">
15
+ </testcase>
16
+ <testcase name="test_: a large text field should be cloned with the rest of the record. " lineno="218" classname="LargeTextField::OwnerTest" assertions="9" time="0.023695999989286065">
17
+ </testcase>
18
+ <testcase name="test_: a large text field should declare the association when it is first described and other meta data when it is first defined. " lineno="35" classname="LargeTextField::OwnerTest" assertions="3" time="0.0033099999418482184">
19
+ </testcase>
20
+ <testcase name="test_: a large text field should delete fields when they are set to blank. " lineno="173" classname="LargeTextField::OwnerTest" assertions="6" time="0.009033999987877905">
21
+ </testcase>
22
+ <testcase name="test_: a large text field should delete large text fields when the owner is destroyed. " lineno="305" classname="LargeTextField::OwnerTest" assertions="4" time="0.006717000040225685">
23
+ </testcase>
24
+ <testcase name="test_: a large text field should detect changes when @text_field_hash hash is/not empty. " lineno="268" classname="LargeTextField::OwnerTest" assertions="7" time="0.005818000063300133">
25
+ </testcase>
26
+ <testcase name="test_: a large text field should forget about changes if they are not saved. " lineno="109" classname="LargeTextField::OwnerTest" assertions="3" time="0.006125000072643161">
27
+ </testcase>
28
+ <testcase name="test_: a large text field should not save fields that are set to blank. " lineno="157" classname="LargeTextField::OwnerTest" assertions="5" time="0.007122000097297132">
29
+ </testcase>
30
+ <testcase name="test_: a large text field should only validate_large_text_fields if loaded. " lineno="285" classname="LargeTextField::OwnerTest" assertions="4" time="0.00335600005928427">
31
+ </testcase>
32
+ <testcase name="test_: a large text field should prevent a custom maximum length to be provided that is not in the allowable range. " lineno="147" classname="LargeTextField::OwnerTest" assertions="3" time="0.0030239999759942293">
33
+ </testcase>
34
+ <testcase name="test_: a large text field should prevent a non-Integer to be provided for a custom maximum. " lineno="141" classname="LargeTextField::OwnerTest" assertions="2" time="0.00317799998447299">
35
+ </testcase>
36
+ <testcase name="test_: a large text field should read from a file. " lineno="41" classname="LargeTextField::OwnerTest" assertions="3" time="0.01081999996677041">
37
+ </testcase>
38
+ <testcase name="test_: a large text field should reload changes when they come from a different model. " lineno="292" classname="LargeTextField::OwnerTest" assertions="2" time="0.007147000054828823">
39
+ </testcase>
40
+ <testcase name="test_: a large text field should singularize the errors if requested. " lineno="129" classname="LargeTextField::OwnerTest" assertions="3" time="0.00828499998897314">
41
+ </testcase>
42
+ <testcase name="test_: a large text field should support strings or symbols for get/set methods. " lineno="256" classname="LargeTextField::OwnerTest" assertions="7" time="0.002863000030629337">
43
+ </testcase>
44
+ <testcase name="test_: a large text field should validate the maximum length. " lineno="123" classname="LargeTextField::OwnerTest" assertions="3" time="0.007084999931976199">
45
+ </testcase>
46
+ <testcase name="test_: updating in large_text_field_save hook should be able to assign empty string. " lineno="9" classname="LargeTextField::OwnerTest" assertions="2" time="0.004567999974824488">
47
+ </testcase>
48
+ <testcase name="test_: updating in large_text_field_save hook should be able to assign non empty string. " lineno="9" classname="LargeTextField::OwnerTest" assertions="2" time="0.004910999909043312">
49
+ </testcase>
50
+ <testcase name="test_: updating in large_text_field_save hook should raise error on saving nil value. " lineno="19" classname="LargeTextField::OwnerTest" assertions="1" time="0.0008820000803098083">
51
+ </testcase>
52
+ </testsuite>
53
+ </testsuites>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites>
3
+ <testsuite name="LargeTextFieldTest" filepath="/Users/tstarck/invoca/large_text_field/test/large_text_field_test.rb" skipped="0" failures="0" errors="0" tests="1" assertions="1" time="0.00063699996098876">
4
+ <testcase name="test_truth" lineno="6" classname="LargeTextFieldTest" assertions="1" time="0.00063699996098876">
5
+ </testcase>
6
+ </testsuite>
7
+ </testsuites>
data/test/test_helper.rb CHANGED
@@ -1,11 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  ENV["RAILS_ENV"] = "test"
2
4
 
3
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require File.expand_path('dummy/config/environment.rb', __dir__)
4
6
  require "rails/test_help"
5
- require "invoca/utils"
6
7
  require "rr"
7
8
  require "shoulda"
8
9
  require "minitest/unit"
10
+ require 'minitest/reporters'
11
+
12
+ junit_output_dir = ENV['JUNIT_OUTPUT'].presence || "test/reports"
13
+ Minitest::Reporters.use! [
14
+ Minitest::Reporters::DefaultReporter.new,
15
+ Minitest::Reporters::JUnitReporter.new(junit_output_dir)
16
+ ]
17
+
9
18
  require "pry"
10
19
 
11
20
  def large_description
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  module LargeTextField
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module LargeTextField
2
4
  class NamedTextValueTest < ActiveSupport::TestCase
3
5
  should belong_to(:owner)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  module LargeTextField
@@ -5,26 +7,22 @@ module LargeTextField
5
7
  context "updating in large_text_field_save hook" do
6
8
  { 'empty string' => '', 'non empty string' => 'this is some text' }.each do |name, value|
7
9
  should "be able to assign #{name}" do
8
- begin
9
- Library.default_notes = value
10
- @library = Library.create!(name: "Smithsonian")
11
- assert_equal value, @library.notes
12
- assert_equal value, @library.reload.notes
13
- ensure
14
- Library.default_notes = "none_set"
15
- end
10
+ Library.default_notes = value
11
+ @library = Library.create!(name: "Smithsonian")
12
+ assert_equal value, @library.notes
13
+ assert_equal value, @library.reload.notes
14
+ ensure
15
+ Library.default_notes = "none_set"
16
16
  end
17
17
  end
18
18
 
19
19
  should "raise error on saving nil value" do
20
- begin
21
- Library.default_notes = :nil
22
- assert_raises RuntimeError do
23
- @library = Library.create!(name: "Smithsonian")
24
- end
25
- ensure
26
- Library.default_notes = "none_set"
20
+ Library.default_notes = :nil
21
+ assert_raises RuntimeError do
22
+ @library = Library.create!(name: "Smithsonian")
27
23
  end
24
+ ensure
25
+ Library.default_notes = "none_set"
28
26
  end
29
27
  end
30
28
 
@@ -300,7 +298,11 @@ module LargeTextField
300
298
  assert_equal "The main research library of the University of Cambridge in England", @library.reload.description
301
299
  end
302
300
 
303
- should "delete large text fields when the owner is destroyed"do
301
+ should "allow a single argument to be passed into reload" do
302
+ Library.create!(name: "Cambridge University Library", description: "in england").reload(lock: true)
303
+ end
304
+
305
+ should "delete large text fields when the owner is destroyed" do
304
306
  assert_equal 0, LargeTextField::NamedTextValue.count
305
307
 
306
308
  @library = Library.create!(name: "Cambridge University Library", description: "in england")
metadata CHANGED
@@ -1,62 +1,54 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: large_text_field
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 1.0.2.pre.1
5
5
  platform: ruby
6
6
  authors:
7
- - Bob Smith
8
- autorequire:
7
+ - Invoca
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-12 00:00:00.000000000 Z
11
+ date: 2021-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: protected_attributes
14
+ name: invoca-utils
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.1'
19
+ version: '0.3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.1'
26
+ version: '0.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '4.2'
34
+ - - "<"
35
+ - !ruby/object:Gem::Version
36
+ version: '7'
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
- - - "~>"
41
+ - - ">="
39
42
  - !ruby/object:Gem::Version
40
43
  version: '4.2'
41
- - !ruby/object:Gem::Dependency
42
- name: hobo_support
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
44
+ - - "<"
46
45
  - !ruby/object:Gem::Version
47
- version: '2.0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '2.0'
46
+ version: '7'
55
47
  description: Large text fields are kept in a central table, and polymorphically associated
56
- with your models. Access and assignemnt should behave as if it was a column on
48
+ with your models. Access and assignment should behave as if it was a column on
57
49
  the same table.
58
50
  email:
59
- - bob@invoca.com
51
+ - development@invoca.com
60
52
  executables: []
61
53
  extensions: []
62
54
  extra_rdoc_files: []
@@ -72,6 +64,7 @@ files:
72
64
  - lib/large_text_field/version.rb
73
65
  - test/dummy/README.rdoc
74
66
  - test/dummy/Rakefile
67
+ - test/dummy/app/assets/config/manifest.js
75
68
  - test/dummy/app/models/library.rb
76
69
  - test/dummy/config.ru
77
70
  - test/dummy/config/application.rb
@@ -81,14 +74,20 @@ files:
81
74
  - test/dummy/config/environments/development.rb
82
75
  - test/dummy/config/environments/production.rb
83
76
  - test/dummy/config/environments/test.rb
77
+ - test/dummy/db/development.sqlite3
84
78
  - test/dummy/db/migrate/20160217033529_create_libraries.rb
85
79
  - test/dummy/db/schema.rb
86
80
  - test/dummy/db/test.sqlite3
81
+ - test/dummy/log/development.log
87
82
  - test/dummy/log/test.log
88
83
  - test/dummy/script/rails
89
84
  - test/dummy/test/fixtures/text_field_owners.yml
90
85
  - test/fixtures/large_text_field/named_text_values.yml
91
86
  - test/large_text_field_test.rb
87
+ - test/reports/TEST-LargeTextField-LibraryTest.xml
88
+ - test/reports/TEST-LargeTextField-NamedTextValueTest.xml
89
+ - test/reports/TEST-LargeTextField-OwnerTest.xml
90
+ - test/reports/TEST-LargeTextFieldTest.xml
92
91
  - test/test_helper.rb
93
92
  - test/unit/dummy/library_test.rb
94
93
  - test/unit/large_text_field/name_text_value_test.rb
@@ -97,7 +96,7 @@ homepage: http://github.com/invoca
97
96
  licenses: []
98
97
  metadata:
99
98
  allowed_push_host: https://rubygems.org
100
- post_install_message:
99
+ post_install_message:
101
100
  rdoc_options: []
102
101
  require_paths:
103
102
  - lib
@@ -108,13 +107,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
107
  version: '0'
109
108
  required_rubygems_version: !ruby/object:Gem::Requirement
110
109
  requirements:
111
- - - ">="
110
+ - - ">"
112
111
  - !ruby/object:Gem::Version
113
- version: '0'
112
+ version: 1.3.1
114
113
  requirements: []
115
- rubyforge_project:
116
- rubygems_version: 2.6.13
117
- signing_key:
114
+ rubygems_version: 3.0.1
115
+ signing_key:
118
116
  specification_version: 4
119
117
  summary: Add large text fields to models without database migrations
120
118
  test_files:
@@ -122,6 +120,7 @@ test_files:
122
120
  - test/unit/large_text_field/name_text_value_test.rb
123
121
  - test/unit/large_text_field/owner_test.rb
124
122
  - test/dummy/app/models/library.rb
123
+ - test/dummy/app/assets/config/manifest.js
125
124
  - test/dummy/test/fixtures/text_field_owners.yml
126
125
  - test/dummy/config/environments/production.rb
127
126
  - test/dummy/config/environments/development.rb
@@ -136,8 +135,14 @@ test_files:
136
135
  - test/dummy/db/schema.rb
137
136
  - test/dummy/db/test.sqlite3
138
137
  - test/dummy/db/migrate/20160217033529_create_libraries.rb
138
+ - test/dummy/db/development.sqlite3
139
139
  - test/dummy/log/test.log
140
+ - test/dummy/log/development.log
140
141
  - test/dummy/README.rdoc
141
142
  - test/large_text_field_test.rb
142
143
  - test/fixtures/large_text_field/named_text_values.yml
143
144
  - test/test_helper.rb
145
+ - test/reports/TEST-LargeTextField-OwnerTest.xml
146
+ - test/reports/TEST-LargeTextField-NamedTextValueTest.xml
147
+ - test/reports/TEST-LargeTextField-LibraryTest.xml
148
+ - test/reports/TEST-LargeTextFieldTest.xml