acts_as_scd 0.0.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.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +43 -0
  4. data/Rakefile +32 -0
  5. data/lib/acts_as_scd/base_class_methods.rb +101 -0
  6. data/lib/acts_as_scd/block_updater.rb +142 -0
  7. data/lib/acts_as_scd/class_methods.rb +240 -0
  8. data/lib/acts_as_scd/initialize.rb +114 -0
  9. data/lib/acts_as_scd/instance_methods.rb +105 -0
  10. data/lib/acts_as_scd/period.rb +135 -0
  11. data/lib/acts_as_scd/version.rb +3 -0
  12. data/lib/acts_as_scd.rb +31 -0
  13. data/lib/tasks/acts_as_scd_tasks.rake +4 -0
  14. data/test/acts_as_scd_test.rb +680 -0
  15. data/test/dummy/README.rdoc +28 -0
  16. data/test/dummy/Rakefile +6 -0
  17. data/test/dummy/app/assets/javascripts/application.js +13 -0
  18. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  19. data/test/dummy/app/controllers/application_controller.rb +5 -0
  20. data/test/dummy/app/helpers/application_helper.rb +2 -0
  21. data/test/dummy/app/models/association.rb +9 -0
  22. data/test/dummy/app/models/city.rb +19 -0
  23. data/test/dummy/app/models/commercial_delegate.rb +9 -0
  24. data/test/dummy/app/models/country.rb +29 -0
  25. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  26. data/test/dummy/bin/bundle +3 -0
  27. data/test/dummy/bin/rails +4 -0
  28. data/test/dummy/bin/rake +4 -0
  29. data/test/dummy/config/application.rb +23 -0
  30. data/test/dummy/config/boot.rb +5 -0
  31. data/test/dummy/config/database.yml +25 -0
  32. data/test/dummy/config/environment.rb +5 -0
  33. data/test/dummy/config/environments/development.rb +37 -0
  34. data/test/dummy/config/environments/production.rb +83 -0
  35. data/test/dummy/config/environments/test.rb +41 -0
  36. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  37. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  38. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  39. data/test/dummy/config/initializers/inflections.rb +16 -0
  40. data/test/dummy/config/initializers/mime_types.rb +4 -0
  41. data/test/dummy/config/initializers/session_store.rb +3 -0
  42. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  43. data/test/dummy/config/locales/en.yml +23 -0
  44. data/test/dummy/config/locales/scd.en.yml +7 -0
  45. data/test/dummy/config/routes.rb +56 -0
  46. data/test/dummy/config/secrets.yml +22 -0
  47. data/test/dummy/config.ru +4 -0
  48. data/test/dummy/db/test.sqlite3 +0 -0
  49. data/test/dummy/log/test.log +24444 -0
  50. data/test/dummy/public/404.html +67 -0
  51. data/test/dummy/public/422.html +67 -0
  52. data/test/dummy/public/500.html +66 -0
  53. data/test/dummy/public/favicon.ico +0 -0
  54. data/test/fixtures/cities.yml +95 -0
  55. data/test/fixtures/countries.yml +83 -0
  56. data/test/test_helper.rb +15 -0
  57. metadata +185 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,95 @@
1
+ berlin1:
2
+ code: BER
3
+ name: Berlin
4
+ area: 800
5
+ identity: BER
6
+ effective_from: 0
7
+ effective_to: 19491007
8
+ country_identity: DEU
9
+
10
+ berlin2:
11
+ code: BER
12
+ name: Berlin
13
+ area: 400
14
+ identity: BER
15
+ effective_from: 19491007
16
+ effective_to: 19901003
17
+ country_identity: DEU
18
+
19
+ berlin3:
20
+ code: BER
21
+ name: Berlin
22
+ area: 900
23
+ identity: BER
24
+ effective_from: 19901003
25
+ effective_to: 99999999
26
+ country_identity: DEU
27
+
28
+ e_berlin:
29
+ code: EBER
30
+ name: East Berlin
31
+ area: 400
32
+ identity: EBER
33
+ effective_from: 19491007
34
+ effective_to: 19901003
35
+ country_identity: DDR
36
+
37
+ hamburg:
38
+ code: HAM
39
+ name: Hamburg
40
+ area: 600
41
+ identity: HAM
42
+ effective_from: 0
43
+ effective_to: 99999999
44
+ country_identity: DEU
45
+
46
+ leipzig_1:
47
+ code: LEI
48
+ name: Leipzig
49
+ area: 600
50
+ identity: LEI
51
+ effective_from: 0
52
+ effective_to: 19491007
53
+ country_identity: DEU
54
+
55
+ leipzig_2:
56
+ code: LEI
57
+ name: Leipzig
58
+ area: 600
59
+ identity: LEI
60
+ effective_from: 19491007
61
+ effective_to: 19901003
62
+ country_identity: DDR
63
+
64
+ leipzig_3:
65
+ code: LEI
66
+ name: Leipzig
67
+ area: 600
68
+ identity: LEI
69
+ effective_from: 19901003
70
+ effective_to: 99999999
71
+ country_identity: DEU
72
+
73
+ london:
74
+ code: LON
75
+ name: London
76
+ identity: LON
77
+ effective_from: 0
78
+ effective_to: 99999999
79
+ country_identity: GBR
80
+
81
+ edinburgh_uk:
82
+ code: EDI
83
+ name: Edinburgh
84
+ identity: EDI
85
+ effective_from: 0
86
+ effective_to: 20140918
87
+ country_identity: GBR
88
+
89
+ edinburgh_scot:
90
+ code: EDI
91
+ name: Edinburgh
92
+ identity: EDI
93
+ effective_from: 20140918
94
+ effective_to: 99999999
95
+ country_identity: SCO
@@ -0,0 +1,83 @@
1
+ caledonia:
2
+ name: 'Eternal Caledonia'
3
+ code: 'CL'
4
+ identity: 'CL'
5
+ effective_from: 0
6
+ effective_to: 99999999
7
+
8
+ changedonia_first:
9
+ name: 'Volatile Changedonia'
10
+ code: 'CG'
11
+ identity: 'CG'
12
+ effective_from: 0
13
+ effective_to: 20140302
14
+
15
+ changedonia_second:
16
+ name: 'Volatile Changedonia'
17
+ code: 'CG'
18
+ identity: 'CG'
19
+ effective_from: 20140302
20
+ effective_to: 20140507
21
+
22
+ changedonia_third:
23
+ name: 'Volatile Changedonia'
24
+ code: 'CG'
25
+ identity: 'CG'
26
+ effective_from: 20140507
27
+ effective_to: 99999999
28
+
29
+ de1:
30
+ code: DEU
31
+ name: Germany
32
+ area: 357_021
33
+ identity: DEU
34
+ effective_from: 0
35
+ effective_to: 19491007
36
+
37
+ de2:
38
+ code: DEU
39
+ name: Germany
40
+ area: 248_688
41
+ identity: DEU
42
+ effective_from: 19491007
43
+ effective_to: 19901003
44
+
45
+ de3:
46
+ code: DEU
47
+ name: Germany
48
+ area: 357_021
49
+ identity: DEU
50
+ effective_from: 19901003
51
+ effective_to: 99999999
52
+
53
+ ddr:
54
+ code: DDR
55
+ name: East Germany
56
+ area: 108_333
57
+ identity: DDR
58
+ effective_from: 19491007
59
+ effective_to: 19901003
60
+
61
+ uk1:
62
+ code: GBR
63
+ name: United Kingdom
64
+ area: 243_610
65
+ identity: GBR
66
+ effective_from: 0
67
+ effective_to: 20140918
68
+
69
+ uk2:
70
+ code: GBR
71
+ name: United Kingdom
72
+ area: 165_223
73
+ identity: GBR
74
+ effective_from: 20140918
75
+ effective_to: 99999999
76
+
77
+ scotland:
78
+ code: SCO
79
+ name: Scotland
80
+ area: 78_387
81
+ identity: SCO
82
+ effective_from: 20140918
83
+ effective_to: 99999999
@@ -0,0 +1,15 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ Rails.backtrace_cleaner.remove_silencers!
8
+
9
+ # Load support files
10
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
+
12
+ # Load fixtures from the engine
13
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
14
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
15
+ end
metadata ADDED
@@ -0,0 +1,185 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: acts_as_scd
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Javier Goizueta
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.1.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.1.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: modalsupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.2
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.2
41
+ - !ruby/object:Gem::Dependency
42
+ name: sqlite3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: SCD models have identities and multiple time-limited iterations (revisions)
56
+ per identity
57
+ email:
58
+ - jgoizueta@gmail.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - MIT-LICENSE
64
+ - README.rdoc
65
+ - Rakefile
66
+ - lib/acts_as_scd.rb
67
+ - lib/acts_as_scd/base_class_methods.rb
68
+ - lib/acts_as_scd/block_updater.rb
69
+ - lib/acts_as_scd/class_methods.rb
70
+ - lib/acts_as_scd/initialize.rb
71
+ - lib/acts_as_scd/instance_methods.rb
72
+ - lib/acts_as_scd/period.rb
73
+ - lib/acts_as_scd/version.rb
74
+ - lib/tasks/acts_as_scd_tasks.rake
75
+ - test/acts_as_scd_test.rb
76
+ - test/dummy/README.rdoc
77
+ - test/dummy/Rakefile
78
+ - test/dummy/app/assets/javascripts/application.js
79
+ - test/dummy/app/assets/stylesheets/application.css
80
+ - test/dummy/app/controllers/application_controller.rb
81
+ - test/dummy/app/helpers/application_helper.rb
82
+ - test/dummy/app/models/association.rb
83
+ - test/dummy/app/models/city.rb
84
+ - test/dummy/app/models/commercial_delegate.rb
85
+ - test/dummy/app/models/country.rb
86
+ - test/dummy/app/views/layouts/application.html.erb
87
+ - test/dummy/bin/bundle
88
+ - test/dummy/bin/rails
89
+ - test/dummy/bin/rake
90
+ - test/dummy/config.ru
91
+ - test/dummy/config/application.rb
92
+ - test/dummy/config/boot.rb
93
+ - test/dummy/config/database.yml
94
+ - test/dummy/config/environment.rb
95
+ - test/dummy/config/environments/development.rb
96
+ - test/dummy/config/environments/production.rb
97
+ - test/dummy/config/environments/test.rb
98
+ - test/dummy/config/initializers/backtrace_silencers.rb
99
+ - test/dummy/config/initializers/cookies_serializer.rb
100
+ - test/dummy/config/initializers/filter_parameter_logging.rb
101
+ - test/dummy/config/initializers/inflections.rb
102
+ - test/dummy/config/initializers/mime_types.rb
103
+ - test/dummy/config/initializers/session_store.rb
104
+ - test/dummy/config/initializers/wrap_parameters.rb
105
+ - test/dummy/config/locales/en.yml
106
+ - test/dummy/config/locales/scd.en.yml
107
+ - test/dummy/config/routes.rb
108
+ - test/dummy/config/secrets.yml
109
+ - test/dummy/db/test.sqlite3
110
+ - test/dummy/log/test.log
111
+ - test/dummy/public/404.html
112
+ - test/dummy/public/422.html
113
+ - test/dummy/public/500.html
114
+ - test/dummy/public/favicon.ico
115
+ - test/fixtures/cities.yml
116
+ - test/fixtures/countries.yml
117
+ - test/test_helper.rb
118
+ homepage: https://github.com/jgoizueta/acts_as_scd
119
+ licenses:
120
+ - MIT
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ requirements: []
137
+ rubyforge_project:
138
+ rubygems_version: 2.2.2
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: Support for models that act as Slowly Changing Dimensions
142
+ test_files:
143
+ - test/acts_as_scd_test.rb
144
+ - test/dummy/app/assets/javascripts/application.js
145
+ - test/dummy/app/assets/stylesheets/application.css
146
+ - test/dummy/app/controllers/application_controller.rb
147
+ - test/dummy/app/helpers/application_helper.rb
148
+ - test/dummy/app/models/association.rb
149
+ - test/dummy/app/models/city.rb
150
+ - test/dummy/app/models/commercial_delegate.rb
151
+ - test/dummy/app/models/country.rb
152
+ - test/dummy/app/views/layouts/application.html.erb
153
+ - test/dummy/bin/bundle
154
+ - test/dummy/bin/rails
155
+ - test/dummy/bin/rake
156
+ - test/dummy/config/application.rb
157
+ - test/dummy/config/boot.rb
158
+ - test/dummy/config/database.yml
159
+ - test/dummy/config/environment.rb
160
+ - test/dummy/config/environments/development.rb
161
+ - test/dummy/config/environments/production.rb
162
+ - test/dummy/config/environments/test.rb
163
+ - test/dummy/config/initializers/backtrace_silencers.rb
164
+ - test/dummy/config/initializers/cookies_serializer.rb
165
+ - test/dummy/config/initializers/filter_parameter_logging.rb
166
+ - test/dummy/config/initializers/inflections.rb
167
+ - test/dummy/config/initializers/mime_types.rb
168
+ - test/dummy/config/initializers/session_store.rb
169
+ - test/dummy/config/initializers/wrap_parameters.rb
170
+ - test/dummy/config/locales/en.yml
171
+ - test/dummy/config/locales/scd.en.yml
172
+ - test/dummy/config/routes.rb
173
+ - test/dummy/config/secrets.yml
174
+ - test/dummy/config.ru
175
+ - test/dummy/db/test.sqlite3
176
+ - test/dummy/log/test.log
177
+ - test/dummy/public/404.html
178
+ - test/dummy/public/422.html
179
+ - test/dummy/public/500.html
180
+ - test/dummy/public/favicon.ico
181
+ - test/dummy/Rakefile
182
+ - test/dummy/README.rdoc
183
+ - test/fixtures/cities.yml
184
+ - test/fixtures/countries.yml
185
+ - test/test_helper.rb