likeno 0.0.1.rc

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7ef9a80e1d55bc4f8beff12ce4374c3d82b504a8
4
+ data.tar.gz: ba88b1423ef0bf7d3bb3c500ff3a1719fa553dfc
5
+ SHA512:
6
+ metadata.gz: 8eddd05258a3aa3cb471167e702363acaabf4db0040951678ac1f2a17acd239bdf8834b0eb40327ae09cfa6674c4a0cb133037d1331b4d5cc8780e8452c06e3b
7
+ data.tar.gz: 2ffa02133f413f5286a695dd9c93057ef750a9fa0da9ab57b3a8c7adeef37f2c97da7e63cb145ae3d47bbed480302fb5ef0be45192dd550713f1bd28d3395c99
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format documentation
2
+ --color
data/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ likeno
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.3
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.3
4
+ before_install: gem install bundler -v 1.10.6
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in likeno.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # Likeno
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/likeno`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'likeno'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install likeno
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/likeno.
36
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "likeno"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,19 @@
1
+ module Likeno
2
+ module Errors
3
+ class RecordInvalid < Standard
4
+ attr_reader :record
5
+
6
+ def initialize(record = nil)
7
+ if record
8
+ @record = record
9
+ errors = @record.likeno_errors.join(', ')
10
+ message = "Record invalid: #{errors}"
11
+ else
12
+ message = 'Record invalid'
13
+ end
14
+
15
+ super(message)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,6 @@
1
+ module Likeno
2
+ module Errors
3
+ class RecordNotFound < RequestError
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ module Likeno
2
+ module Errors
3
+ class RequestError < Standard
4
+ attr_reader :response
5
+
6
+ def initialize(attributes = {})
7
+ @response = attributes[:response]
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ module Likeno
2
+ module Errors
3
+ class Standard < StandardError
4
+ end
5
+ end
6
+ end
data/lib/errors.rb ADDED
@@ -0,0 +1,20 @@
1
+ # This file is part of KalibroClient
2
+ # Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
3
+ #
4
+ # This program is free software: you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation, either version 3 of the License, or
7
+ # (at your option) any later version.
8
+ #
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details.
13
+
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ require 'errors/standard'
18
+ require 'errors/request_error'
19
+ require 'errors/record_not_found'
20
+ require 'errors/record_invalid'
@@ -0,0 +1,25 @@
1
+ # This file is part of KalibroClient
2
+ # Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
3
+ #
4
+ # This program is free software: you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation, either version 3 of the License, or
7
+ # (at your option) any later version.
8
+ #
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details.
13
+
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ module AggregationOptions
18
+ #TODO: internationalization
19
+ def all_with_label
20
+ [
21
+ ["Mean","mean"], ["Median", "MEDIAN"], ["Maximum", "max"], ["Minimum", "min"],
22
+ ["Count", "COUNT"], ["Standard Deviation", "STANDARD_DEVIATION"]
23
+ ]
24
+ end
25
+ end
@@ -0,0 +1,64 @@
1
+ # This file is part of KalibroClient
2
+ # Copyright (C) 2013 it's respectives authors (please see the AUTHORS file)
3
+ #
4
+ # This program is free software: you can redistribute it and/or modify
5
+ # it under the terms of the GNU General Public License as published by
6
+ # the Free Software Foundation, either version 3 of the License, or
7
+ # (at your option) any later version.
8
+ #
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ # GNU General Public License for more details.
13
+
14
+ # You should have received a copy of the GNU General Public License
15
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ module CRUDRequestParameters
18
+ def save_params
19
+ { instance_entity_name.underscore.to_sym => to_hash }
20
+ end
21
+
22
+ def save_action
23
+ ''
24
+ end
25
+
26
+ def save_prefix
27
+ ''
28
+ end
29
+
30
+ def destroy_action
31
+ ':id'
32
+ end
33
+ alias_method :update_action, :destroy_action
34
+
35
+ def destroy_params
36
+ { id: id }
37
+ end
38
+
39
+ def destroy_prefix
40
+ ''
41
+ end
42
+
43
+ def update_params
44
+ { instance_entity_name.underscore.to_sym => to_hash, :id => id }
45
+ end
46
+
47
+ def update_prefix
48
+ ''
49
+ end
50
+
51
+ module ClassMethods
52
+ def exists_action
53
+ ':id/exists'
54
+ end
55
+
56
+ def id_params(id)
57
+ { id: id }
58
+ end
59
+
60
+ def find_action
61
+ ':id'
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,11 @@
1
+ module DateAttributes
2
+ attr_reader :created_at, :updated_at
3
+
4
+ def created_at=(value)
5
+ @created_at = DateTime.parse(value)
6
+ end
7
+
8
+ def updated_at=(value)
9
+ @updated_at = DateTime.parse(value)
10
+ end
11
+ end
@@ -0,0 +1,25 @@
1
+ require 'date'
2
+
3
+ module HashConverters
4
+ def date_time_to_s(date)
5
+ milliseconds = '.' + (date.sec_fraction * 60 * 60 * 24 * 1000).to_s
6
+ date.to_s[0..18] + milliseconds + date.to_s[19..-1]
7
+ end
8
+
9
+ def convert_to_hash(value)
10
+ return value if value.nil?
11
+ return value.collect { |element| convert_to_hash(element) } if value.is_a? Array
12
+ return value.to_hash if value.is_a?(Likeno::Entity)
13
+ return date_time_to_s(value) if value.is_a? DateTime
14
+ return 'INF' if value.is_a?(Float) && value.infinite? == 1
15
+ return '-INF' if value.is_a?(Float) && value.infinite? == -1
16
+ value.to_s
17
+ end
18
+
19
+ def field_to_hash(field)
20
+ hash = {}
21
+ field_value = send(field)
22
+ hash[field] = convert_to_hash(field_value) unless field_value.nil?
23
+ hash
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ module RangeMethods
2
+ def range
3
+ @range ||= Range.new(Float(beginning), Float(self.end), exclude_end: true)
4
+ end
5
+
6
+ def beginning=(value)
7
+ @beginning = (value == "-INF") ? -Float::INFINITY : value
8
+ end
9
+
10
+ def end=(value)
11
+ @end = (value == "INF") ? Float::INFINITY : value
12
+ end
13
+ end
14
+
@@ -0,0 +1,160 @@
1
+ require 'active_support/inflector'
2
+ require 'faraday_middleware'
3
+ require 'errors'
4
+ require 'helpers/hash_converters'
5
+ require 'helpers/crud_request_parameters'
6
+ require 'likeno/request_methods'
7
+
8
+ module Likeno
9
+ class Entity
10
+ attr_accessor :likeno_errors, :persisted
11
+
12
+ def initialize(attributes = {}, persisted = false)
13
+ attributes.each { |field, value| send("#{field}=", value) if self.class.valid?(field) }
14
+ @likeno_errors = []
15
+ @persisted = persisted
16
+ end
17
+
18
+ def to_hash(options = {})
19
+ hash = {}
20
+ excepts = options[:except].nil? ? [] : options[:except]
21
+ excepts << 'likeno_errors'
22
+ excepts << 'persisted'
23
+ fields.each { |field| field_to_hash(field).merge!(hash) unless excepts.include? field }
24
+ hash
25
+ end
26
+
27
+ extend Likeno::RequestMethods
28
+
29
+ def self.to_object(value)
30
+ value.is_a?(Hash) ? new(value, true) : value
31
+ end
32
+
33
+ def self.to_objects_array(value)
34
+ array = value.is_a?(Array) ? value : [value]
35
+ array.map { |element| to_object element }
36
+ end
37
+
38
+ def save
39
+ if persisted?
40
+ update
41
+ else
42
+ without_request_error? do
43
+ response = self.class.request(save_action, save_params, :post, save_prefix)
44
+
45
+ self.id = response[instance_entity_name]["id"]
46
+ self.created_at = response[instance_entity_name]["created_at"] unless response[instance_entity_name]["created_at"].nil?
47
+ self.updated_at = response[instance_entity_name]["updated_at"] unless response[instance_entity_name]["updated_at"].nil?
48
+ @persisted = true
49
+ end
50
+ end
51
+ end
52
+
53
+ def save!
54
+ return true if save
55
+ raise Likeno::Errors::RecordInvalid.new(self)
56
+ end
57
+
58
+ def self.create(attributes = {})
59
+ new_model = new attributes
60
+ new_model.save
61
+ new_model
62
+ end
63
+
64
+ def update(attributes = {})
65
+ attributes.each { |field, value| send("#{field}=", value) if self.class.valid?(field) }
66
+ without_request_error? do
67
+ self.class.request(update_action, update_params, :put, update_prefix)
68
+ end
69
+ end
70
+
71
+ def ==(other)
72
+ return false unless self.class == other.class
73
+ variable_names.each do |name|
74
+ next if %w(created_at updated_at persisted).include? name
75
+ return false unless send("#{name}") == other.send("#{name}")
76
+ end
77
+ true
78
+ end
79
+
80
+ def self.exists?(id)
81
+ request(exists_action, id_params(id), :get)['exists']
82
+ end
83
+
84
+ def self.find(id)
85
+ response = request(find_action, id_params(id), :get)
86
+ new(response[entity_name], true)
87
+ end
88
+
89
+ def destroy
90
+ without_request_error? do
91
+ response = self.class.request(destroy_action, destroy_params, :delete, destroy_prefix)
92
+ @persisted = false
93
+ end
94
+ end
95
+
96
+ def self.create_objects_array_from_hash (response)
97
+ create_array_from_hash(response[entity_name.pluralize]).map { |hash| new(hash, true) }
98
+ end
99
+
100
+ def self.create_array_from_hash (response)
101
+ response = [] if response.nil?
102
+ response = [response] if response.is_a?(Hash)
103
+ response
104
+ end
105
+
106
+ alias_method :persisted?, :persisted
107
+
108
+ def instance_entity_name
109
+ self.class.entity_name
110
+ end
111
+
112
+ protected
113
+
114
+ def instance_variable_names
115
+ instance_variables.map { |var| var.to_s }
116
+ end
117
+
118
+ def fields
119
+ instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '') }
120
+ end
121
+
122
+ def variable_names
123
+ instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '') }
124
+ end
125
+
126
+ def self.valid?(field)
127
+ field.to_s[0] != '@' && (field =~ /attributes!/).nil? && (field.to_s =~ /errors/).nil?
128
+ end
129
+
130
+ include CRUDRequestParameters
131
+ extend CRUDRequestParameters::ClassMethods
132
+
133
+ def add_error(exception)
134
+ @likeno_errors << exception
135
+ end
136
+
137
+ def without_request_error?(&block)
138
+ block.call
139
+ true
140
+ rescue Likeno::Errors::RecordNotFound => error
141
+ raise error
142
+ rescue Likeno::Errors::RequestError => error
143
+ raise error if error.response.status.between?(500, 599)
144
+
145
+ response_errors = error.response.body['errors']
146
+ if response_errors.is_a?(Array)
147
+ response_errors.each { |error_msg| add_error(error_msg) }
148
+ elsif !response_errors.nil?
149
+ add_error response_errors
150
+ else
151
+ add_error error
152
+ end
153
+
154
+ false
155
+ end
156
+
157
+ include HashConverters
158
+ end
159
+ end
160
+
@@ -0,0 +1,53 @@
1
+ module Likeno
2
+ module RequestMethods
3
+ def request(action, params = {}, method = :post, prefix = '')
4
+ response = client.send(method) do |request|
5
+ url = "/#{endpoint}/#{action}".gsub(':id', params[:id].to_s)
6
+ url = "/#{prefix}#{url}" unless prefix.empty?
7
+ request.url url
8
+ request.body = params unless method == :get || params.empty?
9
+ request.options.timeout = 300
10
+ request.options.open_timeout = 300
11
+ end
12
+
13
+ if response.success?
14
+ response.body
15
+ elsif response.status == 404
16
+ raise Likeno::Errors::RecordNotFound.new(response: response)
17
+ else
18
+ raise Likeno::Errors::RequestError.new(response: response)
19
+ end
20
+ end
21
+
22
+ def address
23
+ raise NotImplementedError
24
+ end
25
+
26
+ # TODO: probably the connection could be a class static variable.
27
+ def client
28
+ Faraday.new(url: address) do |conn|
29
+ conn.request :json
30
+ conn.response :json, content_type: /\bjson$/
31
+ conn.adapter Faraday.default_adapter # make requests with Net::HTTP
32
+ end
33
+ end
34
+
35
+ def endpoint
36
+ entity_name.pluralize
37
+ end
38
+
39
+ def module_name
40
+ raise NotImplementedError
41
+ end
42
+
43
+ def entity_name
44
+ # This loop is a generic way to make this work even when the children class has a different name
45
+ entity_class = self
46
+ until entity_class.name.include?("#{module_name}::")
47
+ entity_class = entity_class.superclass
48
+ end
49
+
50
+ entity_class.name.split('::').last.underscore.downcase
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,3 @@
1
+ module Likeno
2
+ VERSION = '0.0.1.rc'
3
+ end
data/lib/likeno.rb ADDED
@@ -0,0 +1,29 @@
1
+ require 'yaml'
2
+ require 'logger'
3
+ require 'likeno/entity'
4
+
5
+ module Likeno
6
+ @config = {}
7
+
8
+ # Configure through hash
9
+ def self.configure(opts = {})
10
+ @config = Hash[opts.map { |name, address| [name.to_sym, address] }]
11
+ end
12
+
13
+ # Configure through yaml file
14
+ def self.configure_with(path_to_yaml_file)
15
+ begin
16
+ @config = Psych.load_file path_to_yaml_file
17
+ rescue Errno::ENOENT
18
+ raise Errno::ENOENT, "YAML configuration file couldn't be found."
19
+ rescue Psych::Exception
20
+ raise Psych::Exception, 'YAML configuration file contains invalid syntax.'
21
+ end
22
+
23
+ configure(@config)
24
+ end
25
+
26
+ def self.config
27
+ @config
28
+ end
29
+ end
data/likeno.gemspec ADDED
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'likeno/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'likeno'
8
+ spec.version = Likeno::VERSION
9
+ spec.authors = ['Heitor Reis', 'Diego de Araújo Martinez Camarinha', 'Rafael Reggiani Manzo']
10
+ spec.email = ['mezurometrics@gmail.com']
11
+
12
+ spec.summary = 'Symbiotic connection between organisms'
13
+ spec.description = 'Connects services through a RESTful API'
14
+ spec.homepage = 'https://github.com/mezuro/likeno'
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = 'exe'
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.10'
22
+ spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'rspec'
24
+ spec.add_development_dependency 'mocha'
25
+ spec.add_development_dependency 'factory_girl', '~> 4.5.0'
26
+ spec.add_development_dependency 'simplecov'
27
+
28
+ spec.add_dependency 'faraday_middleware'
29
+ spec.add_dependency 'activesupport', '>= 2.2.1'
30
+ end
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: likeno
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.rc
5
+ platform: ruby
6
+ authors:
7
+ - Heitor Reis
8
+ - Diego de Araújo Martinez Camarinha
9
+ - Rafael Reggiani Manzo
10
+ autorequire:
11
+ bindir: exe
12
+ cert_chain: []
13
+ date: 2016-01-18 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.10'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.10'
29
+ - !ruby/object:Gem::Dependency
30
+ name: rake
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '10.0'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '10.0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: rspec
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: mocha
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: factory_girl
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: 4.5.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: 4.5.0
85
+ - !ruby/object:Gem::Dependency
86
+ name: simplecov
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: faraday_middleware
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ - !ruby/object:Gem::Dependency
114
+ name: activesupport
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ version: 2.2.1
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 2.2.1
127
+ description: Connects services through a RESTful API
128
+ email:
129
+ - mezurometrics@gmail.com
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - ".gitignore"
135
+ - ".rspec"
136
+ - ".ruby-gemset"
137
+ - ".ruby-version"
138
+ - ".travis.yml"
139
+ - Gemfile
140
+ - README.md
141
+ - Rakefile
142
+ - bin/console
143
+ - bin/setup
144
+ - lib/errors.rb
145
+ - lib/errors/record_invalid.rb
146
+ - lib/errors/record_not_found.rb
147
+ - lib/errors/request_error.rb
148
+ - lib/errors/standard.rb
149
+ - lib/helpers/aggregation_options.rb
150
+ - lib/helpers/crud_request_parameters.rb
151
+ - lib/helpers/date_attributes.rb
152
+ - lib/helpers/hash_converters.rb
153
+ - lib/helpers/range_methods.rb
154
+ - lib/likeno.rb
155
+ - lib/likeno/entity.rb
156
+ - lib/likeno/request_methods.rb
157
+ - lib/likeno/version.rb
158
+ - likeno.gemspec
159
+ homepage: https://github.com/mezuro/likeno
160
+ licenses: []
161
+ metadata: {}
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">"
174
+ - !ruby/object:Gem::Version
175
+ version: 1.3.1
176
+ requirements: []
177
+ rubyforge_project:
178
+ rubygems_version: 2.4.8
179
+ signing_key:
180
+ specification_version: 4
181
+ summary: Symbiotic connection between organisms
182
+ test_files: []