embark-journey 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e479a384c70a25dae3045201d6aa4ca7bdbc2cbc
4
- data.tar.gz: c41a09cfab41b72a5cde48002be0e73afedee615
3
+ metadata.gz: 35aff83caf7592c8490abbe897b29447acf19537
4
+ data.tar.gz: 82df81ae9c69ddc1aa89d5c2a95c6de7dfb88276
5
5
  SHA512:
6
- metadata.gz: 15e5882c91e38f6b5289bd0b4ca7ef021d8811eee5a55293d4c7142856b62e2a120727814c0a2a791d1fbe3bc7e0da69486398b016aec4698b64de8859a5388a
7
- data.tar.gz: 735730f502bb4c33c653c70f0f5ef22cae41f7b8e3d8ae7f3280aafd8919bcd37347064bd2390b9e58f4e61689950e1a3997247555ffa93ea3e6e3a19ce1fef6
6
+ metadata.gz: b8824778c4eb70721bfb8bdcf90acc70ba5a8af8a90e9b1eaa887131cbc4f136c69002e8936c8bcacc179c11f9d435922dd5d429dcdaf4b887b570c53c30b12b
7
+ data.tar.gz: f1405aeaf8bf87e16bd7483519f61720de0613f4551aae2d818374d4099170be1f2898db701bbd0d70bb19f2fff8e1261848ff983908f77deeea8b2d3972c0af
data/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # Journey
2
2
 
3
- TODO: Write a gem description
3
+ A ruby wrapper for the Journey API. http://resources.journeyapps.com/api
4
4
 
5
5
  ## Installation
6
6
 
7
7
  Add this line to your application's Gemfile:
8
8
 
9
- gem 'journey'
9
+ gem 'embark-journey', require: 'journey'
10
10
 
11
11
  And then execute:
12
12
 
@@ -14,11 +14,31 @@ And then execute:
14
14
 
15
15
  Or install it yourself as:
16
16
 
17
- $ gem install journey
17
+ $ gem install embark-journey
18
18
 
19
19
  ## Usage
20
20
 
21
- TODO: Write usage instructions here
21
+ Configure Journey to use the relevant API credentials. For Rails, this would be placed in an initializer.
22
+
23
+ Journey.configure do |c|
24
+ c.api_site = ENV['JOURNEY_API_ENDPOINT']
25
+ c.api_user = ENV['JOURNEY_API_USERNAME']
26
+ c.api_password = ENV['JOURNEY_API_KEY']
27
+ end
28
+
29
+
30
+ Create your resource models, inheriting from `Journey::Resource`. Under the hood, resources extend `ActiveResource::Base`.
31
+
32
+ class User < Journey::Resource
33
+ schema do
34
+ string :name
35
+ datetime :last_login
36
+ string :state
37
+ end
38
+
39
+ enum :state, %w[Active Inactive]
40
+ end
41
+
22
42
 
23
43
  ## Contributing
24
44
 
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'bundler', '~> 1.3'
25
25
  spec.add_development_dependency 'rake', '~> 10.1.1'
26
26
  spec.add_development_dependency 'rspec', '~> 3.0.0.beta1'
27
+ spec.add_development_dependency 'factory_girl', '~> 4.3.0'
27
28
  spec.add_development_dependency 'dotenv', '~> 0.9.0'
28
29
  spec.add_development_dependency 'pry', '~> 0.9.12.4'
29
30
 
@@ -8,12 +8,14 @@ require 'journey/resource/api'
8
8
  require 'journey/resource/attribute_loading'
9
9
  require 'journey/resource/enums'
10
10
  require 'journey/resource/queries'
11
+ require 'journey/resource/search'
11
12
 
12
13
  class Journey::Resource
13
14
  include API
14
15
  include Queries
15
16
  include Enums
16
17
  include AttributeLoading
18
+ include Search
17
19
  end
18
20
 
19
21
 
@@ -0,0 +1,12 @@
1
+ require 'active_support/concern'
2
+
3
+ module Journey::Resource::Search
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ def self.search(q)
8
+ instantiate_collection format.decode(post(:search, q: q).body)
9
+ end
10
+ end
11
+
12
+ end
@@ -2,7 +2,7 @@ module Journey
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 4
5
+ TINY = 5
6
6
  PRE = nil
7
7
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
8
8
  end
@@ -63,4 +63,38 @@ describe Journey::Resource do
63
63
  end
64
64
  end
65
65
  end
66
+
67
+
68
+ describe '::Search' do
69
+ it 'returns matching objects when matches are made' do
70
+ uuid = SecureRandom.uuid
71
+
72
+ matched_objects = [
73
+ klass.create(name: "#{SecureRandom.uuid}#{uuid}"),
74
+ klass.create(name: "#{SecureRandom.uuid}#{uuid}")
75
+ ]
76
+ expect(matched_objects.all?(&:persisted?)).to be true
77
+
78
+ unmatched_objects = [
79
+ klass.create(name: "#{SecureRandom.uuid}"),
80
+ klass.create(name: "#{SecureRandom.uuid}")
81
+ ]
82
+ expect(unmatched_objects.all?(&:persisted?)).to be true
83
+
84
+ searched_objects = klass.search(uuid)
85
+
86
+ matched_objects.each do |object|
87
+ expect(searched_objects).to include(object)
88
+ end
89
+
90
+ unmatched_objects.each do |object|
91
+ expect(searched_objects).not_to include(object)
92
+ end
93
+ end
94
+
95
+ it 'returns an empty array when no matches are made' do
96
+ results = klass.search(SecureRandom.uuid)
97
+ expect(results).to_not be_any
98
+ end
99
+ end
66
100
  end
@@ -1,9 +1,12 @@
1
1
  require 'pry'
2
2
  require 'journey'
3
3
 
4
+
4
5
  require 'dotenv'
5
6
  Dotenv.load
6
7
 
8
+ require 'factory_girl'
9
+
7
10
  Dir["spec/support/**/*.rb"].each { |f| require "./#{f}" }
8
11
 
9
12
  RSpec.configure do |config|
@@ -5,6 +5,5 @@ module TestConfiguration
5
5
  c.api_user = ENV['JOURNEY_API_USERNAME']
6
6
  c.api_password = ENV['JOURNEY_API_KEY']
7
7
  end
8
- binding.pry
9
8
  end
10
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embark-journey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Davey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-17 00:00:00.000000000 Z
11
+ date: 2014-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: active_attr
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: 3.0.0.beta1
83
+ - !ruby/object:Gem::Dependency
84
+ name: factory_girl
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 4.3.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 4.3.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: dotenv
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,7 @@ files:
136
150
  - lib/journey/resource/attribute_loading.rb
137
151
  - lib/journey/resource/enums.rb
138
152
  - lib/journey/resource/queries.rb
153
+ - lib/journey/resource/search.rb
139
154
  - lib/journey/version.rb
140
155
  - spec/models/journey/configurable_spec.rb
141
156
  - spec/models/journey/configuration_spec.rb