embark-journey 0.0.4 → 0.0.5

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
  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