has_calculated_fields 1.0.0
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 +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +49 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +99 -0
- data/Rakefile +12 -0
- data/has_calculated_fields.gemspec +33 -0
- data/lib/.DS_Store +0 -0
- data/lib/has_calculated_fields.rb +15 -0
- data/lib/has_calculated_fields/.DS_Store +0 -0
- data/lib/has_calculated_fields/has_calculated_fields.rb +73 -0
- data/spec/.DS_Store +0 -0
- data/spec/factories/other_event.rb +6 -0
- data/spec/has_calculated_fields_spec.rb +42 -0
- data/spec/spec_helper.rb +53 -0
- data/spec/support/factory_bot.rb +9 -0
- metadata +203 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: a813ff50e480a6825a04c5c2716584344a19f55f1fae56e44331095bb4c052ae
|
|
4
|
+
data.tar.gz: c79bab42c03712ffdda782bce4e7bcc4df0692102f7d53d1bf2a335197749bc5
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c1a8034c1ceee80ba59a7878a6c5a764bf224024a63559250e2e6d2b694f1e64e59a57e86622067f954d23502bf7172d607968856f0e4f52375ec872eddc3bb4
|
|
7
|
+
data.tar.gz: 8209ea84a770f0720415f6bbbfb25e19f0e6623a6b7f9a83ccd24f84f94e572e9e9c99e1dca13b0a55d3f6dae62464d76afa94bb78625c4891e06705208280dd
|
data/.DS_Store
ADDED
|
Binary file
|
data/.gitignore
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
*.rbc
|
|
2
|
+
capybara-*.html
|
|
3
|
+
.rspec
|
|
4
|
+
/log
|
|
5
|
+
/tmp
|
|
6
|
+
/db/*.sqlite3
|
|
7
|
+
/db/*.sqlite3-journal
|
|
8
|
+
/public/system
|
|
9
|
+
/coverage/
|
|
10
|
+
/spec/tmp
|
|
11
|
+
*.orig
|
|
12
|
+
rerun.txt
|
|
13
|
+
pickle-email-*.html
|
|
14
|
+
|
|
15
|
+
# TODO Comment out this rule if you are OK with secrets being uploaded to the repo
|
|
16
|
+
config/initializers/secret_token.rb
|
|
17
|
+
config/master.key
|
|
18
|
+
|
|
19
|
+
# Only include if you have production secrets in this file, which is no longer a Rails default
|
|
20
|
+
# config/secrets.yml
|
|
21
|
+
|
|
22
|
+
# dotenv
|
|
23
|
+
# TODO Comment out this rule if environment variables can be committed
|
|
24
|
+
.env
|
|
25
|
+
|
|
26
|
+
## Environment normalization:
|
|
27
|
+
/.bundle
|
|
28
|
+
/vendor/bundle
|
|
29
|
+
|
|
30
|
+
# these should all be checked in to normalize the environment:
|
|
31
|
+
# Gemfile.lock, .ruby-version, .ruby-gemset
|
|
32
|
+
|
|
33
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
34
|
+
.rvmrc
|
|
35
|
+
|
|
36
|
+
# if using bower-rails ignore default bower_components path bower.json files
|
|
37
|
+
/vendor/assets/bower_components
|
|
38
|
+
*.bowerrc
|
|
39
|
+
bower.json
|
|
40
|
+
|
|
41
|
+
# Ignore pow environment settings
|
|
42
|
+
.powenv
|
|
43
|
+
|
|
44
|
+
# Ignore Byebug command history file.
|
|
45
|
+
.byebug_history
|
|
46
|
+
|
|
47
|
+
# Ignore node_modules
|
|
48
|
+
node_modules/
|
|
49
|
+
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
has_calculated_fields (1.0.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
active_model_serializers (0.9.7)
|
|
10
|
+
activemodel (>= 3.2)
|
|
11
|
+
concurrent-ruby (~> 1.0)
|
|
12
|
+
activemodel (4.2.11.1)
|
|
13
|
+
activesupport (= 4.2.11.1)
|
|
14
|
+
builder (~> 3.1)
|
|
15
|
+
activerecord (4.2.11.1)
|
|
16
|
+
activemodel (= 4.2.11.1)
|
|
17
|
+
activesupport (= 4.2.11.1)
|
|
18
|
+
arel (~> 6.0)
|
|
19
|
+
activesupport (4.2.11.1)
|
|
20
|
+
i18n (~> 0.7)
|
|
21
|
+
minitest (~> 5.1)
|
|
22
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
23
|
+
tzinfo (~> 1.1)
|
|
24
|
+
appraisal (2.2.0)
|
|
25
|
+
bundler
|
|
26
|
+
rake
|
|
27
|
+
thor (>= 0.14.0)
|
|
28
|
+
arel (6.0.4)
|
|
29
|
+
ast (2.4.0)
|
|
30
|
+
builder (3.2.3)
|
|
31
|
+
byebug (11.0.1)
|
|
32
|
+
concurrent-ruby (1.1.5)
|
|
33
|
+
database_cleaner (1.7.0)
|
|
34
|
+
diff-lcs (1.3)
|
|
35
|
+
docile (1.1.5)
|
|
36
|
+
factory_bot (4.11.1)
|
|
37
|
+
activesupport (>= 3.0.0)
|
|
38
|
+
i18n (0.9.5)
|
|
39
|
+
concurrent-ruby (~> 1.0)
|
|
40
|
+
json (2.2.0)
|
|
41
|
+
minitest (5.11.3)
|
|
42
|
+
parallel (1.17.0)
|
|
43
|
+
parser (2.6.3.0)
|
|
44
|
+
ast (~> 2.4.0)
|
|
45
|
+
powerpack (0.1.2)
|
|
46
|
+
rainbow (2.2.2)
|
|
47
|
+
rake
|
|
48
|
+
rake (12.3.3)
|
|
49
|
+
rspec (3.8.0)
|
|
50
|
+
rspec-core (~> 3.8.0)
|
|
51
|
+
rspec-expectations (~> 3.8.0)
|
|
52
|
+
rspec-mocks (~> 3.8.0)
|
|
53
|
+
rspec-core (3.8.2)
|
|
54
|
+
rspec-support (~> 3.8.0)
|
|
55
|
+
rspec-expectations (3.8.4)
|
|
56
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
57
|
+
rspec-support (~> 3.8.0)
|
|
58
|
+
rspec-mocks (3.8.1)
|
|
59
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
60
|
+
rspec-support (~> 3.8.0)
|
|
61
|
+
rspec-support (3.8.2)
|
|
62
|
+
rubocop (0.49.1)
|
|
63
|
+
parallel (~> 1.10)
|
|
64
|
+
parser (>= 2.3.3.1, < 3.0)
|
|
65
|
+
powerpack (~> 0.1)
|
|
66
|
+
rainbow (>= 1.99.1, < 3.0)
|
|
67
|
+
ruby-progressbar (~> 1.7)
|
|
68
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
69
|
+
ruby-progressbar (1.10.1)
|
|
70
|
+
simplecov (0.15.1)
|
|
71
|
+
docile (~> 1.1.0)
|
|
72
|
+
json (>= 1.8, < 3)
|
|
73
|
+
simplecov-html (~> 0.10.0)
|
|
74
|
+
simplecov-html (0.10.2)
|
|
75
|
+
sqlite3 (1.3.13)
|
|
76
|
+
thor (0.20.3)
|
|
77
|
+
thread_safe (0.3.6)
|
|
78
|
+
tzinfo (1.2.5)
|
|
79
|
+
thread_safe (~> 0.1)
|
|
80
|
+
unicode-display_width (1.6.0)
|
|
81
|
+
|
|
82
|
+
PLATFORMS
|
|
83
|
+
ruby
|
|
84
|
+
|
|
85
|
+
DEPENDENCIES
|
|
86
|
+
active_model_serializers (~> 0.9.3)
|
|
87
|
+
activerecord (= 4.2.11.1)
|
|
88
|
+
appraisal (~> 2.2)
|
|
89
|
+
byebug
|
|
90
|
+
database_cleaner
|
|
91
|
+
factory_bot (~> 4.8)
|
|
92
|
+
has_calculated_fields!
|
|
93
|
+
rspec (~> 3.6)
|
|
94
|
+
rubocop (~> 0.49.1)
|
|
95
|
+
simplecov (~> 0.15.0)
|
|
96
|
+
sqlite3 (~> 1.3.6)
|
|
97
|
+
|
|
98
|
+
BUNDLED WITH
|
|
99
|
+
1.16.6
|
data/Rakefile
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = "has_calculated_fields"
|
|
8
|
+
s.version = "1.0.0"
|
|
9
|
+
s.platform = Gem::Platform::RUBY
|
|
10
|
+
s.author = ["Adrian Fernandez"]
|
|
11
|
+
s.email = ["adrianfernandez85@gmail.com"]
|
|
12
|
+
s.homepage = "http://github.com/adrian-fernandez/has_calculated_fields"
|
|
13
|
+
s.summary = "Rails gem to allow models to save auto calculated fields"
|
|
14
|
+
s.description = "Rails gem to allow models to save auto calculated fields"
|
|
15
|
+
s.license = "MIT"
|
|
16
|
+
|
|
17
|
+
s.files = `git ls-files`.split("\n")
|
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
|
20
|
+
s.require_paths = ["lib"]
|
|
21
|
+
|
|
22
|
+
s.add_development_dependency "rspec", "~> 3.6"
|
|
23
|
+
s.add_development_dependency "activerecord", "4.2.11.1"
|
|
24
|
+
s.add_development_dependency "sqlite3", "~> 1.3.6"
|
|
25
|
+
s.add_development_dependency "rubocop", "~> 0.49.1"
|
|
26
|
+
s.add_development_dependency "simplecov", "~> 0.15.0"
|
|
27
|
+
s.add_development_dependency "appraisal", "~> 2.2"
|
|
28
|
+
s.add_development_dependency "byebug"
|
|
29
|
+
s.add_development_dependency "factory_bot", "~> 4.8"
|
|
30
|
+
s.add_development_dependency "database_cleaner"
|
|
31
|
+
s.add_development_dependency "active_model_serializers", "~> 0.9.3"
|
|
32
|
+
|
|
33
|
+
end
|
data/lib/.DS_Store
ADDED
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_record"
|
|
4
|
+
require "active_support/inflector"
|
|
5
|
+
require "active_model_serializers"
|
|
6
|
+
|
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
8
|
+
|
|
9
|
+
module HasCalculatedFields
|
|
10
|
+
if defined?(ActiveRecord::Base)
|
|
11
|
+
require "has_calculated_fields/has_calculated_fields"
|
|
12
|
+
|
|
13
|
+
ActiveRecord::Base.extend HasCalculatedFields
|
|
14
|
+
end
|
|
15
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'active_support/concern'
|
|
4
|
+
|
|
5
|
+
module HasCalculatedFields
|
|
6
|
+
module HasCalculatedFields
|
|
7
|
+
extend ActiveSupport::Concern
|
|
8
|
+
|
|
9
|
+
module ClassMethods
|
|
10
|
+
def has_calculated_fields(args = {})
|
|
11
|
+
define_method :has_calculated_fields_options do
|
|
12
|
+
self.class.instance_variable_get("@has_calculated_fields_options")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class_eval do
|
|
16
|
+
@has_calculated_fields_options = { }.merge(args)
|
|
17
|
+
|
|
18
|
+
def self.has_calculated_fields?
|
|
19
|
+
true
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
included do
|
|
26
|
+
before_save :_has_calculated_fields__on_before_save
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def _has_calculated_fields__on_before_save
|
|
30
|
+
return unless has_calculated_fields_options.has_key?(:on_before_save)
|
|
31
|
+
|
|
32
|
+
has_calculated_fields_options[:on_before_save].each do |data|
|
|
33
|
+
attr_equal = "#{data[:calculated_field]}="
|
|
34
|
+
|
|
35
|
+
value = case data[:type]
|
|
36
|
+
when :date
|
|
37
|
+
if data[:format]
|
|
38
|
+
I18n.l(_has_calculated_fields__field_value(data), format: data[:format])
|
|
39
|
+
else
|
|
40
|
+
I18n.l(_has_calculated_fields__field_value(data))
|
|
41
|
+
end
|
|
42
|
+
when :method
|
|
43
|
+
data[:method].call(self)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
send(attr_equal, value)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def _has_calculated_fields__field_value(data)
|
|
51
|
+
field = data.fetch(:field, nil)
|
|
52
|
+
if field.present?
|
|
53
|
+
send(field) || _has_calculated_fields__default_field_value(data)
|
|
54
|
+
else
|
|
55
|
+
_has_calculated_fields__default_field_value(data)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def _has_calculated_fields__default_field_value(data)
|
|
60
|
+
value = data.fetch(:default, nil)
|
|
61
|
+
case value
|
|
62
|
+
when :now
|
|
63
|
+
Time.current
|
|
64
|
+
when :nil
|
|
65
|
+
nil
|
|
66
|
+
else
|
|
67
|
+
value
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
ActiveRecord::Base.send(:include, HasCalculatedFields::HasCalculatedFields)
|
data/spec/.DS_Store
ADDED
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
require "byebug"
|
|
3
|
+
|
|
4
|
+
describe HasCalculatedFields do
|
|
5
|
+
describe "runs before_save callbacks" do
|
|
6
|
+
let(:name) { "name" }
|
|
7
|
+
let(:created_at) { Time.find_zone("Madrid").parse("2019-05-03 2pm") }
|
|
8
|
+
let(:obj) { create(:sample_model, created_at: created_at, name: name) }
|
|
9
|
+
|
|
10
|
+
context "using time" do
|
|
11
|
+
context "when attribute has value" do
|
|
12
|
+
it "assigns formatted time attribute" do
|
|
13
|
+
new_date = Time.find_zone("Madrid").parse("2019-05-04 4pm")
|
|
14
|
+
|
|
15
|
+
obj.created_at = new_date
|
|
16
|
+
expect { obj.save }.to change { obj.calculated_created_at }
|
|
17
|
+
.from("Fri, 03 May 2019 14:00:00 +0200")
|
|
18
|
+
.to("Sat, 04 May 2019 16:00:00 +0200")
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context "when attribute hasn't value" do
|
|
23
|
+
let(:created_at) { nil }
|
|
24
|
+
it "assigns formatted time attribute" do
|
|
25
|
+
expect { obj.save }.to change { obj.calculated_created_at }
|
|
26
|
+
.from(I18n.l(Time.current))
|
|
27
|
+
.to(I18n.l(Time.current.in_time_zone("UTC")))
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
context "using method" do
|
|
33
|
+
it "assigns new value to the calculated attribute" do
|
|
34
|
+
obj.name = "new name"
|
|
35
|
+
|
|
36
|
+
expect { obj.save }.to change { obj.calculated_name }
|
|
37
|
+
.from("name calculated!")
|
|
38
|
+
.to("new name calculated!")
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/spec/spec_helper.rb
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
$LOAD_PATH << File.join(File.dirname(__FILE__), "..", "lib")
|
|
4
|
+
require "sqlite3"
|
|
5
|
+
require "has_calculated_fields"
|
|
6
|
+
require "factory_bot"
|
|
7
|
+
require 'database_cleaner'
|
|
8
|
+
require "active_model_serializers"
|
|
9
|
+
|
|
10
|
+
Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
|
|
11
|
+
|
|
12
|
+
RSpec.configure do |config|
|
|
13
|
+
config.before(:suite) do
|
|
14
|
+
DatabaseCleaner.strategy = :transaction
|
|
15
|
+
DatabaseCleaner.clean_with(:truncation)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
config.around(:each) do |example|
|
|
19
|
+
DatabaseCleaner.cleaning do
|
|
20
|
+
example.run
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
|
|
26
|
+
|
|
27
|
+
ActiveRecord::Schema.define(version: 1) do
|
|
28
|
+
create_table :sample_models do |t|
|
|
29
|
+
t.string :name
|
|
30
|
+
t.datetime :created_at
|
|
31
|
+
|
|
32
|
+
t.string :calculated_name
|
|
33
|
+
t.string :calculated_created_at
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
class SampleModel < ActiveRecord::Base
|
|
38
|
+
has_calculated_fields on_before_save: [
|
|
39
|
+
{
|
|
40
|
+
calculated_field: :calculated_created_at,
|
|
41
|
+
field: :created_at,
|
|
42
|
+
type: :date,
|
|
43
|
+
default: :now
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
calculated_field: :calculated_name,
|
|
47
|
+
type: :method,
|
|
48
|
+
method: Proc.new do |obj|
|
|
49
|
+
obj.name + " calculated!"
|
|
50
|
+
end
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: has_calculated_fields
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Adrian Fernandez
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2019-08-11 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: rspec
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '3.6'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '3.6'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: activerecord
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - '='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 4.2.11.1
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - '='
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 4.2.11.1
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: sqlite3
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 1.3.6
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 1.3.6
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rubocop
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.49.1
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.49.1
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: simplecov
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 0.15.0
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 0.15.0
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: appraisal
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: '2.2'
|
|
90
|
+
type: :development
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '2.2'
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: byebug
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - ">="
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - ">="
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '0'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: factory_bot
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '4.8'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '4.8'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: database_cleaner
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :development
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
139
|
+
- !ruby/object:Gem::Dependency
|
|
140
|
+
name: active_model_serializers
|
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - "~>"
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: 0.9.3
|
|
146
|
+
type: :development
|
|
147
|
+
prerelease: false
|
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - "~>"
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: 0.9.3
|
|
153
|
+
description: Rails gem to allow models to save auto calculated fields
|
|
154
|
+
email:
|
|
155
|
+
- adrianfernandez85@gmail.com
|
|
156
|
+
executables: []
|
|
157
|
+
extensions: []
|
|
158
|
+
extra_rdoc_files: []
|
|
159
|
+
files:
|
|
160
|
+
- ".DS_Store"
|
|
161
|
+
- ".gitignore"
|
|
162
|
+
- Gemfile
|
|
163
|
+
- Gemfile.lock
|
|
164
|
+
- Rakefile
|
|
165
|
+
- has_calculated_fields.gemspec
|
|
166
|
+
- lib/.DS_Store
|
|
167
|
+
- lib/has_calculated_fields.rb
|
|
168
|
+
- lib/has_calculated_fields/.DS_Store
|
|
169
|
+
- lib/has_calculated_fields/has_calculated_fields.rb
|
|
170
|
+
- spec/.DS_Store
|
|
171
|
+
- spec/factories/other_event.rb
|
|
172
|
+
- spec/has_calculated_fields_spec.rb
|
|
173
|
+
- spec/spec_helper.rb
|
|
174
|
+
- spec/support/factory_bot.rb
|
|
175
|
+
homepage: http://github.com/adrian-fernandez/has_calculated_fields
|
|
176
|
+
licenses:
|
|
177
|
+
- MIT
|
|
178
|
+
metadata: {}
|
|
179
|
+
post_install_message:
|
|
180
|
+
rdoc_options: []
|
|
181
|
+
require_paths:
|
|
182
|
+
- lib
|
|
183
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
184
|
+
requirements:
|
|
185
|
+
- - ">="
|
|
186
|
+
- !ruby/object:Gem::Version
|
|
187
|
+
version: '0'
|
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
|
+
requirements:
|
|
190
|
+
- - ">="
|
|
191
|
+
- !ruby/object:Gem::Version
|
|
192
|
+
version: '0'
|
|
193
|
+
requirements: []
|
|
194
|
+
rubyforge_project:
|
|
195
|
+
rubygems_version: 2.7.8
|
|
196
|
+
signing_key:
|
|
197
|
+
specification_version: 4
|
|
198
|
+
summary: Rails gem to allow models to save auto calculated fields
|
|
199
|
+
test_files:
|
|
200
|
+
- spec/factories/other_event.rb
|
|
201
|
+
- spec/has_calculated_fields_spec.rb
|
|
202
|
+
- spec/spec_helper.rb
|
|
203
|
+
- spec/support/factory_bot.rb
|