ninetails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +17 -0
  4. data/Rakefile +19 -0
  5. data/app/components/ninetails/element.rb +55 -0
  6. data/app/components/ninetails/element_definition.rb +67 -0
  7. data/app/components/ninetails/property.rb +11 -0
  8. data/app/components/ninetails/property_store.rb +22 -0
  9. data/app/components/ninetails/property_type.rb +27 -0
  10. data/app/components/ninetails/section_template.rb +66 -0
  11. data/app/controllers/ninetails/application_controller.rb +4 -0
  12. data/app/controllers/ninetails/page_revisions_controller.rb +31 -0
  13. data/app/controllers/ninetails/pages_controller.rb +14 -0
  14. data/app/controllers/ninetails/section_templates_controller.rb +17 -0
  15. data/app/models/ninetails/page.rb +37 -0
  16. data/app/models/ninetails/page_revision.rb +28 -0
  17. data/app/models/ninetails/page_revision_section.rb +6 -0
  18. data/app/models/ninetails/section.rb +30 -0
  19. data/config/initializers/error_classes.rb +4 -0
  20. data/config/initializers/json_stuff.rb +9 -0
  21. data/config/routes.rb +9 -0
  22. data/db/migrate/20151006093040_create_pages.rb +10 -0
  23. data/db/migrate/20151006093559_create_page_revisions.rb +8 -0
  24. data/db/migrate/20151006093754_create_sections.rb +11 -0
  25. data/db/migrate/20151006094337_create_page_revision_sections.rb +8 -0
  26. data/db/migrate/20151111085201_add_message_to_page_revisions.rb +5 -0
  27. data/db/schema.rb +53 -0
  28. data/lib/ninetails.rb +4 -0
  29. data/lib/ninetails/engine.rb +37 -0
  30. data/lib/ninetails/version.rb +3 -0
  31. data/lib/tasks/ninetails_tasks.rake +8 -0
  32. data/spec/components/element_definition_spec.rb +104 -0
  33. data/spec/components/element_spec.rb +92 -0
  34. data/spec/components/property_spec.rb +34 -0
  35. data/spec/components/property_store_spec.rb +64 -0
  36. data/spec/components/property_type_spec.rb +69 -0
  37. data/spec/components/section_spec.rb +72 -0
  38. data/spec/dummy/Rakefile +6 -0
  39. data/spec/dummy/app/components/element/button.rb +7 -0
  40. data/spec/dummy/app/components/element/button_icon.rb +8 -0
  41. data/spec/dummy/app/components/element/figure.rb +7 -0
  42. data/spec/dummy/app/components/element/meta.rb +7 -0
  43. data/spec/dummy/app/components/element/text.rb +7 -0
  44. data/spec/dummy/app/components/property/icon.rb +8 -0
  45. data/spec/dummy/app/components/property/image.rb +10 -0
  46. data/spec/dummy/app/components/property/link.rb +11 -0
  47. data/spec/dummy/app/components/property/text.rb +8 -0
  48. data/spec/dummy/app/components/section_template/billboard.rb +14 -0
  49. data/spec/dummy/app/components/section_template/document_head.rb +10 -0
  50. data/spec/dummy/bin/bundle +3 -0
  51. data/spec/dummy/bin/rails +4 -0
  52. data/spec/dummy/bin/rake +4 -0
  53. data/spec/dummy/bin/setup +29 -0
  54. data/spec/dummy/config.ru +4 -0
  55. data/spec/dummy/config/application.rb +35 -0
  56. data/spec/dummy/config/boot.rb +5 -0
  57. data/spec/dummy/config/database.yml +12 -0
  58. data/spec/dummy/config/database.yml.travis +4 -0
  59. data/spec/dummy/config/environment.rb +5 -0
  60. data/spec/dummy/config/environments/development.rb +41 -0
  61. data/spec/dummy/config/environments/production.rb +79 -0
  62. data/spec/dummy/config/environments/test.rb +42 -0
  63. data/spec/dummy/config/initializers/assets.rb +11 -0
  64. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  65. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  66. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  67. data/spec/dummy/config/initializers/inflections.rb +16 -0
  68. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  69. data/spec/dummy/config/initializers/session_store.rb +3 -0
  70. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  71. data/spec/dummy/config/locales/en.yml +23 -0
  72. data/spec/dummy/config/routes.rb +3 -0
  73. data/spec/dummy/config/secrets.yml +22 -0
  74. data/spec/dummy/db/schema.rb +53 -0
  75. data/spec/dummy/public/404.html +67 -0
  76. data/spec/dummy/public/422.html +67 -0
  77. data/spec/dummy/public/500.html +66 -0
  78. data/spec/dummy/public/favicon.ico +0 -0
  79. data/spec/factories/page_revisions.rb +8 -0
  80. data/spec/factories/pages.rb +25 -0
  81. data/spec/factories/sections.rb +15 -0
  82. data/spec/models/page_revision_spec.rb +5 -0
  83. data/spec/models/page_spec.rb +26 -0
  84. data/spec/models/section_spec.rb +113 -0
  85. data/spec/rails_helper.rb +60 -0
  86. data/spec/requests/page_revisions_spec.rb +117 -0
  87. data/spec/requests/pages_spec.rb +68 -0
  88. data/spec/requests/section_templates_spec.rb +17 -0
  89. data/spec/spec_helper.rb +98 -0
  90. data/spec/support/factory_girl.rb +5 -0
  91. data/spec/support/request_helpers.rb +9 -0
  92. data/spec/support/shared_examples.rb +34 -0
  93. metadata +378 -0
@@ -0,0 +1,68 @@
1
+ require 'rails_helper'
2
+
3
+ describe "Pages API" do
4
+
5
+ let(:page) { create :page }
6
+ let(:page_url) { "/pages/#{CGI.escape(page.url)}" }
7
+
8
+ describe "when not specifying revision" do
9
+ describe "when the page exists" do
10
+ it "should return the current revision of a page" do
11
+ get page_url
12
+
13
+ expect(response).to be_success
14
+ expect(response.body).to eq page.to_builder.target!
15
+ expect(json["page"]["revisionId"]).to eq page.current_revision.id
16
+ end
17
+ end
18
+
19
+ describe "when the page does not exist" do
20
+ it "should return a 404" do
21
+ get "/pages/nil"
22
+
23
+ expect(response).to be_not_found
24
+ end
25
+ end
26
+ end
27
+
28
+ describe "when specifying a revision" do
29
+ describe "when the page and revision exist" do
30
+ it "should return the specified revision of the page" do
31
+ new_revision = create :page_revision
32
+ page.revisions << new_revision
33
+
34
+ get "#{page_url}?revision_id=#{new_revision.id}"
35
+
36
+ expect(response).to be_success
37
+ expect(json["page"]["revisionId"]).to eq new_revision.id
38
+ expect(json["page"]["revisionId"]).not_to eq page.current_revision.id
39
+ end
40
+ end
41
+
42
+ describe "when the page does not exist" do
43
+ it "should return a 404" do
44
+ get "/pages/nil"
45
+
46
+ expect(response).to be_not_found
47
+ end
48
+ end
49
+
50
+ describe "when the page exists, but the revision does not" do
51
+ it "should return a 404" do
52
+ get "#{page_url}?revision_id=bogus"
53
+
54
+ expect(response).to be_not_found
55
+ end
56
+ end
57
+
58
+ describe "when the page and revision exist, but are not related" do
59
+ it "should return a 404" do
60
+ revision = create :page_revision
61
+ get "#{page_url}?revision_id=#{revision.id}"
62
+
63
+ expect(response).to be_not_found
64
+ end
65
+ end
66
+ end
67
+
68
+ end
@@ -0,0 +1,17 @@
1
+ require 'rails_helper'
2
+
3
+ describe "Section Templates API" do
4
+
5
+ it "should list the available templates" do
6
+ get "/section_templates"
7
+ expect(response).to be_success
8
+ expect(json["templates"]).to include "Billboard"
9
+ end
10
+
11
+ it "should be possible to get a section's structure" do
12
+ get "/section_templates/Billboard"
13
+ expect(response).to be_success
14
+ expect(response.body).to eq SectionTemplate::Billboard.new.serialize.to_json
15
+ end
16
+
17
+ end
@@ -0,0 +1,98 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+
3
+ Dir["./spec/support/**/*.rb"].sort.each { |f| require f}
4
+
5
+ # This file was generated by the `rails generate rspec:install` command. Conventionally, all
6
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
7
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
8
+ # this file to always be loaded, without a need to explicitly require it in any
9
+ # files.
10
+ #
11
+ # Given that it is always loaded, you are encouraged to keep this file as
12
+ # light-weight as possible. Requiring heavyweight dependencies from this file
13
+ # will add to the boot time of your test suite on EVERY test run, even for an
14
+ # individual file that may not need all of that loaded. Instead, consider making
15
+ # a separate helper file that requires the additional dependencies and performs
16
+ # the additional setup, and require it from the spec files that actually need
17
+ # it.
18
+ #
19
+ # The `.rspec` file also contains a few flags that are not defaults but that
20
+ # users commonly want.
21
+ #
22
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
23
+ RSpec.configure do |config|
24
+ # rspec-expectations config goes here. You can use an alternate
25
+ # assertion/expectation library such as wrong or the stdlib/minitest
26
+ # assertions if you prefer.
27
+ config.expect_with :rspec do |expectations|
28
+ # This option will default to `true` in RSpec 4. It makes the `description`
29
+ # and `failure_message` of custom matchers include text for helper methods
30
+ # defined using `chain`, e.g.:
31
+ # be_bigger_than(2).and_smaller_than(4).description
32
+ # # => "be bigger than 2 and smaller than 4"
33
+ # ...rather than:
34
+ # # => "be bigger than 2"
35
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
36
+ end
37
+
38
+ # rspec-mocks config goes here. You can use an alternate test double
39
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
40
+ config.mock_with :rspec do |mocks|
41
+ # Prevents you from mocking or stubbing a method that does not exist on
42
+ # a real object. This is generally recommended, and will default to
43
+ # `true` in RSpec 4.
44
+ mocks.verify_partial_doubles = true
45
+ end
46
+
47
+ # The settings below are suggested to provide a good initial experience
48
+ # with RSpec, but feel free to customize to your heart's content.
49
+ =begin
50
+ # These two settings work together to allow you to limit a spec run
51
+ # to individual examples or groups you care about by tagging them with
52
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
53
+ # get run.
54
+ config.filter_run :focus
55
+ config.run_all_when_everything_filtered = true
56
+
57
+ # Allows RSpec to persist some state between runs in order to support
58
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
59
+ # you configure your source control system to ignore this file.
60
+ config.example_status_persistence_file_path = "spec/examples.txt"
61
+
62
+ # Limits the available syntax to the non-monkey patched syntax that is
63
+ # recommended. For more details, see:
64
+ # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
65
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
66
+ # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
67
+ config.disable_monkey_patching!
68
+
69
+ # Many RSpec users commonly either run the entire suite or an individual
70
+ # file, and it's useful to allow more verbose output when running an
71
+ # individual spec file.
72
+ if config.files_to_run.one?
73
+ # Use the documentation formatter for detailed output,
74
+ # unless a formatter has already been configured
75
+ # (e.g. via a command-line flag).
76
+ config.default_formatter = 'doc'
77
+ end
78
+
79
+ # Print the 10 slowest examples and example groups at the
80
+ # end of the spec run, to help surface which specs are running
81
+ # particularly slow.
82
+ config.profile_examples = 10
83
+
84
+ # Run specs in random order to surface order dependencies. If you find an
85
+ # order dependency and want to debug it, you can fix the order by providing
86
+ # the seed, which is printed after each run.
87
+ # --seed 1234
88
+ config.order = :random
89
+
90
+ # Seed global randomization in this process using the `--seed` CLI option.
91
+ # Setting this allows you to use `--seed` to deterministically reproduce
92
+ # test failures related to randomization by passing the same `--seed` value
93
+ # as the one that triggered the failure.
94
+ Kernel.srand config.seed
95
+ =end
96
+
97
+ config.include Requests::JsonHelpers, type: :request
98
+ end
@@ -0,0 +1,5 @@
1
+ require 'factory_girl'
2
+
3
+ RSpec.configure do |config|
4
+ config.include FactoryGirl::Syntax::Methods
5
+ end
@@ -0,0 +1,9 @@
1
+ module Requests
2
+ module JsonHelpers
3
+
4
+ def json
5
+ JSON.parse(response.body)
6
+ end
7
+
8
+ end
9
+ end
@@ -0,0 +1,34 @@
1
+ RSpec.shared_examples "having property" do |name, type|
2
+ it "should have a #{type} property for #{name}" do
3
+ prop = subject.class.properties.find { |p| p.name == name }
4
+ expect(prop.type).to eq type
5
+ end
6
+ end
7
+
8
+ RSpec.shared_examples "having element" do |name, type|
9
+ it "should have the #{type} element for #{name}" do
10
+ expect(subject_has_element?(subject, name, type, :single)).to be true
11
+ end
12
+ end
13
+
14
+ RSpec.shared_examples "having many elements" do |name, type|
15
+ it "should have many #{type} elements for #{name}" do
16
+ expect(subject_has_element?(subject, name, type, :multiple)).to be true
17
+ end
18
+ end
19
+
20
+ def subject_has_element?(subject, name, type, count)
21
+ subject.class.elements.select{ |e| e.name == name && e.type == type && e.count == count }.present?
22
+ end
23
+
24
+ def it_should_have_property(name, type)
25
+ include_examples "having property", name, type
26
+ end
27
+
28
+ def it_should_have_element(name, type)
29
+ include_examples "having element", name, type
30
+ end
31
+
32
+ def it_should_have_many_elements(name, type)
33
+ include_examples "having many elements", name, type
34
+ end
metadata ADDED
@@ -0,0 +1,378 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ninetails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Damien Timewell
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-20 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'
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'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails-api
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pg
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.18'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.18'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jbuilder
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.3'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: hash-pipe
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.3'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: virtus
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.10'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.10'
111
+ - !ruby/object:Gem::Dependency
112
+ name: web-console
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.2'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: spring
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.4'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.4'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3.3'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '3.3'
153
+ - !ruby/object:Gem::Dependency
154
+ name: guard-rspec
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '4.6'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '4.6'
167
+ - !ruby/object:Gem::Dependency
168
+ name: factory_girl
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '4.5'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '4.5'
181
+ - !ruby/object:Gem::Dependency
182
+ name: factory_girl_rails
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '4.5'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '4.5'
195
+ description: Description of Ninetails.
196
+ email:
197
+ - damien@izettle.com
198
+ executables: []
199
+ extensions: []
200
+ extra_rdoc_files: []
201
+ files:
202
+ - MIT-LICENSE
203
+ - README.rdoc
204
+ - Rakefile
205
+ - app/components/ninetails/element.rb
206
+ - app/components/ninetails/element_definition.rb
207
+ - app/components/ninetails/property.rb
208
+ - app/components/ninetails/property_store.rb
209
+ - app/components/ninetails/property_type.rb
210
+ - app/components/ninetails/section_template.rb
211
+ - app/controllers/ninetails/application_controller.rb
212
+ - app/controllers/ninetails/page_revisions_controller.rb
213
+ - app/controllers/ninetails/pages_controller.rb
214
+ - app/controllers/ninetails/section_templates_controller.rb
215
+ - app/models/ninetails/page.rb
216
+ - app/models/ninetails/page_revision.rb
217
+ - app/models/ninetails/page_revision_section.rb
218
+ - app/models/ninetails/section.rb
219
+ - config/initializers/error_classes.rb
220
+ - config/initializers/json_stuff.rb
221
+ - config/routes.rb
222
+ - db/migrate/20151006093040_create_pages.rb
223
+ - db/migrate/20151006093559_create_page_revisions.rb
224
+ - db/migrate/20151006093754_create_sections.rb
225
+ - db/migrate/20151006094337_create_page_revision_sections.rb
226
+ - db/migrate/20151111085201_add_message_to_page_revisions.rb
227
+ - db/schema.rb
228
+ - lib/ninetails.rb
229
+ - lib/ninetails/engine.rb
230
+ - lib/ninetails/version.rb
231
+ - lib/tasks/ninetails_tasks.rake
232
+ - spec/components/element_definition_spec.rb
233
+ - spec/components/element_spec.rb
234
+ - spec/components/property_spec.rb
235
+ - spec/components/property_store_spec.rb
236
+ - spec/components/property_type_spec.rb
237
+ - spec/components/section_spec.rb
238
+ - spec/dummy/Rakefile
239
+ - spec/dummy/app/components/element/button.rb
240
+ - spec/dummy/app/components/element/button_icon.rb
241
+ - spec/dummy/app/components/element/figure.rb
242
+ - spec/dummy/app/components/element/meta.rb
243
+ - spec/dummy/app/components/element/text.rb
244
+ - spec/dummy/app/components/property/icon.rb
245
+ - spec/dummy/app/components/property/image.rb
246
+ - spec/dummy/app/components/property/link.rb
247
+ - spec/dummy/app/components/property/text.rb
248
+ - spec/dummy/app/components/section_template/billboard.rb
249
+ - spec/dummy/app/components/section_template/document_head.rb
250
+ - spec/dummy/bin/bundle
251
+ - spec/dummy/bin/rails
252
+ - spec/dummy/bin/rake
253
+ - spec/dummy/bin/setup
254
+ - spec/dummy/config.ru
255
+ - spec/dummy/config/application.rb
256
+ - spec/dummy/config/boot.rb
257
+ - spec/dummy/config/database.yml
258
+ - spec/dummy/config/database.yml.travis
259
+ - spec/dummy/config/environment.rb
260
+ - spec/dummy/config/environments/development.rb
261
+ - spec/dummy/config/environments/production.rb
262
+ - spec/dummy/config/environments/test.rb
263
+ - spec/dummy/config/initializers/assets.rb
264
+ - spec/dummy/config/initializers/backtrace_silencers.rb
265
+ - spec/dummy/config/initializers/cookies_serializer.rb
266
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
267
+ - spec/dummy/config/initializers/inflections.rb
268
+ - spec/dummy/config/initializers/mime_types.rb
269
+ - spec/dummy/config/initializers/session_store.rb
270
+ - spec/dummy/config/initializers/wrap_parameters.rb
271
+ - spec/dummy/config/locales/en.yml
272
+ - spec/dummy/config/routes.rb
273
+ - spec/dummy/config/secrets.yml
274
+ - spec/dummy/db/schema.rb
275
+ - spec/dummy/public/404.html
276
+ - spec/dummy/public/422.html
277
+ - spec/dummy/public/500.html
278
+ - spec/dummy/public/favicon.ico
279
+ - spec/factories/page_revisions.rb
280
+ - spec/factories/pages.rb
281
+ - spec/factories/sections.rb
282
+ - spec/models/page_revision_spec.rb
283
+ - spec/models/page_spec.rb
284
+ - spec/models/section_spec.rb
285
+ - spec/rails_helper.rb
286
+ - spec/requests/page_revisions_spec.rb
287
+ - spec/requests/pages_spec.rb
288
+ - spec/requests/section_templates_spec.rb
289
+ - spec/spec_helper.rb
290
+ - spec/support/factory_girl.rb
291
+ - spec/support/request_helpers.rb
292
+ - spec/support/shared_examples.rb
293
+ homepage: https://www.izettle.com
294
+ licenses:
295
+ - MIT
296
+ metadata: {}
297
+ post_install_message:
298
+ rdoc_options: []
299
+ require_paths:
300
+ - lib
301
+ required_ruby_version: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - ">="
304
+ - !ruby/object:Gem::Version
305
+ version: '0'
306
+ required_rubygems_version: !ruby/object:Gem::Requirement
307
+ requirements:
308
+ - - ">="
309
+ - !ruby/object:Gem::Version
310
+ version: '0'
311
+ requirements: []
312
+ rubyforge_project:
313
+ rubygems_version: 2.4.6
314
+ signing_key:
315
+ specification_version: 4
316
+ summary: Summary of Ninetails.
317
+ test_files:
318
+ - spec/components/element_definition_spec.rb
319
+ - spec/components/element_spec.rb
320
+ - spec/components/property_spec.rb
321
+ - spec/components/property_store_spec.rb
322
+ - spec/components/property_type_spec.rb
323
+ - spec/components/section_spec.rb
324
+ - spec/dummy/app/components/element/button.rb
325
+ - spec/dummy/app/components/element/button_icon.rb
326
+ - spec/dummy/app/components/element/figure.rb
327
+ - spec/dummy/app/components/element/meta.rb
328
+ - spec/dummy/app/components/element/text.rb
329
+ - spec/dummy/app/components/property/icon.rb
330
+ - spec/dummy/app/components/property/image.rb
331
+ - spec/dummy/app/components/property/link.rb
332
+ - spec/dummy/app/components/property/text.rb
333
+ - spec/dummy/app/components/section_template/billboard.rb
334
+ - spec/dummy/app/components/section_template/document_head.rb
335
+ - spec/dummy/bin/bundle
336
+ - spec/dummy/bin/rails
337
+ - spec/dummy/bin/rake
338
+ - spec/dummy/bin/setup
339
+ - spec/dummy/config/application.rb
340
+ - spec/dummy/config/boot.rb
341
+ - spec/dummy/config/database.yml
342
+ - spec/dummy/config/database.yml.travis
343
+ - spec/dummy/config/environment.rb
344
+ - spec/dummy/config/environments/development.rb
345
+ - spec/dummy/config/environments/production.rb
346
+ - spec/dummy/config/environments/test.rb
347
+ - spec/dummy/config/initializers/assets.rb
348
+ - spec/dummy/config/initializers/backtrace_silencers.rb
349
+ - spec/dummy/config/initializers/cookies_serializer.rb
350
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
351
+ - spec/dummy/config/initializers/inflections.rb
352
+ - spec/dummy/config/initializers/mime_types.rb
353
+ - spec/dummy/config/initializers/session_store.rb
354
+ - spec/dummy/config/initializers/wrap_parameters.rb
355
+ - spec/dummy/config/locales/en.yml
356
+ - spec/dummy/config/routes.rb
357
+ - spec/dummy/config/secrets.yml
358
+ - spec/dummy/config.ru
359
+ - spec/dummy/db/schema.rb
360
+ - spec/dummy/public/404.html
361
+ - spec/dummy/public/422.html
362
+ - spec/dummy/public/500.html
363
+ - spec/dummy/public/favicon.ico
364
+ - spec/dummy/Rakefile
365
+ - spec/factories/page_revisions.rb
366
+ - spec/factories/pages.rb
367
+ - spec/factories/sections.rb
368
+ - spec/models/page_revision_spec.rb
369
+ - spec/models/page_spec.rb
370
+ - spec/models/section_spec.rb
371
+ - spec/rails_helper.rb
372
+ - spec/requests/page_revisions_spec.rb
373
+ - spec/requests/pages_spec.rb
374
+ - spec/requests/section_templates_spec.rb
375
+ - spec/spec_helper.rb
376
+ - spec/support/factory_girl.rb
377
+ - spec/support/request_helpers.rb
378
+ - spec/support/shared_examples.rb