socialfred 0.1.0 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e085d474bfac2bac95646e7507665360669aee8e48dd282ee128cb3421f813ef
4
- data.tar.gz: 21e8334d24072e40e49dc8e01d2d5bf7dc7ad03ea1df72a31404199a938f39a7
3
+ metadata.gz: bf0f7c212bcfde1137b710b1555eae73ac0fd25a6551d98401820693456576d0
4
+ data.tar.gz: eae0c693bcbc04d4ba0d92914c5bfb8662194932435aea0b64a6118a42660a51
5
5
  SHA512:
6
- metadata.gz: cb9322c4e1589f15a3c2fc58d994b7b84c483fb81bf9de859f02bf2dc8fc5bbbb6313b33bbe540de6e00942c54bbaf2505f5533bdbd6ab73cafcf370dc0a35b4
7
- data.tar.gz: 25d458e2733bc0e00206f809c1de24904f3e4cf9bfbbf575be43fcdd36f2138640e5303e9fef51286ffbc68bb8320da52238ecbb2468a75f448ed662b372df25
6
+ metadata.gz: e15d2266d35b8eff226eecfb951ec306a21ba7715abeab6838fa46778eaa5d59f1c65b0456fb7ceb3f003f22034b365c2d7c4d678a3a4d8f76c9c62e87296ba2
7
+ data.tar.gz: 4060f94ec07eb8fa953442dc76e12157afa1977c8d87ac76c0a58f5818c3e591ee343a6ca8a6c4421a591b064583f5413ee8afd7fb8ccf543c14ebeda9d252f0
@@ -0,0 +1,4 @@
1
+ plugins:
2
+ rubocop:
3
+ enabled: true
4
+ channel: rubocop-0-74
@@ -0,0 +1,44 @@
1
+ require:
2
+ - rubocop-performance
3
+ - rubocop-rspec
4
+
5
+ Style/Documentation:
6
+ Enabled: false
7
+
8
+ Metrics/LineLength:
9
+ Max: 120
10
+
11
+ Metrics/BlockLength:
12
+ Exclude:
13
+ - 'spec/**/*'
14
+ - '**/*.gemspec'
15
+
16
+ ### DEFAULT RULES
17
+ Layout/EmptyLinesAroundAttributeAccessor:
18
+ Enabled: true
19
+ Layout/SpaceAroundMethodCallOperator:
20
+ Enabled: true
21
+ Lint/DeprecatedOpenSSLConstant:
22
+ Enabled: true
23
+ Lint/MixedRegexpCaptureTypes:
24
+ Enabled: true
25
+ Lint/RaiseException:
26
+ Enabled: true
27
+ Lint/StructNewOverride:
28
+ Enabled: true
29
+ Style/ExponentialNotation:
30
+ Enabled: true
31
+ Style/HashEachMethods:
32
+ Enabled: true
33
+ Style/HashTransformKeys:
34
+ Enabled: true
35
+ Style/HashTransformValues:
36
+ Enabled: true
37
+ Style/RedundantFetchBlock:
38
+ Enabled: true
39
+ Style/RedundantRegexpCharacterClass:
40
+ Enabled: true
41
+ Style/RedundantRegexpEscape:
42
+ Enabled: true
43
+ Style/SlicingWithRange:
44
+ Enabled: true
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in socialfred.gemspec
4
6
  gemspec
@@ -0,0 +1,70 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ socialfred (1.0.0)
5
+ faraday (>= 0.9.0)
6
+ json (~> 2.2)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ ast (2.4.1)
12
+ diff-lcs (1.3)
13
+ faraday (1.0.1)
14
+ multipart-post (>= 1.2, < 3)
15
+ json (2.3.1)
16
+ multipart-post (2.1.1)
17
+ parallel (1.19.2)
18
+ parser (2.7.1.4)
19
+ ast (~> 2.4.1)
20
+ rainbow (3.0.0)
21
+ rake (13.0.1)
22
+ regexp_parser (1.7.1)
23
+ rexml (3.2.4)
24
+ rspec (3.9.0)
25
+ rspec-core (~> 3.9.0)
26
+ rspec-expectations (~> 3.9.0)
27
+ rspec-mocks (~> 3.9.0)
28
+ rspec-core (3.9.0)
29
+ rspec-support (~> 3.9.0)
30
+ rspec-expectations (3.9.0)
31
+ diff-lcs (>= 1.2.0, < 2.0)
32
+ rspec-support (~> 3.9.0)
33
+ rspec-mocks (3.9.0)
34
+ diff-lcs (>= 1.2.0, < 2.0)
35
+ rspec-support (~> 3.9.0)
36
+ rspec-support (3.9.0)
37
+ rubocop (0.86.0)
38
+ parallel (~> 1.10)
39
+ parser (>= 2.7.0.1)
40
+ rainbow (>= 2.2.2, < 4.0)
41
+ regexp_parser (>= 1.7)
42
+ rexml
43
+ rubocop-ast (>= 0.0.3, < 1.0)
44
+ ruby-progressbar (~> 1.7)
45
+ unicode-display_width (>= 1.4.0, < 2.0)
46
+ rubocop-ast (0.1.0)
47
+ parser (>= 2.7.0.1)
48
+ rubocop-performance (1.6.1)
49
+ rubocop (>= 0.71.0)
50
+ rubocop-rspec (1.40.0)
51
+ rubocop (>= 0.68.1)
52
+ ruby-progressbar (1.10.1)
53
+ unicode-display_width (1.7.0)
54
+ vcr (5.0.0)
55
+
56
+ PLATFORMS
57
+ ruby
58
+
59
+ DEPENDENCIES
60
+ bundler (~> 2.0)
61
+ rake (~> 13.0)
62
+ rspec (~> 3.0)
63
+ rubocop (~> 0.86.0)
64
+ rubocop-performance (~> 1.6.1)
65
+ rubocop-rspec (~> 1.40.0)
66
+ socialfred!
67
+ vcr (~> 5.0)
68
+
69
+ BUNDLED WITH
70
+ 2.1.2
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Socialfred
1
+ # Socialfred [![Build Status](https://travis-ci.org/SocialFred/socialfred.svg?branch=master)](https://travis-ci.org/SocialFred/socialfred) [![Maintainability](https://api.codeclimate.com/v1/badges/2cd817600f03aeee7c79/maintainability)](https://codeclimate.com/github/SocialFred/socialfred/maintainability)
2
2
 
3
3
  Social Fred API Client
4
4
 
@@ -20,7 +20,169 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions
23
+ ### API Client
24
+
25
+ ```ruby
26
+ api = Socialfred::Api.new(api_key)
27
+ ```
28
+
29
+ ### Social Posts
30
+
31
+ #### Create a social post
32
+
33
+ ```ruby
34
+ image1 = {data: Base64.encode64(image.download), filename: 'image.jpeg', content_type: 'image/jpeg'}
35
+ # ...
36
+ api.publications.create(
37
+ publish_at: Time.now,
38
+ text: "example text",
39
+ images: [image1, image2],
40
+ options: {
41
+ telegram: {
42
+ alternative_text: "Telegram Alternative Text",
43
+ reply_markup: {
44
+ inline_keyboard: [
45
+ [{text: 'Button', url: 'button_url'}]
46
+ ]
47
+ }
48
+ }
49
+ }
50
+ )
51
+ ```
52
+
53
+ Response:
54
+
55
+ ```ruby
56
+ {
57
+ 'data' => {
58
+ 'id' => '99',
59
+ 'type' => 'publication',
60
+ 'attributes' => {
61
+ 'text' => 'example text',
62
+ 'created_at' => '2019-10-30T23:54:12.147+01:00',
63
+ 'updated_at' => '2019-10-30T23:54:12.192+01:00',
64
+ 'status' => 'new',
65
+ 'published_at' => '2045-06-01T12:05:00.000+01:00'
66
+ }
67
+ }
68
+ }
69
+ ```
70
+
71
+ #### Update a social post
72
+
73
+ ```ruby
74
+ api.publications.update(99, text: 'another text')
75
+ ```
76
+
77
+ Response:
78
+
79
+ ```ruby
80
+ {
81
+ 'data' => {
82
+ 'id' => '99',
83
+ 'type' => 'publication',
84
+ 'attributes' => {
85
+ 'text' => 'another text',
86
+ 'created_at' => '2019-10-30T23:54:12.147+01:00',
87
+ 'updated_at' => '2019-10-31T00:01:58.128+01:00',
88
+ 'status' => 'new',
89
+ 'published_at' => '2045-06-01T12:05:00.000+01:00'
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ #### Destroy a social post
96
+
97
+ ```ruby
98
+ api.publications.destroy(99)
99
+ ```
100
+
101
+ Response:
102
+
103
+ ```ruby
104
+ {
105
+ 'data' => {
106
+ 'id' => '99',
107
+ 'type' => 'publication',
108
+ 'attributes' => {
109
+ 'text' => 'another text',
110
+ 'created_at' => '2019-10-30T23:54:12.147+01:00',
111
+ 'updated_at' => '2019-10-31T00:03:30.973+01:00',
112
+ 'status' => 'to_be_deleted',
113
+ 'published_at' => '2045-06-01T12:05:00.000+01:00'
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ #### List all social posts
120
+
121
+ ```ruby
122
+ api.publications.all(page: 1, per_page: 10)
123
+ ```
124
+
125
+ Response:
126
+
127
+ ```ruby
128
+ {
129
+ 'data' => [
130
+ {
131
+ 'id' => '98',
132
+ 'type' => 'publication',
133
+ 'attributes' => {
134
+ 'text' => 'test1',
135
+ 'created_at' => '2019-10-30T20:54:14.960+01:00',
136
+ 'updated_at' => '2019-10-30T20:54:15.011+01:00',
137
+ 'status' => 'new',
138
+ 'published_at' => '2019-10-30T20:59:14.000+01:00'
139
+ }
140
+ },
141
+ # ...
142
+ {
143
+ 'id' => '95',
144
+ 'type' => 'publication',
145
+ 'attributes' => {
146
+ 'text' => 'test2',
147
+ 'created_at' => '2019-10-29T22:46:35.857+01:00',
148
+ 'updated_at' => '2019-10-29T23:46:41.645+01:00',
149
+ 'status' => 'published',
150
+ 'published_at' => '2019-10-29T23:46:35.000+01:00'
151
+ }
152
+ }
153
+ ],
154
+ 'links' => {
155
+ 'first' => 'https://api.socialfred.com/publications?page=1&per_page=10',
156
+ 'last' => 'https://api.socialfred.com/publications?page=26&per_page=10',
157
+ 'next' => 'https://api.socialfred.com/publications?page=2&per_page=10'
158
+ },
159
+ 'meta' => { 'total' => 51 }
160
+ }
161
+ ```
162
+
163
+ #### Find one social post
164
+
165
+ ```ruby
166
+ api.publications.find(95)
167
+ ```
168
+
169
+ Response:
170
+
171
+ ```ruby
172
+ {
173
+ 'data' => {
174
+ 'id' => '95',
175
+ 'type' => 'publication',
176
+ 'attributes' => {
177
+ 'text' => 'test2',
178
+ 'created_at' => '2019-10-29T22:46:35.857+01:00',
179
+ 'updated_at' => '2019-10-29T23:46:41.645+01:00',
180
+ 'status' => 'published',
181
+ 'published_at' => '2019-10-29T23:46:35.000+01:00'
182
+ }
183
+ }
184
+ }
185
+ ```
24
186
 
25
187
  ## Development
26
188
 
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "socialfred"
4
+ require 'bundler/setup'
5
+ require 'socialfred'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "socialfred"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
@@ -1,4 +1,10 @@
1
- require "socialfred/version"
1
+ # frozen_string_literal: true
2
+
3
+ require 'socialfred/version'
4
+
5
+ require 'socialfred/api'
6
+
7
+ require 'json'
2
8
 
3
9
  module Socialfred
4
10
  class Error < StandardError; end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'socialfred/publications'
4
+
5
+ module Socialfred
6
+ class Api
7
+ attr_reader :api_key, :api_url
8
+
9
+ API_URL = 'https://api.socialfred.com/'
10
+
11
+ def initialize(api_key, api_url: API_URL)
12
+ @api_key = api_key
13
+ @api_url = api_url
14
+ end
15
+
16
+ def publications
17
+ @publications ||= Publications.new(api_key, api_url: api_url)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'socialfred/requester'
4
+ require 'time'
5
+
6
+ module Socialfred
7
+ class Publications
8
+ attr_reader :api_key, :api_url
9
+
10
+ ENDPOINT = 'publications'
11
+
12
+ def initialize(api_key, api_url:)
13
+ @api_key = api_key
14
+ @api_url = api_url
15
+ end
16
+
17
+ def all(page: 1, per_page: 10)
18
+ response = requester.get(ENDPOINT, page: page, per_page: per_page)
19
+
20
+ raise Socialfred::Error unless response.status == 200
21
+
22
+ JSON.parse(response.body)
23
+ end
24
+
25
+ def find(publication_id)
26
+ response = requester.get(ENDPOINT + "/#{publication_id}")
27
+
28
+ raise Socialfred::Error unless response.status == 200
29
+
30
+ JSON.parse(response.body)
31
+ end
32
+
33
+ def create(publish_at: nil, text:, images: nil, options: nil)
34
+ check_images(images) if images
35
+
36
+ publish_at = Time.parse(publish_at.to_s).iso8601 if publish_at
37
+ parameters = { publication: { published_at: publish_at, text: text, images: images, options: options }.compact }
38
+ response = requester.post(ENDPOINT, parameters)
39
+
40
+ raise Socialfred::Error, response.body unless response.status == 200
41
+
42
+ JSON.parse(response.body)
43
+ end
44
+
45
+ def update(publication_id, publish_at: nil, text: nil, images: nil, options: nil)
46
+ check_images(images) if images
47
+
48
+ publish_at = Time.parse(publish_at.to_s).iso8601 if publish_at
49
+ parameters = { publication: { published_at: publish_at, text: text, images: images, options: options }.compact }
50
+ response = requester.put(ENDPOINT + "/#{publication_id}", parameters)
51
+
52
+ raise Socialfred::Error unless response.status == 200
53
+
54
+ JSON.parse(response.body)
55
+ end
56
+
57
+ def destroy(publication_id)
58
+ response = requester.delete(ENDPOINT + "/#{publication_id}")
59
+
60
+ raise Socialfred::Error unless response.status == 200
61
+
62
+ JSON.parse(response.body)
63
+ end
64
+
65
+ private
66
+
67
+ def check_images(images)
68
+ raise(Socialfred::Error, 'images must be array') unless images.is_a?(Array)
69
+ return if images.all? { |image| image.key?(:data) && image.key?(:filename) && image.key?(:content_type) }
70
+
71
+ raise(
72
+ Socialfred::Error,
73
+ 'images must contain the following attributes: data (base64 encoded image), filename and content_type'
74
+ )
75
+ end
76
+
77
+ def requester
78
+ @requester ||= Requester.new(api_key, api_url)
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ module Socialfred
6
+ class Requester
7
+ attr_reader :api_key, :api_url
8
+
9
+ CONTENT_TYPE = 'application/json'
10
+
11
+ def initialize(api_key, api_url)
12
+ @api_key = api_key
13
+ @api_url = api_url
14
+ end
15
+
16
+ def get(endpoint, parameters = nil)
17
+ conn.get(endpoint, parameters) do |req|
18
+ req.headers[:content_type] = CONTENT_TYPE
19
+ end
20
+ end
21
+
22
+ def post(endpoint, parameters = nil)
23
+ conn.post(endpoint) do |req|
24
+ req.headers[:content_type] = CONTENT_TYPE
25
+ req.body = JSON.generate(parameters)
26
+ end
27
+ end
28
+
29
+ def put(endpoint, parameters = nil)
30
+ conn.put(endpoint) do |req|
31
+ req.headers[:content_type] = CONTENT_TYPE
32
+ req.body = JSON.generate(parameters)
33
+ end
34
+ end
35
+
36
+ def delete(endpoint)
37
+ conn.delete(endpoint) do |req|
38
+ req.headers[:content_type] = CONTENT_TYPE
39
+ end
40
+ end
41
+
42
+ private
43
+
44
+ def conn
45
+ @conn ||= Faraday.new(url: api_url) do |faraday|
46
+ faraday.adapter Faraday.default_adapter
47
+ faraday.headers['Api-Key'] = api_key
48
+ end
49
+ end
50
+ end
51
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Socialfred
2
- VERSION = "0.1.0"
4
+ VERSION = '1.0.0'
3
5
  end
@@ -1,32 +1,41 @@
1
- lib = File.expand_path("lib", __dir__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "socialfred/version"
5
+ require 'socialfred/version'
4
6
 
5
7
  Gem::Specification.new do |spec|
6
- spec.name = "socialfred"
8
+ spec.name = 'socialfred'
7
9
  spec.version = Socialfred::VERSION
8
- spec.authors = ["Alexey Krasnoperov"]
9
- spec.email = ["info@socialfred.com"]
10
+ spec.authors = ['Alexey Krasnoperov']
11
+ spec.email = ['info@socialfred.com']
10
12
 
11
- spec.summary = %q{Social Fred API Client}
12
- spec.description = %q{Social Fred API Client: schedule social posts to multiple social networks}
13
- spec.homepage = "https://github.com/SocialFred/socialfred"
14
- spec.license = "MIT"
13
+ spec.summary = 'Social Fred API Client'
14
+ spec.description = 'Social Fred API Client: schedule social posts to multiple social networks'
15
+ spec.homepage = 'https://github.com/socialfred/socialfred'
16
+ spec.license = 'MIT'
15
17
 
16
- spec.metadata["homepage_uri"] = spec.homepage
17
- spec.metadata["source_code_uri"] = "https://github.com/SocialFred/socialfred"
18
- spec.metadata["changelog_uri"] = "https://github.com/SocialFred/socialfred"
18
+ spec.metadata['homepage_uri'] = spec.homepage
19
+ spec.metadata['source_code_uri'] = 'https://github.com/socialfred/socialfred'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/socialfred/socialfred'
19
21
 
20
22
  # Specify which files should be added to the gem when it is released.
21
23
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
22
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
25
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
26
  end
25
- spec.bindir = "exe"
27
+ spec.bindir = 'exe'
26
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
- spec.require_paths = ["lib"]
29
+ spec.require_paths = ['lib']
30
+
31
+ spec.add_runtime_dependency 'faraday', '>= 0.9.0'
32
+ spec.add_runtime_dependency 'json', '~> 2.2'
28
33
 
29
- spec.add_development_dependency "bundler", "~> 2.0"
30
- spec.add_development_dependency "rake", "~> 10.0"
31
- spec.add_development_dependency "rspec", "~> 3.0"
34
+ spec.add_development_dependency 'bundler', '~> 2.0'
35
+ spec.add_development_dependency 'rake', '~> 13.0'
36
+ spec.add_development_dependency 'rspec', '~> 3.0'
37
+ spec.add_development_dependency 'rubocop', '~> 0.86.0'
38
+ spec.add_development_dependency 'rubocop-performance', '~> 1.6.1'
39
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.40.0'
40
+ spec.add_development_dependency 'vcr', '~> 5.0'
32
41
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: socialfred
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Krasnoperov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-27 00:00:00.000000000 Z
11
+ date: 2020-06-30 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.9.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.2'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -30,14 +58,14 @@ dependencies:
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '10.0'
61
+ version: '13.0'
34
62
  type: :development
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '10.0'
68
+ version: '13.0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: rspec
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +80,62 @@ dependencies:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.86.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.86.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop-performance
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.6.1
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.6.1
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 1.40.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.40.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: vcr
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '5.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '5.0'
55
139
  description: 'Social Fred API Client: schedule social posts to multiple social networks'
56
140
  email:
57
141
  - info@socialfred.com
@@ -59,25 +143,31 @@ executables: []
59
143
  extensions: []
60
144
  extra_rdoc_files: []
61
145
  files:
146
+ - ".codeclimate.yml"
62
147
  - ".gitignore"
63
148
  - ".rspec"
149
+ - ".rubocop.yml"
64
150
  - ".travis.yml"
65
151
  - Gemfile
152
+ - Gemfile.lock
66
153
  - LICENSE.txt
67
154
  - README.md
68
155
  - Rakefile
69
156
  - bin/console
70
157
  - bin/setup
71
158
  - lib/socialfred.rb
159
+ - lib/socialfred/api.rb
160
+ - lib/socialfred/publications.rb
161
+ - lib/socialfred/requester.rb
72
162
  - lib/socialfred/version.rb
73
163
  - socialfred.gemspec
74
- homepage: https://github.com/SocialFred/socialfred
164
+ homepage: https://github.com/socialfred/socialfred
75
165
  licenses:
76
166
  - MIT
77
167
  metadata:
78
- homepage_uri: https://github.com/SocialFred/socialfred
79
- source_code_uri: https://github.com/SocialFred/socialfred
80
- changelog_uri: https://github.com/SocialFred/socialfred
168
+ homepage_uri: https://github.com/socialfred/socialfred
169
+ source_code_uri: https://github.com/socialfred/socialfred
170
+ changelog_uri: https://github.com/socialfred/socialfred
81
171
  post_install_message:
82
172
  rdoc_options: []
83
173
  require_paths:
@@ -93,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
183
  - !ruby/object:Gem::Version
94
184
  version: '0'
95
185
  requirements: []
96
- rubygems_version: 3.0.3
186
+ rubygems_version: 3.1.2
97
187
  signing_key:
98
188
  specification_version: 4
99
189
  summary: Social Fred API Client