fixed_model 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +113 -0
  4. data/Rakefile +34 -0
  5. data/lib/fixed_model.rb +12 -0
  6. data/lib/fixed_model/base.rb +125 -0
  7. data/lib/fixed_model/loader.rb +41 -0
  8. data/lib/fixed_model/version.rb +3 -0
  9. data/lib/tasks/fixed_model_tasks.rake +4 -0
  10. data/test/compliance_test.rb +9 -0
  11. data/test/dummy/README.rdoc +28 -0
  12. data/test/dummy/Rakefile +6 -0
  13. data/test/dummy/app/assets/javascripts/application.js +13 -0
  14. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  15. data/test/dummy/app/controllers/application_controller.rb +5 -0
  16. data/test/dummy/app/controllers/countries_controller.rb +5 -0
  17. data/test/dummy/app/helpers/application_helper.rb +2 -0
  18. data/test/dummy/app/models/country.rb +2 -0
  19. data/test/dummy/app/views/countries/index.html.erb +6 -0
  20. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  21. data/test/dummy/bin/bundle +3 -0
  22. data/test/dummy/bin/rails +4 -0
  23. data/test/dummy/bin/rake +4 -0
  24. data/test/dummy/bin/setup +29 -0
  25. data/test/dummy/config.ru +4 -0
  26. data/test/dummy/config/application.rb +13 -0
  27. data/test/dummy/config/boot.rb +5 -0
  28. data/test/dummy/config/custom_directory/countries.yml +4 -0
  29. data/test/dummy/config/environment.rb +5 -0
  30. data/test/dummy/config/environments/development.rb +35 -0
  31. data/test/dummy/config/environments/production.rb +72 -0
  32. data/test/dummy/config/environments/test.rb +37 -0
  33. data/test/dummy/config/fixed_models/countries.yml +14 -0
  34. data/test/dummy/config/fixed_models/test/countries.yml +12 -0
  35. data/test/dummy/config/initializers/assets.rb +11 -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/routes.rb +43 -0
  45. data/test/dummy/config/secrets.yml +22 -0
  46. data/test/dummy/db/development.sqlite3 +0 -0
  47. data/test/dummy/db/schema.rb +16 -0
  48. data/test/dummy/db/test.sqlite3 +0 -0
  49. data/test/dummy/log/development.log +4 -0
  50. data/test/dummy/log/test.log +38475 -0
  51. data/test/dummy/public/404.html +67 -0
  52. data/test/dummy/public/422.html +67 -0
  53. data/test/dummy/public/500.html +66 -0
  54. data/test/dummy/public/favicon.ico +0 -0
  55. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-6Aexu4-9zXP7fttMrwdcp6ut5W4svYiwYaN1S11p9U.cache +0 -0
  56. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/APhcRkuSUag3sAMrv147SiqtfM-n4sIyfNkqkP5p69M.cache +1 -0
  57. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/AQff0XbTiXjznwSo3fs-LpH7XQV9hwLzDr7Hn6w4RQQ.cache +1 -0
  58. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/EXAQ6pLNH4aYOxoJcmNdZAmsPZQsxPhQe8rlbRUOeos.cache +2 -0
  59. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TncLlV4b8r5OvOLRIye-1hdOy8VRPZug5cZ_MA3IsHQ.cache +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/V-KescSabX7T78JV-ihOuiwXQAAaK6TutFbWePxQF1E.cache +1 -0
  61. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XZgUSUY6JX5YiIG-pYsSkUr7ydqJlk8XruCemoMycV0.cache +1 -0
  62. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZGNTCr85QzLaZulY-capAFXvkDEEr6N81d3bn6Iz4cA.cache +3 -0
  63. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cOXTJSqqUSSZiPnW-HtRwyBPMvwE4ha2qZLSbmaxbIw.cache +1 -0
  64. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gBGP0GxcODm_c-aOQnAahOusWVfj-YYTkmGUAj-E6JM.cache +0 -0
  65. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hHaCdnnepQTM2egBk_nNjx2qtE0nJ9AoCURFgFCimW0.cache +1 -0
  66. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/o6ueeBxouoMB3i0BojV9csF7Nv7vj-VOG_uQuI50Bsw.cache +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qU-CZGfXFumxCXsfIRmNyVkxQbynRnZU9MB3VCPUBOI.cache +2 -0
  68. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sRGS14pPtrh56KyQ_kl9N-zL1uB9ioBkupw2fsFv5Qg.cache +3 -0
  69. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uQRTceYLrl73R0pgWCxVOnYpJ45bJLISR0_4UDPlJz4.cache +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ySK7zTiTeC0Yma0kl-Eg7cApzKz-5tN6Y5p6ljvFAV8.cache +1 -0
  71. data/test/fixed_model/base_test.rb +7 -0
  72. data/test/fixed_model_test.rb +127 -0
  73. data/test/integration/navigation_test.rb +14 -0
  74. data/test/test_helper.rb +18 -0
  75. metadata +198 -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 @@
1
+ I"�file:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/stylesheets/application.css?type=text/css&id=63e9ec441a272c9d9af68633e0686152907a5fb21f608cf03df8377a69c03ca5:ET
@@ -0,0 +1 @@
1
+ "%Ѱč@�����6H�uZoX�Z�gbh0W��V
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"{file-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/javascripts/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"lfile-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/javascripts;TT
@@ -0,0 +1 @@
1
+ I"�file:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=5171969fb93fa0bf36d435ce37ba29b06023798139463ece73576cc8736abe47:ET
@@ -0,0 +1 @@
1
+ I"�file:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=5e4ecf95b1dc59ff715eeee2dc628300495f36194374c71504925069505e706c:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"|file-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/stylesheets/application.css;TTI"lfile-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/stylesheets;TT
@@ -0,0 +1 @@
1
+ I"�file:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/javascripts/application.js?type=application/javascript&id=d14bf0fc789c29ca8e680c90d913a68e4865fbbd819f9ea5f2d794a8c4fecab9:ET
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"0processors:type=text/css&file_type=text/css;TTI"|file-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"lfile-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/stylesheets;TT
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"{file-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/javascripts/application.js;TTI"lfile-digest:///Users/mollerhoj/work/crafting_rails_apps/2/fixed_model/test/dummy/app/assets/javascripts;TT
@@ -0,0 +1 @@
1
+ "%�W\�yho9S���ƫ˥��)|�~���(���
@@ -0,0 +1,7 @@
1
+ module FixedModel
2
+ class BaseTest < ActiveSupport::TestCase
3
+ test "truth" do
4
+ assert_kind_of Class, Base
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,127 @@
1
+ require 'test_helper'
2
+
3
+ class FixedModelTest < ActiveSupport::TestCase
4
+ setup do
5
+ @denmark = Country.find_by_name('Denmark')
6
+ @england = Country.find_by_name('England')
7
+ end
8
+
9
+ test "#self.find" do
10
+ assert_equal @denmark, Country.find { |c| c.name == "Denmark" }
11
+ end
12
+
13
+ test "#self.first, second, thrid" do
14
+ assert_equal @england, Country.first
15
+ assert_equal @denmark, Country.second
16
+ assert_equal nil, Country.third
17
+ end
18
+
19
+ test "#self.last" do
20
+ assert_equal @denmark, Country.last
21
+ end
22
+
23
+ test "has default file_path set" do
24
+ assert_equal ['config/fixed_models'], FixedModel.file_paths
25
+ end
26
+
27
+ test "default to use environment paths" do
28
+ assert_equal true, FixedModel.use_environment_paths
29
+ end
30
+
31
+ test "con configure the use of environment paths" do
32
+ begin
33
+ FixedModel.use_environment_paths = false
34
+ Country.instance_variable_set(:@data, nil) # forces reload
35
+ assert_equal 1, Country.count
36
+ ensure
37
+ FixedModel.use_environment_paths = true
38
+ Country.instance_variable_set(:@data, nil) # forces reload
39
+ end
40
+ end
41
+
42
+ test "can configure file paths" do
43
+ begin
44
+ FixedModel.file_paths = ['config/custom_directory']
45
+ Country.instance_variable_set(:@data, nil) # forces reload
46
+ assert_equal "Spain", Country.first.name
47
+ ensure
48
+ FixedModel.file_paths = ['config/fixed_models']
49
+ Country.instance_variable_set(:@data, nil) # forces reload
50
+ end
51
+ end
52
+
53
+ test "can hold arrays" do
54
+ assert_equal @england.center, [53.562925, 1.806361]
55
+ end
56
+
57
+ test "can hold nested attributes" do
58
+ expected = {"name"=>"London", "status"=>:capital}
59
+ assert_equal expected, @england.cities[:london]
60
+ end
61
+
62
+ test "can hold symbols" do
63
+ assert_equal :capital, @england.cities[:london]['status']
64
+ end
65
+
66
+ test "fixed models has always persisted" do
67
+ assert_equal true, @denmark.persisted?
68
+ end
69
+
70
+ test "fixed models are never new" do
71
+ assert_equal false, @denmark.new_record?
72
+ end
73
+
74
+ test "#self.find_by_<attribute>" do
75
+ assert_equal @denmark, Country.find_by_capital('Copenhagen')
76
+ end
77
+
78
+ test "#self.find_by_<attribute>!" do
79
+ assert_raise FixedModel::RecordNotFound do
80
+ Country.find_by_capital!('Honolulu')
81
+ end
82
+ assert_equal @denmark, Country.find_by_capital!('Copenhagen')
83
+ end
84
+
85
+ test "#<attribute>?" do
86
+ assert_equal true, @denmark.name?
87
+ assert_equal false, @denmark.language?
88
+ end
89
+
90
+ test "#attributes" do
91
+ expected = {"name" => "Denmark", "capital" => "Copenhagen"}
92
+ assert_equal expected, @denmark.attributes
93
+ end
94
+
95
+ test "#self.all" do
96
+ assert_equal [@england, @denmark], Country.all
97
+ end
98
+
99
+ test "#self.count" do
100
+ assert_equal 2, Country.count
101
+ end
102
+
103
+ test "#self.each" do
104
+ names = []
105
+ Country.each do |country|
106
+ names << country.name
107
+ end
108
+ assert_equal ["Denmark", "England"].sort, names.sort
109
+ end
110
+
111
+ test "#attribute_names" do
112
+ assert_equal ["name", "capital"].sort, @denmark.attribute_names.sort
113
+ end
114
+
115
+ test "#self.attribute_names" do
116
+ assert_equal ["name", "center", "cities", "capital", "language"].sort, Country.attribute_names.sort
117
+ end
118
+
119
+ test "#read_attribute" do
120
+ assert_equal "Denmark", @denmark.read_attribute("name")
121
+ assert_equal nil, @denmark.read_attribute("user")
122
+ end
123
+
124
+ test "attribute readers" do
125
+ assert_equal "Denmark", @denmark.name
126
+ end
127
+ end
@@ -0,0 +1,14 @@
1
+ class CountriesControllerTest < ActionController::TestCase
2
+ # test "should get index" do
3
+ # get :index
4
+ # assert_response :success
5
+ # assert_not_nil assigns(:countries)
6
+ # end
7
+
8
+ # test "should get show" do
9
+ # # denmark = Country.find_by_name('Denmark') # get :show, id: denmark.id
10
+ # # raise denmark.inspect
11
+ # # assert_response :success
12
+ # # assert_not_nil assigns(:country)
13
+ # end
14
+ end
@@ -0,0 +1,18 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
8
+ # to be shown.
9
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
10
+
11
+ # Load support files
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
+
14
+ # Load fixtures from the engine
15
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
16
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
17
+ ActiveSupport::TestCase.fixtures :all
18
+ end
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fixed_model
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jens Dahl Møllerhøj
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-28 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.2.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.3
27
+ description: Fixed Models act like ActiveRecord models, but they are immutable and
28
+ read from data files.
29
+ email:
30
+ - mollerhoj3@gmail.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - MIT-LICENSE
36
+ - README.md
37
+ - Rakefile
38
+ - lib/fixed_model.rb
39
+ - lib/fixed_model/base.rb
40
+ - lib/fixed_model/loader.rb
41
+ - lib/fixed_model/version.rb
42
+ - lib/tasks/fixed_model_tasks.rake
43
+ - test/compliance_test.rb
44
+ - test/dummy/README.rdoc
45
+ - test/dummy/Rakefile
46
+ - test/dummy/app/assets/javascripts/application.js
47
+ - test/dummy/app/assets/stylesheets/application.css
48
+ - test/dummy/app/controllers/application_controller.rb
49
+ - test/dummy/app/controllers/countries_controller.rb
50
+ - test/dummy/app/helpers/application_helper.rb
51
+ - test/dummy/app/models/country.rb
52
+ - test/dummy/app/views/countries/index.html.erb
53
+ - test/dummy/app/views/layouts/application.html.erb
54
+ - test/dummy/bin/bundle
55
+ - test/dummy/bin/rails
56
+ - test/dummy/bin/rake
57
+ - test/dummy/bin/setup
58
+ - test/dummy/config.ru
59
+ - test/dummy/config/application.rb
60
+ - test/dummy/config/boot.rb
61
+ - test/dummy/config/custom_directory/countries.yml
62
+ - test/dummy/config/environment.rb
63
+ - test/dummy/config/environments/development.rb
64
+ - test/dummy/config/environments/production.rb
65
+ - test/dummy/config/environments/test.rb
66
+ - test/dummy/config/fixed_models/countries.yml
67
+ - test/dummy/config/fixed_models/test/countries.yml
68
+ - test/dummy/config/initializers/assets.rb
69
+ - test/dummy/config/initializers/backtrace_silencers.rb
70
+ - test/dummy/config/initializers/cookies_serializer.rb
71
+ - test/dummy/config/initializers/filter_parameter_logging.rb
72
+ - test/dummy/config/initializers/inflections.rb
73
+ - test/dummy/config/initializers/mime_types.rb
74
+ - test/dummy/config/initializers/session_store.rb
75
+ - test/dummy/config/initializers/wrap_parameters.rb
76
+ - test/dummy/config/locales/en.yml
77
+ - test/dummy/config/routes.rb
78
+ - test/dummy/config/secrets.yml
79
+ - test/dummy/db/development.sqlite3
80
+ - test/dummy/db/schema.rb
81
+ - test/dummy/db/test.sqlite3
82
+ - test/dummy/log/development.log
83
+ - test/dummy/log/test.log
84
+ - test/dummy/public/404.html
85
+ - test/dummy/public/422.html
86
+ - test/dummy/public/500.html
87
+ - test/dummy/public/favicon.ico
88
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/-6Aexu4-9zXP7fttMrwdcp6ut5W4svYiwYaN1S11p9U.cache
89
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/APhcRkuSUag3sAMrv147SiqtfM-n4sIyfNkqkP5p69M.cache
90
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/AQff0XbTiXjznwSo3fs-LpH7XQV9hwLzDr7Hn6w4RQQ.cache
91
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/EXAQ6pLNH4aYOxoJcmNdZAmsPZQsxPhQe8rlbRUOeos.cache
92
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/TncLlV4b8r5OvOLRIye-1hdOy8VRPZug5cZ_MA3IsHQ.cache
93
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/V-KescSabX7T78JV-ihOuiwXQAAaK6TutFbWePxQF1E.cache
94
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/XZgUSUY6JX5YiIG-pYsSkUr7ydqJlk8XruCemoMycV0.cache
95
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZGNTCr85QzLaZulY-capAFXvkDEEr6N81d3bn6Iz4cA.cache
96
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/cOXTJSqqUSSZiPnW-HtRwyBPMvwE4ha2qZLSbmaxbIw.cache
97
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/gBGP0GxcODm_c-aOQnAahOusWVfj-YYTkmGUAj-E6JM.cache
98
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/hHaCdnnepQTM2egBk_nNjx2qtE0nJ9AoCURFgFCimW0.cache
99
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/o6ueeBxouoMB3i0BojV9csF7Nv7vj-VOG_uQuI50Bsw.cache
100
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/qU-CZGfXFumxCXsfIRmNyVkxQbynRnZU9MB3VCPUBOI.cache
101
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/sRGS14pPtrh56KyQ_kl9N-zL1uB9ioBkupw2fsFv5Qg.cache
102
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/uQRTceYLrl73R0pgWCxVOnYpJ45bJLISR0_4UDPlJz4.cache
103
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/ySK7zTiTeC0Yma0kl-Eg7cApzKz-5tN6Y5p6ljvFAV8.cache
104
+ - test/fixed_model/base_test.rb
105
+ - test/fixed_model_test.rb
106
+ - test/integration/navigation_test.rb
107
+ - test/test_helper.rb
108
+ homepage: https://github.com/mollerhoj/
109
+ licenses:
110
+ - MIT
111
+ metadata: {}
112
+ post_install_message:
113
+ rdoc_options: []
114
+ require_paths:
115
+ - lib
116
+ required_ruby_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ required_rubygems_version: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ requirements: []
127
+ rubyforge_project:
128
+ rubygems_version: 2.2.2
129
+ signing_key:
130
+ specification_version: 4
131
+ summary: Fixed Models act like ActiveRecord models, but they are immutable and read
132
+ from data files.
133
+ test_files:
134
+ - test/compliance_test.rb
135
+ - test/dummy/app/assets/javascripts/application.js
136
+ - test/dummy/app/assets/stylesheets/application.css
137
+ - test/dummy/app/controllers/application_controller.rb
138
+ - test/dummy/app/controllers/countries_controller.rb
139
+ - test/dummy/app/helpers/application_helper.rb
140
+ - test/dummy/app/models/country.rb
141
+ - test/dummy/app/views/countries/index.html.erb
142
+ - test/dummy/app/views/layouts/application.html.erb
143
+ - test/dummy/bin/bundle
144
+ - test/dummy/bin/rails
145
+ - test/dummy/bin/rake
146
+ - test/dummy/bin/setup
147
+ - test/dummy/config/application.rb
148
+ - test/dummy/config/boot.rb
149
+ - test/dummy/config/custom_directory/countries.yml
150
+ - test/dummy/config/environment.rb
151
+ - test/dummy/config/environments/development.rb
152
+ - test/dummy/config/environments/production.rb
153
+ - test/dummy/config/environments/test.rb
154
+ - test/dummy/config/fixed_models/countries.yml
155
+ - test/dummy/config/fixed_models/test/countries.yml
156
+ - test/dummy/config/initializers/assets.rb
157
+ - test/dummy/config/initializers/backtrace_silencers.rb
158
+ - test/dummy/config/initializers/cookies_serializer.rb
159
+ - test/dummy/config/initializers/filter_parameter_logging.rb
160
+ - test/dummy/config/initializers/inflections.rb
161
+ - test/dummy/config/initializers/mime_types.rb
162
+ - test/dummy/config/initializers/session_store.rb
163
+ - test/dummy/config/initializers/wrap_parameters.rb
164
+ - test/dummy/config/locales/en.yml
165
+ - test/dummy/config/routes.rb
166
+ - test/dummy/config/secrets.yml
167
+ - test/dummy/config.ru
168
+ - test/dummy/db/development.sqlite3
169
+ - test/dummy/db/schema.rb
170
+ - test/dummy/db/test.sqlite3
171
+ - test/dummy/log/development.log
172
+ - test/dummy/log/test.log
173
+ - test/dummy/public/404.html
174
+ - test/dummy/public/422.html
175
+ - test/dummy/public/500.html
176
+ - test/dummy/public/favicon.ico
177
+ - test/dummy/Rakefile
178
+ - test/dummy/README.rdoc
179
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/-6Aexu4-9zXP7fttMrwdcp6ut5W4svYiwYaN1S11p9U.cache
180
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/APhcRkuSUag3sAMrv147SiqtfM-n4sIyfNkqkP5p69M.cache
181
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/AQff0XbTiXjznwSo3fs-LpH7XQV9hwLzDr7Hn6w4RQQ.cache
182
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/cOXTJSqqUSSZiPnW-HtRwyBPMvwE4ha2qZLSbmaxbIw.cache
183
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/EXAQ6pLNH4aYOxoJcmNdZAmsPZQsxPhQe8rlbRUOeos.cache
184
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/gBGP0GxcODm_c-aOQnAahOusWVfj-YYTkmGUAj-E6JM.cache
185
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/hHaCdnnepQTM2egBk_nNjx2qtE0nJ9AoCURFgFCimW0.cache
186
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/o6ueeBxouoMB3i0BojV9csF7Nv7vj-VOG_uQuI50Bsw.cache
187
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/qU-CZGfXFumxCXsfIRmNyVkxQbynRnZU9MB3VCPUBOI.cache
188
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/sRGS14pPtrh56KyQ_kl9N-zL1uB9ioBkupw2fsFv5Qg.cache
189
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/TncLlV4b8r5OvOLRIye-1hdOy8VRPZug5cZ_MA3IsHQ.cache
190
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/uQRTceYLrl73R0pgWCxVOnYpJ45bJLISR0_4UDPlJz4.cache
191
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/V-KescSabX7T78JV-ihOuiwXQAAaK6TutFbWePxQF1E.cache
192
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/XZgUSUY6JX5YiIG-pYsSkUr7ydqJlk8XruCemoMycV0.cache
193
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/ySK7zTiTeC0Yma0kl-Eg7cApzKz-5tN6Y5p6ljvFAV8.cache
194
+ - test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZGNTCr85QzLaZulY-capAFXvkDEEr6N81d3bn6Iz4cA.cache
195
+ - test/fixed_model/base_test.rb
196
+ - test/fixed_model_test.rb
197
+ - test/integration/navigation_test.rb
198
+ - test/test_helper.rb