backframe 0.0.49 → 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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +16 -0
  3. data/.gitignore +2 -2
  4. data/.rspec +2 -0
  5. data/.rubocop.yml +1156 -0
  6. data/Gemfile +9 -13
  7. data/README.md +133 -4
  8. data/Rakefile +3 -7
  9. data/backframe.gemspec +10 -11
  10. data/circle.yml +5 -2
  11. data/lib/backframe.rb +21 -34
  12. data/lib/backframe/mime.rb +4 -0
  13. data/lib/backframe/query.rb +48 -0
  14. data/lib/backframe/query/sort.rb +29 -0
  15. data/lib/backframe/railtie.rb +1 -16
  16. data/lib/backframe/response.rb +60 -0
  17. data/lib/backframe/response/adapter/csv.rb +39 -0
  18. data/lib/backframe/response/adapter/json.rb +53 -0
  19. data/lib/backframe/response/adapter/xlsx.rb +41 -0
  20. data/lib/backframe/response/adapter/xml.rb +37 -0
  21. data/lib/backframe/response/collection.rb +43 -0
  22. data/lib/backframe/response/fields.rb +62 -0
  23. data/lib/backframe/response/record.rb +38 -0
  24. data/lib/backframe/service.rb +60 -0
  25. data/lib/backframe/service/result/base.rb +24 -0
  26. data/lib/backframe/service/result/failure.rb +21 -0
  27. data/lib/backframe/service/result/success.rb +21 -0
  28. data/lib/backframe/version.rb +1 -1
  29. data/spec/fixtures/active_record.rb +22 -0
  30. data/spec/fixtures/models.rb +25 -0
  31. data/spec/fixtures/queries.rb +28 -0
  32. data/spec/fixtures/seeds.rb +12 -0
  33. data/spec/fixtures/serializers.rb +23 -0
  34. data/spec/fixtures/services.rb +26 -0
  35. data/spec/query/sort_spec.rb +47 -0
  36. data/spec/query_spec.rb +63 -0
  37. data/spec/response/adapter/csv_spec.rb +47 -0
  38. data/spec/response/adapter/json_spec.rb +66 -0
  39. data/spec/response/adapter/xlsx_spec.rb +59 -0
  40. data/spec/response/adapter/xml_spec.rb +63 -0
  41. data/spec/response/fields_spec.rb +45 -0
  42. data/spec/response/record_spec.rb +45 -0
  43. data/spec/response_spec.rb +153 -0
  44. data/spec/service/result/failure_spec.rb +16 -0
  45. data/spec/service/result/sucess_spec.rb +17 -0
  46. data/spec/service_spec.rb +16 -0
  47. data/spec/spec_helper.rb +15 -52
  48. metadata +78 -81
  49. data/lib/backframe/actioncontroller/acts_as_activation.rb +0 -70
  50. data/lib/backframe/actioncontroller/acts_as_api.rb +0 -39
  51. data/lib/backframe/actioncontroller/acts_as_api/adapter.rb +0 -53
  52. data/lib/backframe/actioncontroller/acts_as_api/errors.rb +0 -48
  53. data/lib/backframe/actioncontroller/acts_as_api/headers.rb +0 -11
  54. data/lib/backframe/actioncontroller/acts_as_api/page.rb +0 -181
  55. data/lib/backframe/actioncontroller/acts_as_reset.rb +0 -86
  56. data/lib/backframe/actioncontroller/acts_as_resource.rb +0 -92
  57. data/lib/backframe/actioncontroller/acts_as_resource/actions.rb +0 -100
  58. data/lib/backframe/actioncontroller/acts_as_session.rb +0 -80
  59. data/lib/backframe/activerecord/acts_as_activable.rb +0 -50
  60. data/lib/backframe/activerecord/acts_as_distinct.rb +0 -49
  61. data/lib/backframe/activerecord/acts_as_enum.rb +0 -62
  62. data/lib/backframe/activerecord/acts_as_orderable.rb +0 -40
  63. data/lib/backframe/activerecord/acts_as_percent.rb +0 -46
  64. data/lib/backframe/activerecord/acts_as_phone.rb +0 -59
  65. data/lib/backframe/activerecord/acts_as_user.rb +0 -101
  66. data/lib/backframe/activerecord/default_values.rb +0 -32
  67. data/lib/backframe/activerecord/filter_sort.rb +0 -79
  68. data/lib/backframe/activerecord/migration.rb +0 -25
  69. data/lib/backframe/image_cache/image_cache.rb +0 -45
  70. data/lib/backframe/image_cache/lib/asset.rb +0 -109
  71. data/lib/backframe/image_cache/lib/cache.rb +0 -67
  72. data/lib/backframe/image_cache/lib/conversions.rb +0 -132
  73. data/lib/backframe/models/activation.rb +0 -60
  74. data/lib/backframe/models/activity.rb +0 -40
  75. data/lib/backframe/models/reset.rb +0 -59
  76. data/lib/backframe/models/story.rb +0 -9
  77. data/lib/backframe/serializers/activity_serializer.rb +0 -44
  78. data/spec/backframe/acts_as_api_spec.rb +0 -225
  79. data/spec/backframe/acts_as_resource_spec.rb +0 -178
  80. data/spec/support/example_factory.rb +0 -9
  81. data/spec/support/example_serializer.rb +0 -3
  82. data/spec/support/schema.rb +0 -8
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Backframe::Response::Fields do
4
+
5
+ it 'returns the default fields in the default order' do
6
+ actual = Backframe::Response::Fields.new(Backframe::Fixtures::Contact, nil)
7
+ expected = [
8
+ { label: "id", key: "id" },
9
+ { label: "first_name", key: "first_name" },
10
+ { label: "last_name", key: "last_name" },
11
+ { label: "email", key: "email" },
12
+ { label: "photo.id", key: "photo.id" },
13
+ { label: "photo.path", key: "photo.path" }
14
+ ]
15
+ expect(actual.any?).to eq(false)
16
+ expect(actual.array).to eq(expected)
17
+ end
18
+
19
+ it 'returns the fields with an alternate order' do
20
+ actual = Backframe::Response::Fields.new(Backframe::Fixtures::Contact, 'last_name,first_name')
21
+ expected = [
22
+ { label: "last_name", key: "last_name" },
23
+ { label: "first_name", key: "first_name" }
24
+ ]
25
+ expect(actual.array).to eq(expected)
26
+ end
27
+
28
+ it 'returns a field with an alias' do
29
+ actual = Backframe::Response::Fields.new(Backframe::Fixtures::Contact, 'First Name:first_name')
30
+ expected = [
31
+ { label: "First Name", key: "first_name" }
32
+ ]
33
+ expect(actual.array).to eq(expected)
34
+ end
35
+
36
+ it 'returns fields with mixed aliases' do
37
+ actual = Backframe::Response::Fields.new(Backframe::Fixtures::Contact, 'First Name:first_name,last_name')
38
+ expected = [
39
+ { label: "First Name", key: "first_name" },
40
+ { label: "last_name", key: "last_name" }
41
+ ]
42
+ expect(actual.array).to eq(expected)
43
+ end
44
+
45
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+
3
+ describe Backframe::Response::Record do
4
+
5
+ before(:all) do
6
+ @hash = { first_name: 'Greg', last_name: 'Kops', email: 'greg@thinktopography.com', photo: { id: 1, path: '/images/greg.jpg' } }
7
+ end
8
+
9
+ it 'casts a string path' do
10
+ actual = Backframe::Response::Record.cast_path('a')
11
+ expected = ['a']
12
+ expect(actual).to eq(expected)
13
+ end
14
+
15
+ it 'casts a nested string path' do
16
+ actual = Backframe::Response::Record.cast_path('a.b.c')
17
+ expected = ['a','b','c']
18
+ expect(actual).to eq(expected)
19
+ end
20
+
21
+ it 'casts a symbol path' do
22
+ actual = Backframe::Response::Record.cast_path(:a)
23
+ expected = ['a']
24
+ expect(actual).to eq(expected)
25
+ end
26
+
27
+ it 'casts an array path' do
28
+ actual = Backframe::Response::Record.cast_path(['a'])
29
+ expected = ['a']
30
+ expect(actual).to eq(expected)
31
+ end
32
+
33
+ it 'gets top level value' do
34
+ actual = Backframe::Response::Record.get_value(@hash, 'first_name')
35
+ expected = 'Greg'
36
+ expect(actual).to eq(expected)
37
+ end
38
+
39
+ it 'gets nested value' do
40
+ actual = Backframe::Response::Record.get_value(@hash, 'photo.id')
41
+ expected = 1
42
+ expect(actual).to eq(expected)
43
+ end
44
+
45
+ end
@@ -0,0 +1,153 @@
1
+ require 'spec_helper'
2
+
3
+ describe Backframe::Response do
4
+
5
+ before(:all) do
6
+ @records = [
7
+ { id: 1, first_name: 'Greg', last_name: 'Kops', email: 'greg@thinktopography.com', photo: { id: 1, path: '/images/greg.jpg' } },
8
+ { id: 2, first_name: 'Megan', last_name: 'Pugh', email: 'megan@thinktopography.com', photo: { id: 2, path: '/images/megan.jpg' } },
9
+ { id: 3, first_name: 'Kath', last_name: 'Tibbetts', email: 'kath@thinktopography.com', photo: { id: 3, path: '/images/kath.jpg' } },
10
+ { id: 4, first_name: 'Armand', last_name: 'Zerilli', email: 'armand@thinktopography.com', photo: { id: 4, path: '/images/armand.jpg' } }
11
+ ]
12
+ end
13
+
14
+ it 'handles success' do
15
+ actual = Backframe::Response.success({ text: 'test', content_type: 'text/plain' })
16
+ expected = { text: 'test', content_type: 'text/plain', status: 200 }
17
+ expect(actual).to eq(expected)
18
+ end
19
+
20
+ it 'handles failure' do
21
+ actual = Backframe::Response.failure('Application Error', 500)
22
+ expected = {
23
+ json: {
24
+ error: {
25
+ message: 'Application Error',
26
+ status: 500
27
+ }
28
+ },
29
+ content_type: 'application/json',
30
+ status: 500
31
+ }
32
+ expect(actual).to eq(expected)
33
+ end
34
+
35
+ it 'renders error if no format provided' do
36
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'bat' })
37
+ expected = {
38
+ json: { error: { message: "Unknown Format", status: 404 } },
39
+ content_type: 'application/json',
40
+ status: 404
41
+ }
42
+ expect(actual).to eq(expected)
43
+ end
44
+
45
+ it 'renders plain' do
46
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'json' })
47
+ expected = {
48
+ json: {
49
+ records: @records,
50
+ total_records: 4,
51
+ current_page: 1,
52
+ total_pages: 1
53
+ },
54
+ content_type: 'application/json',
55
+ status: 200
56
+ }
57
+ expect(actual).to eq(expected)
58
+ end
59
+
60
+ it 'renders with pagination' do
61
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'json', page: 1, per_page: 2 })
62
+ expected = {
63
+ json: {
64
+ records: @records[0, 2],
65
+ total_records: 4,
66
+ current_page: 1,
67
+ total_pages: 2
68
+ },
69
+ content_type: 'application/json',
70
+ status: 200
71
+ }
72
+ expect(actual).to eq(expected)
73
+ end
74
+
75
+ it 'renders with fields' do
76
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'json', fields: 'First Name:first_name' })
77
+ expected = {
78
+ json: {
79
+ records: @records.map { |r| { first_name: r[:first_name]} },
80
+ total_records: 4,
81
+ current_page: 1,
82
+ total_pages: 1
83
+ },
84
+ content_type: 'application/json',
85
+ status: 200
86
+ }
87
+ expect(actual).to eq(expected)
88
+ end
89
+
90
+ it 'renders default xml response' do
91
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'xml' })
92
+ expected = {
93
+ xml: [
94
+ '<?xml version="1.0"?><records>',
95
+ '<record><id>1</id><first_name>Greg</first_name><last_name>Kops</last_name><email>greg@thinktopography.com</email><photo.id>1</photo.id><photo.path>/images/greg.jpg</photo.path></record>',
96
+ '<record><id>2</id><first_name>Megan</first_name><last_name>Pugh</last_name><email>megan@thinktopography.com</email><photo.id>2</photo.id><photo.path>/images/megan.jpg</photo.path></record>',
97
+ '<record><id>3</id><first_name>Kath</first_name><last_name>Tibbetts</last_name><email>kath@thinktopography.com</email><photo.id>3</photo.id><photo.path>/images/kath.jpg</photo.path></record>',
98
+ '<record><id>4</id><first_name>Armand</first_name><last_name>Zerilli</last_name><email>armand@thinktopography.com</email><photo.id>4</photo.id><photo.path>/images/armand.jpg</photo.path></record>',
99
+ '</records>'
100
+ ].join,
101
+ content_type: "application/xhtml+xml",
102
+ status: 200
103
+ }
104
+ expect(actual).to eq(expected)
105
+ end
106
+
107
+ it 'renders default csv response' do
108
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'csv' })
109
+ expected = {
110
+ text: [
111
+ 'id,first_name,last_name,email,photo.id,photo.path',
112
+ '1,Greg,Kops,greg@thinktopography.com,1,/images/greg.jpg',
113
+ '2,Megan,Pugh,megan@thinktopography.com,2,/images/megan.jpg',
114
+ '3,Kath,Tibbetts,kath@thinktopography.com,3,/images/kath.jpg',
115
+ '4,Armand,Zerilli,armand@thinktopography.com,4,/images/armand.jpg'
116
+ ].join("\n"),
117
+ content_type: "text/plain",
118
+ status: 200
119
+ }
120
+ expect(actual).to eq(expected)
121
+ end
122
+
123
+ it 'renders default tsv response' do
124
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'tsv' })
125
+ expected = {
126
+ text: [
127
+ "id\tfirst_name\tlast_name\temail\tphoto.id\tphoto.path",
128
+ "1\tGreg\tKops\tgreg@thinktopography.com\t1\t/images/greg.jpg",
129
+ "2\tMegan\tPugh\tmegan@thinktopography.com\t2\t/images/megan.jpg",
130
+ "3\tKath\tTibbetts\tkath@thinktopography.com\t3\t/images/kath.jpg",
131
+ "4\tArmand\tZerilli\tarmand@thinktopography.com\t4\t/images/armand.jpg"
132
+ ].join("\n"),
133
+ content_type: "text/plain",
134
+ status: 200
135
+ }
136
+ expect(actual).to eq(expected)
137
+ end
138
+
139
+ it 'renders default xlsx response' do
140
+ actual = Backframe::Response.render(Backframe::Fixtures::Contact, { format: 'xlsx' })
141
+ expect(actual[:content_type]).to eq('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
142
+ expect(actual[:status]).to eq(200)
143
+ File.open('tmp.xlsx', 'w') { |file| file.write(actual[:text]) }
144
+ xlsx = Roo::Excelx.new('tmp.xlsx')
145
+ expect(xlsx.sheet(0).row(1)).to eq(["id", "first_name", "last_name", "email", "photo.id", "photo.path"])
146
+ expect(xlsx.sheet(0).row(2)).to eq(["1", "Greg", "Kops", "greg@thinktopography.com", "1", "/images/greg.jpg"])
147
+ expect(xlsx.sheet(0).row(3)).to eq(["2", "Megan", "Pugh", "megan@thinktopography.com", "2", "/images/megan.jpg"])
148
+ expect(xlsx.sheet(0).row(4)).to eq(["3", "Kath", "Tibbetts", "kath@thinktopography.com", "3", "/images/kath.jpg"])
149
+ expect(xlsx.sheet(0).row(5)).to eq(["4", "Armand", "Zerilli", "armand@thinktopography.com", "4", "/images/armand.jpg"])
150
+ File.unlink('tmp.xlsx')
151
+ end
152
+
153
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Backframe::Service::Result::Failure do
4
+
5
+ it 'reports failure' do
6
+ records = Backframe::Service::Result::Failure.new({})
7
+ expect(records.success?).to be false
8
+ end
9
+
10
+ it 'provides access to value object' do
11
+ records = Backframe::Service::Result::Failure.new(message: 'There was a problem', errors: {})
12
+ expect(records.message).to eq('There was a problem')
13
+ expect(records.errors).to eq({})
14
+ end
15
+
16
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Backframe::Service::Result::Success do
4
+
5
+ it 'reports success' do
6
+ records = Backframe::Service::Result::Success.new({})
7
+ expect(records.success?).to be true
8
+ end
9
+
10
+ it 'provides access to value object' do
11
+ records = Backframe::Service::Result::Success.new({ one: 1, two: 2, three: 3 })
12
+ expect(records.one).to eq(1)
13
+ expect(records.two).to eq(2)
14
+ expect(records.three).to eq(3)
15
+ end
16
+
17
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Backframe::Service do
4
+
5
+ it 'succeeds' do
6
+ result = Backframe::Fixtures::CreateContactService.perform({ first_name: 'Joe', last_name: 'Doe', email: 'john.doe@gmail.com' })
7
+ expect(result.success?).to be(true)
8
+ expect(result.contact.first_name).to eq('Joe')
9
+ end
10
+
11
+ it 'fails' do
12
+ result = Backframe::Fixtures::CreateContactService.perform({})
13
+ expect(result.success?).to be(false)
14
+ end
15
+
16
+ end
@@ -1,61 +1,24 @@
1
- ENV['RAILS_ENV'] = 'test'
1
+ require "codeclimate-test-reporter"
2
2
 
3
- require 'backframe'
4
-
5
- require 'rails'
6
- require 'action_controller/railtie'
7
- require 'active_model_serializers'
8
- require 'active_model_serializers/railtie'
9
- require 'active_record'
10
- require 'factory_girl'
11
- require 'kaminari'
12
- require 'rspec/rails'
13
-
14
- LOGGER = Logger.new('/dev/null')
15
-
16
- Rails.logger = LOGGER
17
- ActiveModelSerializers.logger = LOGGER
18
- ActiveRecord::Base.logger = LOGGER
3
+ CodeClimate::TestReporter.start
19
4
 
20
- DATABASE = {
21
- adapter: 'sqlite3',
22
- database: ':memory:'
23
- }
24
-
25
- ActiveRecord::Migration.verbose = false
26
- ActiveRecord::Base.establish_connection(DATABASE)
27
-
28
- module Backframe
29
- class Application < ::Rails::Application
30
- def self.find_root(from)
31
- Dir.pwd
32
- end
33
-
34
- config.eager_load = false
35
- config.secret_key_base = 'secret'
36
- end
37
- end
5
+ require 'fixtures/active_record'
6
+ require 'fixtures/models'
7
+ require 'fixtures/serializers'
8
+ require 'fixtures/queries'
9
+ require 'fixtures/services'
10
+ require 'fixtures/seeds'
11
+ require 'backframe'
12
+ require 'roo'
38
13
 
39
- Backframe::Application.initialize!
40
- Backframe::Mime.register_types
14
+ RSpec.configure do |config|
41
15
 
42
- module Helpers
43
- def json_response
44
- @json_response ||= JSON.parse(response.body).with_indifferent_access
16
+ config.expect_with :rspec do |expectations|
17
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
45
18
  end
46
19
 
47
- def serialize(value, opts = {})
48
- opts[:adapter] ||= Backframe::ActsAsAPI::Adapter
49
- ActiveModel::SerializableResource.new(value, opts).as_json
20
+ config.mock_with :rspec do |mocks|
21
+ mocks.verify_partial_doubles = true
50
22
  end
51
- end
52
23
 
53
- RSpec.configure do |config|
54
- config.include Helpers
55
- config.include Rails.application.routes.url_helpers
56
- config.include FactoryGirl::Syntax::Methods
57
-
58
- config.use_transactional_fixtures = true
59
24
  end
60
-
61
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
metadata CHANGED
@@ -1,46 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backframe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.49
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Kops
8
- - Scott Nelson
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2016-06-30 00:00:00.000000000 Z
11
+ date: 2016-10-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: write_xlsx
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: 0.83.0
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "~>"
26
- - !ruby/object:Gem::Version
27
- version: 0.83.0
28
- - !ruby/object:Gem::Dependency
29
- name: phony
14
+ name: rake
30
15
  requirement: !ruby/object:Gem::Requirement
31
16
  requirements:
32
- - - "~>"
17
+ - - ">="
33
18
  - !ruby/object:Gem::Version
34
- version: 2.15.21
35
- type: :runtime
19
+ version: '0'
20
+ type: :development
36
21
  prerelease: false
37
22
  version_requirements: !ruby/object:Gem::Requirement
38
23
  requirements:
39
- - - "~>"
24
+ - - ">="
40
25
  - !ruby/object:Gem::Version
41
- version: 2.15.21
26
+ version: '0'
42
27
  - !ruby/object:Gem::Dependency
43
- name: activerecord
28
+ name: activesupport
44
29
  requirement: !ruby/object:Gem::Requirement
45
30
  requirements:
46
31
  - - "~>"
@@ -54,102 +39,102 @@ dependencies:
54
39
  - !ruby/object:Gem::Version
55
40
  version: '4.0'
56
41
  - !ruby/object:Gem::Dependency
57
- name: activesupport
42
+ name: activerecord
58
43
  requirement: !ruby/object:Gem::Requirement
59
44
  requirements:
60
45
  - - "~>"
61
46
  - !ruby/object:Gem::Version
62
- version: '4.0'
47
+ version: '4.2'
63
48
  type: :runtime
64
49
  prerelease: false
65
50
  version_requirements: !ruby/object:Gem::Requirement
66
51
  requirements:
67
52
  - - "~>"
68
53
  - !ruby/object:Gem::Version
69
- version: '4.0'
54
+ version: '4.2'
70
55
  - !ruby/object:Gem::Dependency
71
56
  name: active_model_serializers
72
57
  requirement: !ruby/object:Gem::Requirement
73
58
  requirements:
74
- - - ">="
59
+ - - "~>"
75
60
  - !ruby/object:Gem::Version
76
- version: 0.10.0.rc4
61
+ version: 0.10.0
77
62
  type: :runtime
78
63
  prerelease: false
79
64
  version_requirements: !ruby/object:Gem::Requirement
80
65
  requirements:
81
- - - ">="
66
+ - - "~>"
82
67
  - !ruby/object:Gem::Version
83
- version: 0.10.0.rc4
68
+ version: 0.10.0
84
69
  - !ruby/object:Gem::Dependency
85
- name: kaminari
70
+ name: write_xlsx
86
71
  requirement: !ruby/object:Gem::Requirement
87
72
  requirements:
88
73
  - - "~>"
89
74
  - !ruby/object:Gem::Version
90
- version: '0.16'
75
+ version: 0.83.0
91
76
  type: :runtime
92
77
  prerelease: false
93
78
  version_requirements: !ruby/object:Gem::Requirement
94
79
  requirements:
95
80
  - - "~>"
96
81
  - !ruby/object:Gem::Version
97
- version: '0.16'
98
- description: Rails bindings for Reframe
99
- email: hello@thinktopography.com
82
+ version: 0.83.0
83
+ description: A collection of core objects for writing testable APIs
84
+ email: greg@thinktopography.com
100
85
  executables: []
101
86
  extensions: []
102
87
  extra_rdoc_files: []
103
88
  files:
89
+ - ".codeclimate.yml"
104
90
  - ".gitignore"
105
- - ".idea/vcs.xml"
91
+ - ".rspec"
92
+ - ".rubocop.yml"
106
93
  - Gemfile
107
94
  - README.md
108
95
  - Rakefile
109
96
  - backframe.gemspec
110
97
  - circle.yml
111
98
  - lib/backframe.rb
112
- - lib/backframe/actioncontroller/acts_as_activation.rb
113
- - lib/backframe/actioncontroller/acts_as_api.rb
114
- - lib/backframe/actioncontroller/acts_as_api/adapter.rb
115
- - lib/backframe/actioncontroller/acts_as_api/errors.rb
116
- - lib/backframe/actioncontroller/acts_as_api/headers.rb
117
- - lib/backframe/actioncontroller/acts_as_api/page.rb
118
- - lib/backframe/actioncontroller/acts_as_reset.rb
119
- - lib/backframe/actioncontroller/acts_as_resource.rb
120
- - lib/backframe/actioncontroller/acts_as_resource/actions.rb
121
- - lib/backframe/actioncontroller/acts_as_session.rb
122
- - lib/backframe/activerecord/acts_as_activable.rb
123
- - lib/backframe/activerecord/acts_as_distinct.rb
124
- - lib/backframe/activerecord/acts_as_enum.rb
125
- - lib/backframe/activerecord/acts_as_orderable.rb
126
- - lib/backframe/activerecord/acts_as_percent.rb
127
- - lib/backframe/activerecord/acts_as_phone.rb
128
- - lib/backframe/activerecord/acts_as_user.rb
129
- - lib/backframe/activerecord/default_values.rb
130
- - lib/backframe/activerecord/filter_sort.rb
131
- - lib/backframe/activerecord/migration.rb
132
- - lib/backframe/image_cache/image_cache.rb
133
- - lib/backframe/image_cache/lib/asset.rb
134
- - lib/backframe/image_cache/lib/cache.rb
135
- - lib/backframe/image_cache/lib/conversions.rb
136
99
  - lib/backframe/mime.rb
137
- - lib/backframe/models/activation.rb
138
- - lib/backframe/models/activity.rb
139
- - lib/backframe/models/reset.rb
140
- - lib/backframe/models/story.rb
100
+ - lib/backframe/query.rb
101
+ - lib/backframe/query/sort.rb
141
102
  - lib/backframe/railtie.rb
142
- - lib/backframe/serializers/activity_serializer.rb
103
+ - lib/backframe/response.rb
104
+ - lib/backframe/response/adapter/csv.rb
105
+ - lib/backframe/response/adapter/json.rb
106
+ - lib/backframe/response/adapter/xlsx.rb
107
+ - lib/backframe/response/adapter/xml.rb
108
+ - lib/backframe/response/collection.rb
109
+ - lib/backframe/response/fields.rb
110
+ - lib/backframe/response/record.rb
111
+ - lib/backframe/service.rb
112
+ - lib/backframe/service/result/base.rb
113
+ - lib/backframe/service/result/failure.rb
114
+ - lib/backframe/service/result/success.rb
143
115
  - lib/backframe/version.rb
144
- - spec/backframe/acts_as_api_spec.rb
145
- - spec/backframe/acts_as_resource_spec.rb
116
+ - spec/fixtures/active_record.rb
117
+ - spec/fixtures/models.rb
118
+ - spec/fixtures/queries.rb
119
+ - spec/fixtures/seeds.rb
120
+ - spec/fixtures/serializers.rb
121
+ - spec/fixtures/services.rb
122
+ - spec/query/sort_spec.rb
123
+ - spec/query_spec.rb
124
+ - spec/response/adapter/csv_spec.rb
125
+ - spec/response/adapter/json_spec.rb
126
+ - spec/response/adapter/xlsx_spec.rb
127
+ - spec/response/adapter/xml_spec.rb
128
+ - spec/response/fields_spec.rb
129
+ - spec/response/record_spec.rb
130
+ - spec/response_spec.rb
131
+ - spec/service/result/failure_spec.rb
132
+ - spec/service/result/sucess_spec.rb
133
+ - spec/service_spec.rb
146
134
  - spec/spec_helper.rb
147
- - spec/support/example.rb
148
- - spec/support/example_factory.rb
149
- - spec/support/example_serializer.rb
150
- - spec/support/schema.rb
151
- homepage:
152
- licenses: []
135
+ homepage: https://github.com/thinktopography/backframe
136
+ licenses:
137
+ - MIT
153
138
  metadata: {}
154
139
  post_install_message:
155
140
  rdoc_options: []
@@ -170,12 +155,24 @@ rubyforge_project:
170
155
  rubygems_version: 2.4.8
171
156
  signing_key:
172
157
  specification_version: 4
173
- summary: Backframe
158
+ summary: backframe
174
159
  test_files:
175
- - spec/backframe/acts_as_api_spec.rb
176
- - spec/backframe/acts_as_resource_spec.rb
160
+ - spec/fixtures/active_record.rb
161
+ - spec/fixtures/models.rb
162
+ - spec/fixtures/queries.rb
163
+ - spec/fixtures/seeds.rb
164
+ - spec/fixtures/serializers.rb
165
+ - spec/fixtures/services.rb
166
+ - spec/query/sort_spec.rb
167
+ - spec/query_spec.rb
168
+ - spec/response/adapter/csv_spec.rb
169
+ - spec/response/adapter/json_spec.rb
170
+ - spec/response/adapter/xlsx_spec.rb
171
+ - spec/response/adapter/xml_spec.rb
172
+ - spec/response/fields_spec.rb
173
+ - spec/response/record_spec.rb
174
+ - spec/response_spec.rb
175
+ - spec/service/result/failure_spec.rb
176
+ - spec/service/result/sucess_spec.rb
177
+ - spec/service_spec.rb
177
178
  - spec/spec_helper.rb
178
- - spec/support/example.rb
179
- - spec/support/example_factory.rb
180
- - spec/support/example_serializer.rb
181
- - spec/support/schema.rb