web47core 0.0.2 → 0.0.7

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,70 @@
1
+ module ActiveSupport
2
+ class TestCase
3
+ class << self
4
+ def should_have_field(name, options = {})
5
+ should "have field named #{name}" do
6
+ assert subject.class.fields[name.to_s], "#{name} field not present"
7
+ assert_equal options, subject.class.fields[name.to_s].options
8
+ end
9
+ end
10
+
11
+ #
12
+ # NOTE: Temporarily commented out methods until we need them to avoid Codacy issues
13
+ #
14
+ # def should_have_index(name, options = { unique: false })
15
+ # should "have index on #{name.inspect}" do
16
+ # assert_equal options, subject.class.index_options[name]
17
+ # end
18
+ # end
19
+ #
20
+ def should_be_embedded_in(name, options = {})
21
+ should_have_relation name, Mongoid::Relations::Embedded::In, 'be embedded in'
22
+ end
23
+ #
24
+ # def should_embed_many(name)
25
+ # should_have_relation name, Mongoid::Relations::Embedded::Many, 'embed many'
26
+ # end
27
+ #
28
+ # def should_embed_one(name)
29
+ # should_have_relation name, Mongoid::Relations::Embedded::One, 'embed one'
30
+ # end
31
+
32
+ def should_reference_many(name, _options = {})
33
+ should_have_relation name, Mongoid::Relations::Referenced::Many, 'reference many'
34
+ end
35
+ alias should_have_many should_reference_many
36
+ #
37
+ # def should_reference_and_be_referenced_in_many(name, options = {})
38
+ # should_have_relation name, Mongoid::Relations::Referenced::ManyToMany, 'reference and be referenced in many'
39
+ # end
40
+ # alias should_have_and_belong_to_many should_reference_and_be_referenced_in_many
41
+
42
+ def should_reference_one(name)
43
+ should_have_relation name, Mongoid::Relations::Referenced::One, 'reference one'
44
+ end
45
+ alias should_have_one should_reference_one
46
+
47
+ def should_be_referenced_in(name)
48
+ should_have_relation name, Mongoid::Relations::Referenced::In, 'be referenced in'
49
+ end
50
+ alias should_belong_to should_be_referenced_in
51
+
52
+ def should_have_relation(name, relation_class, relationship)
53
+ should "#{relationship} #{name}" do
54
+ reflection = subject.class.reflect_on_association(name)
55
+ assert reflection.present?, "#{name} association not present"
56
+ assert_equal relation_class, reflection.relation
57
+ end
58
+ end
59
+ #
60
+ # def should_have_scope(name, conditions = {})
61
+ # should "have scope #{name}" do
62
+ # scope = subject.class.scopes[name.to_sym]
63
+ # assert scope.present?, "#{name} scope not present"
64
+ # assert_equal conditions, scope.conditions
65
+ # end
66
+ # end
67
+ # alias should_have_named_scope should_have_scope
68
+ end
69
+ end
70
+ end
data/test/test_helper.rb CHANGED
@@ -1,23 +1,21 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+
1
3
  if ENV['CODACY_PROJECT_TOKEN']
2
4
  require 'simplecov'
3
5
  require 'codacy-coverage'
4
6
 
5
7
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([SimpleCov::Formatter::HTMLFormatter,
6
8
  Codacy::Formatter])
7
-
8
9
  Codacy::Reporter.start do
9
- add_filter 'vendor'
10
10
  add_filter '/spec/'
11
+ add_filter '/test/'
11
12
  add_filter '/config/'
12
- add_filter '/lib/'
13
- add_filter '/vendor/'
13
+ add_filter 'vendor/**/*'
14
14
  end
15
- SimpleCov.start 'rails'
16
15
  end
17
16
 
18
17
  require 'rubygems'
19
18
  require 'mongoid'
20
- require 'database_cleaner'
21
19
  require_relative 'rails_setup'
22
20
  require 'rails/test_help'
23
21
  require 'test/unit'
@@ -27,15 +25,21 @@ require 'minitest/rails/capybara'
27
25
  require 'minitest/reporters'
28
26
  require 'factory_bot'
29
27
  require 'webmock/minitest'
28
+ require 'database_cleaner'
30
29
  Mongoid.logger.level = Logger::ERROR
31
30
  Mongo::Logger.logger.level = Logger::ERROR
32
31
  DatabaseCleaner.strategy = :truncation
33
- if ['CODACY_PROJECT_TOKEN']
32
+ if ENV['CODACY_PROJECT_TOKEN']
34
33
  Minitest::Reporters.use!(Minitest::Reporters::DefaultReporter.new)
35
34
  else
36
35
  Minitest::Reporters.use!(Minitest::Reporters::RubyMineReporter.new)
37
36
  end
38
37
 
38
+ class SystemConfiguration
39
+ include StandardModel
40
+ include CoreSystemConfiguration
41
+ end
42
+
39
43
  module ActiveSupport
40
44
  class TestCase
41
45
  FactoryBot.find_definitions
@@ -46,19 +50,7 @@ module ActiveSupport
46
50
  DatabaseCleaner.clean
47
51
  DatabaseCleaner.start
48
52
  Rails.cache.clear
49
- # SystemConfiguration.configuration.update!(
50
- # base_url: 'http://localhost:3000',
51
- # mailgun_api_key: 'key-4b2ee697fc07bea89d51666123503e6d',
52
- # smtp_name: 'email',
53
- # smtp_address: 'email@app47.com',
54
- # smtp_port: 587,
55
- # smtp_domain: 'app47.net',
56
- # smtp_user_name: 'email@app47.com',
57
- # smtp_password: 'abc123',
58
- # smtp_enable_starttls_auto: false,
59
- # support_email: 'support@app47.com',
60
- # default_email: 'mailer@app47.com'
61
- # )
53
+ SystemConfiguration.configuration.update!(base_url: 'http://localhost:3000')
62
54
  WebMock.enable!
63
55
  end
64
56
  teardown do
@@ -79,19 +71,7 @@ module ActionDispatch
79
71
  DatabaseCleaner.clean
80
72
  DatabaseCleaner.start
81
73
  Rails.cache.clear
82
- # SystemConfiguration.configuration.update!(
83
- # base_url: 'http://localhost:3000',
84
- # mailgun_api_key: 'key-4b2ee697fc07bea89d51666123503e6d',
85
- # smtp_name: 'email',
86
- # smtp_address: 'email@app47.com',
87
- # smtp_port: 587,
88
- # smtp_domain: 'app47.net',
89
- # smtp_user_name: 'email@app47.com',
90
- # smtp_password: 'abc123',
91
- # smtp_enable_starttls_auto: false,
92
- # support_email: 'support@app47.com',
93
- # default_email: 'mailer@app47.com'
94
- # )
74
+ SystemConfiguration.configuration.update!(base_url: 'http://localhost:3000')
95
75
  WebMock.enable!
96
76
  end
97
77
  teardown do
data/web47core.gemspec ADDED
@@ -0,0 +1,50 @@
1
+ #
2
+ # Spec of App47 Web Core GEM
3
+ #
4
+ lib = File.expand_path('../lib', __FILE__)
5
+
6
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.required_ruby_version = '~> 2.4.1'
10
+ spec.name = 'web47core'
11
+ spec.version = '0.0.7'
12
+ spec.authors = ['Chris Schroeder']
13
+ spec.email = ['chris@app47.com']
14
+ spec.summary = 'App47 Web Core Library.'
15
+ spec.description = 'Common core components used in all our web products.'
16
+ spec.homepage = 'https://app47.com'
17
+ spec.license = 'MIT'
18
+
19
+ spec.files = `git ls-files -z`.split("\x0")
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
+ spec.test_files = spec.files.grep(%r{^(test)/})
22
+ spec.require_paths = ['lib']
23
+
24
+ # spec.add_dependency 'json'
25
+ spec.add_runtime_dependency 'aws-sdk-ec2', '>= 1.60', '<= 1.151'
26
+ spec.add_runtime_dependency 'activesupport', '~> 5.0'
27
+ spec.add_runtime_dependency 'delayed_job_mongoid', '~> 2.3'
28
+ spec.add_runtime_dependency 'jwt'
29
+ spec.add_runtime_dependency 'mongoid', '> 6', '< 7'
30
+ spec.add_runtime_dependency 'rails', '< 5.3', '>= 4.2'
31
+ spec.add_runtime_dependency 'redis', '~> 4.1'
32
+ spec.add_runtime_dependency 'redis-rails', '> 5', '< 6'
33
+ spec.add_development_dependency 'bundler'
34
+ spec.add_development_dependency 'codacy-coverage', '~> 2.1.0'
35
+ spec.add_development_dependency 'database_cleaner'
36
+ spec.add_development_dependency 'factory_bot'
37
+ spec.add_development_dependency 'factory_bot_rails'
38
+ spec.add_development_dependency 'listen'
39
+ spec.add_development_dependency 'minitest', '= 5.10.3'
40
+ spec.add_development_dependency 'minitest-rails', '= 3.0.0'
41
+ spec.add_development_dependency 'minitest-rails-capybara', '= 3.0.1'
42
+ spec.add_development_dependency 'minitest-reporters'
43
+ spec.add_development_dependency 'mocha'
44
+ spec.add_development_dependency 'shoulda', '= 3.6.0'
45
+ spec.add_development_dependency 'shoulda-matchers', '= 3.1.2'
46
+ spec.add_development_dependency 'simplecov', '= 0.16.1'
47
+ spec.add_development_dependency 'test-unit'
48
+ spec.add_development_dependency 'vcr'
49
+ spec.add_development_dependency 'webmock'
50
+ end
metadata CHANGED
@@ -1,111 +1,151 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web47core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Schroeder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-23 00:00:00.000000000 Z
11
+ date: 2020-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
14
+ name: aws-sdk-ec2
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '1.60'
20
+ - - "<="
21
+ - !ruby/object:Gem::Version
22
+ version: '1.151'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '5.0'
29
+ version: '1.60'
30
+ - - "<="
31
+ - !ruby/object:Gem::Version
32
+ version: '1.151'
27
33
  - !ruby/object:Gem::Dependency
28
- name: delayed_job_mongoid
34
+ name: activesupport
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: 2.3.1
39
+ version: '5.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: 2.3.1
46
+ version: '5.0'
41
47
  - !ruby/object:Gem::Dependency
42
- name: mongoid
48
+ name: delayed_job_mongoid
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '6.1'
53
+ version: '2.3'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '6.1'
60
+ version: '2.3'
55
61
  - !ruby/object:Gem::Dependency
56
- name: redis
62
+ name: jwt
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">="
60
66
  - !ruby/object:Gem::Version
61
- version: '4.1'
67
+ version: '0'
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - "~>"
72
+ - - ">="
67
73
  - !ruby/object:Gem::Version
68
- version: '4.1'
74
+ version: '0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: redis-rails
76
+ name: mongoid
71
77
  requirement: !ruby/object:Gem::Requirement
72
78
  requirements:
73
79
  - - ">"
74
80
  - !ruby/object:Gem::Version
75
- version: '5'
81
+ version: '6'
76
82
  - - "<"
77
83
  - !ruby/object:Gem::Version
78
- version: '6'
84
+ version: '7'
79
85
  type: :runtime
80
86
  prerelease: false
81
87
  version_requirements: !ruby/object:Gem::Requirement
82
88
  requirements:
83
89
  - - ">"
84
90
  - !ruby/object:Gem::Version
85
- version: '5'
91
+ version: '6'
86
92
  - - "<"
87
93
  - !ruby/object:Gem::Version
88
- version: '6'
94
+ version: '7'
89
95
  - !ruby/object:Gem::Dependency
90
96
  name: rails
91
97
  requirement: !ruby/object:Gem::Requirement
92
98
  requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '4.2'
93
102
  - - "<"
94
103
  - !ruby/object:Gem::Version
95
104
  version: '5.3'
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
96
109
  - - ">="
97
110
  - !ruby/object:Gem::Version
98
111
  version: '4.2'
112
+ - - "<"
113
+ - !ruby/object:Gem::Version
114
+ version: '5.3'
115
+ - !ruby/object:Gem::Dependency
116
+ name: redis
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '4.1'
99
122
  type: :runtime
100
123
  prerelease: false
101
124
  version_requirements: !ruby/object:Gem::Requirement
102
125
  requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '4.1'
129
+ - !ruby/object:Gem::Dependency
130
+ name: redis-rails
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">"
134
+ - !ruby/object:Gem::Version
135
+ version: '5'
103
136
  - - "<"
104
137
  - !ruby/object:Gem::Version
105
- version: '5.3'
106
- - - ">="
138
+ version: '6'
139
+ type: :runtime
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">"
107
144
  - !ruby/object:Gem::Version
108
- version: '4.2'
145
+ version: '5'
146
+ - - "<"
147
+ - !ruby/object:Gem::Version
148
+ version: '6'
109
149
  - !ruby/object:Gem::Dependency
110
150
  name: bundler
111
151
  requirement: !ruby/object:Gem::Requirement
@@ -292,16 +332,16 @@ dependencies:
292
332
  name: simplecov
293
333
  requirement: !ruby/object:Gem::Requirement
294
334
  requirements:
295
- - - ">="
335
+ - - '='
296
336
  - !ruby/object:Gem::Version
297
- version: '0'
337
+ version: 0.16.1
298
338
  type: :development
299
339
  prerelease: false
300
340
  version_requirements: !ruby/object:Gem::Requirement
301
341
  requirements:
302
- - - ">="
342
+ - - '='
303
343
  - !ruby/object:Gem::Version
304
- version: '0'
344
+ version: 0.16.1
305
345
  - !ruby/object:Gem::Dependency
306
346
  name: test-unit
307
347
  requirement: !ruby/object:Gem::Requirement
@@ -351,14 +391,28 @@ executables: []
351
391
  extensions: []
352
392
  extra_rdoc_files: []
353
393
  files:
394
+ - ".circleci/config.yml"
354
395
  - ".gitignore"
396
+ - ".rubocop.yml"
397
+ - Gemfile
398
+ - Gemfile.lock
355
399
  - LICENSE
356
400
  - README.md
401
+ - Rakefile
402
+ - lib/app/models/concerns/auto_clear_cache.rb
403
+ - lib/app/models/concerns/cdn_url.rb
404
+ - lib/app/models/concerns/core_system_configuration.rb
405
+ - lib/app/models/concerns/standard_model.rb
357
406
  - lib/web47core.rb
358
407
  - test/fixtures/mongoid.yml
408
+ - test/models/concerns/auto_clear_cache_test.rb
409
+ - test/models/concerns/cdn_url_test.rb
410
+ - test/models/concerns/system_configuration_test.rb
359
411
  - test/rails_setup.rb
412
+ - test/shoulda_macros/mongoid.rb
360
413
  - test/test_helper.rb
361
- homepage: ''
414
+ - web47core.gemspec
415
+ homepage: https://app47.com
362
416
  licenses:
363
417
  - MIT
364
418
  metadata: {}
@@ -377,11 +431,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
377
431
  - !ruby/object:Gem::Version
378
432
  version: '0'
379
433
  requirements: []
380
- rubygems_version: 3.1.2
434
+ rubygems_version: 3.0.8
381
435
  signing_key:
382
436
  specification_version: 4
383
437
  summary: App47 Web Core Library.
384
438
  test_files:
385
439
  - test/fixtures/mongoid.yml
440
+ - test/models/concerns/auto_clear_cache_test.rb
441
+ - test/models/concerns/cdn_url_test.rb
442
+ - test/models/concerns/system_configuration_test.rb
386
443
  - test/rails_setup.rb
444
+ - test/shoulda_macros/mongoid.rb
387
445
  - test/test_helper.rb