backframe 0.0.49 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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