graph_starter 0.15.5 → 0.15.6

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: 5cc82c346899feb9018ae55485a4819f1c94c373
4
- data.tar.gz: 0ed8f9e24fbece6fdc19a646ef9cefc46f9d7315
3
+ metadata.gz: 846d2b3c24ae439f3e2431a4cfc1662fdf320f47
4
+ data.tar.gz: 7d0bb849a37a60e4c77f5318288ee82282fecc5e
5
5
  SHA512:
6
- metadata.gz: aa4f4da974616a2271132ae5db5fe4c621f5880e9965b7fdc2eccfc97ce845c202912b796289c94b769a939bfba257bb586171125ab3302123eb7abfea696a05
7
- data.tar.gz: 1af8ab75b2d8a1bc739ce0e12b0cbbd298d1d35b5e02bb93c3f05bf739e57df97e44339b98bae7d9c93d84522825a164bb4dd0ddeba2a36f15250a750d5620ff
6
+ metadata.gz: 1f27817808730ca4c850a96bd5551d843b9fadb1be1d2c76de88dccce7e09da1701d6aa6c891e30aa631fd426a84418a3373bade7fe92481630ee73d31984de9
7
+ data.tar.gz: f58a50e1a8dd9b1749c76123d71c647db8c33d3f1fb6b69de20ed6f80dad8ebe875aa38b6729f1dc79e773b8b638075c0bcfc0a9286799114f87ddc5b3d66b1e
@@ -11,7 +11,7 @@ module GraphStarter
11
11
  def render_body(asset, model_slug)
12
12
  views = Dir.glob(Rails.root.join("app/views/#{model_slug}/_body.html.*"))
13
13
 
14
- partial_path = views.present? ? "#{model_slug}/body" : 'body'
14
+ partial_path = views.present? ? "#{model_slug}/body" : '/graph_starter/assets/body'
15
15
 
16
16
  render partial: partial_path, locals: {asset: asset}
17
17
  end
@@ -1,4 +1,5 @@
1
1
  require 'graph_starter/query_authorizer'
2
+ require 'babosa'
2
3
 
3
4
  module GraphStarter
4
5
  class Asset
@@ -11,6 +12,28 @@ module GraphStarter
11
12
 
12
13
  property :summary
13
14
 
15
+
16
+ # This is doing something strange, commenting out for now...
17
+ # def self.inherited(subclass)
18
+ # subclass.property :slug
19
+ # subclass.before_validation :place_slug
20
+ # subclass.validates :slug, presence: true
21
+ # subclass.constraint :slug, type: :unique
22
+ # end
23
+
24
+ def place_slug
25
+ return if self.slug.present?
26
+
27
+ name_value = read_attribute(self.class.name_property)
28
+ self.slug = self.class.unique_slug_from(name_value)
29
+ name_value.to_slug.normalize.to_s if name_value
30
+ end
31
+
32
+ def self.unique_slug_from(string)
33
+ base = string.to_slug.normalize.to_s
34
+ end
35
+
36
+
14
37
  if GraphStarter.configuration.user_class
15
38
  #has_many :in, :creators, type: :CREATED, model_class: GraphStarter.configuration.user_class
16
39
 
@@ -95,7 +118,7 @@ module GraphStarter
95
118
  def self.enumerable_property(property_name, values)
96
119
  fail "values needs to be an Array, was #{values.inspect}" if !values.is_a?(Array)
97
120
 
98
- validates :status, inclusion: {in: values}
121
+ validates property_name.to_sym, inclusion: {in: values}
99
122
 
100
123
  enumerable_property_values[self.name.to_sym] ||= {}
101
124
  enumerable_property_values[self.name.to_sym][property_name.to_sym] ||= values
@@ -1,17 +1,18 @@
1
- .ui.buttons
2
- a.ui.labeled.icon.button.right.floated data-authorizable="#{asset.to_json}"
3
- | Permissions
1
+ - if asset.persisted?
2
+ .ui.buttons
3
+ a.ui.labeled.icon.button.right.floated data-authorizable="#{asset.to_json}"
4
+ | Permissions
4
5
 
5
- .or
6
+ .or
6
7
 
7
- a.ui.labeled.icon.button.right.floated href="#{edit_asset_path(id: asset)}"
8
- i.edit.icon
9
- | Edit
8
+ a.ui.labeled.icon.button.right.floated href="#{graph_starter.edit_asset_path(id: asset)}"
9
+ i.edit.icon
10
+ | Edit
10
11
 
11
- .ui.divider
12
+ .ui.divider
12
13
 
13
- a.ui.labeled.icon.red.button.right.floated href="#{destroy_asset_path(id: asset)}"
14
- i.delete.icon
15
- | Delete
14
+ a.ui.labeled.icon.red.button.right.floated href="#{graph_starter.destroy_asset_path(id: asset)}"
15
+ i.delete.icon
16
+ | Delete
16
17
 
17
18
 
@@ -10,12 +10,12 @@
10
10
  - if as_cards
11
11
  .ui.link.cards
12
12
  - Array(result).each do |object|
13
- = render partial: 'card', locals: {asset: object}
13
+ = render partial: '/graph_starter/assets/card', locals: {asset: object}
14
14
  - else
15
15
  .ui.middle.aligned.big.divided.list
16
16
  - Array(result).each do |object|
17
17
  .item
18
18
  .content
19
- = render partial: 'icon', locals: {asset: object}
19
+ = render partial: '/graph_starter/assets/icon', locals: {asset: object}
20
20
  = link_to object.title, asset_path(object)
21
21
 
@@ -1,3 +1,3 @@
1
1
  - if asset.body.present?
2
2
  = asset.body
3
- = render partial: 'images', locals: {asset: asset}
3
+ = render partial: '/graph_starter/assets/images', locals: {asset: asset}
@@ -14,24 +14,24 @@ javascript:
14
14
  .ui.grid
15
15
  - if asset_presenter.left_sidebar_exists?
16
16
  div class="#{left_width} wide column"
17
- = render partial: 'dynamic_items', locals: {asset: @asset}
17
+ = render partial: '/graph_starter/assets/dynamic_items', locals: {asset: @asset}
18
18
 
19
19
  - if asset_presenter.main_column_exists?
20
20
  div class="#{center_width} wide column"
21
21
  - if asset_presenter.associations_in_body?
22
- = render partial: 'associations', locals: {asset: @asset, as_cards: true}
22
+ = render partial: '/graph_starter/assets/associations', locals: {asset: @asset, as_cards: true}
23
23
  - else
24
24
  = render_body(@asset, @model_slug)
25
25
 
26
26
  div class="#{right_width} wide column" id="right-column"
27
27
  - if app_user_is_admin?
28
- = render partial: 'admin_buttons', locals: {asset: @asset}
28
+ = render partial: '/graph_starter/assets/admin_buttons', locals: {asset: @asset}
29
29
 
30
30
  - if !asset_presenter.left_sidebar_exists?
31
31
  .ui.items
32
32
  - if !asset_presenter.associations_in_body?
33
- = render partial: 'associations', locals: {asset: @asset}
34
- = render partial: 'recommendations', locals: {asset: @asset}
33
+ = render partial: '/graph_starter/assets/associations', locals: {asset: @asset}
34
+ = render partial: '/graph_starter/assets/recommendations', locals: {asset: @asset}
35
35
 
36
- = render partial: 'property_items', locals: {asset: @asset}
36
+ = render partial: '/graph_starter/assets/property_items', locals: {asset: @asset}
37
37
 
@@ -1,3 +1,3 @@
1
1
  module GraphStarter
2
- VERSION = "0.15.5"
2
+ VERSION = "0.15.6"
3
3
  end
@@ -0,0 +1,35 @@
1
+ # require './spec/rails_helper'
2
+ #
3
+ # describe 'Asset slugs' do
4
+ # class Foo < GraphStarter::Asset
5
+ # property :title
6
+ #
7
+ # name_property :title
8
+ # end
9
+ #
10
+ # before { clear_db }
11
+ #
12
+ # describe '.unique_slug_from' do
13
+ # subject { GraphStarter::Asset.unique_slug_from(string) }
14
+ #
15
+ # context 'Without assets with slugs' do
16
+ # let_context string: 'Test title' do
17
+ # it { should eq 'test-title' }
18
+ # end
19
+ #
20
+ # let_context string: 'Gölcük, Turkey Number 2!' do
21
+ # it { should eq 'golcuk-turkey-number-2' }
22
+ # end
23
+ # end
24
+ #
25
+ # context 'With existing asset slugs' do
26
+ # before { Foo.create(title: 'Gölcük, Turkey', slug: 'golcuk-turkey') }
27
+ #
28
+ # let_context string: 'Gölcük, Turkey!' do
29
+ # it { should eq 'golcuk-turkey-2' }
30
+ # end
31
+ # end
32
+ #
33
+ # end
34
+ # end
35
+
@@ -1,3 +1,29 @@
1
+
2
+ # Introduces `let_context` helper method
3
+ # This allows us to simplify the case where we want to
4
+ # have a context which contains one or more `let` statements
5
+ module LetContextHelpers
6
+ # Supports giving either a Hash or a String and a Hash as arguments
7
+ # In both cases the Hash will be used to define `let` statements
8
+ # When a String is specified that becomes the context description
9
+ # If String isn't specified, Hash#inspect becomes the context description
10
+ def let_context(*args, &block)
11
+ classes = args.map(&:class)
12
+ context_string, hash =
13
+ case classes
14
+ when [String, Hash] then ["#{args[0]} #{args[1]}", args[1]]
15
+ when [Hash] then args + args
16
+ end
17
+
18
+ context(context_string) do
19
+ hash.each { |var, value| let(var) { value } }
20
+
21
+ instance_eval(&block)
22
+ end
23
+ end
24
+ end
25
+
26
+
1
27
  # This file was generated by the `rails generate rspec:install` command. Conventionally, all
2
28
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
29
  # The generated `.rspec` file contains `--require spec_helper` which will cause
@@ -40,6 +66,8 @@ RSpec.configure do |config|
40
66
  mocks.verify_partial_doubles = true
41
67
  end
42
68
 
69
+ config.extend LetContextHelpers
70
+
43
71
  # The settings below are suggested to provide a good initial experience
44
72
  # with RSpec, but feel free to customize to your heart's content.
45
73
  =begin
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: graph_starter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.5
4
+ version: 0.15.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Underwood
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.0.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: babosa
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.2
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 1.0.2
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rspec-rails
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -223,6 +237,7 @@ files:
223
237
  - lib/graph_starter/version.rb
224
238
  - lib/tasks/graph_starter_tasks.rake
225
239
  - spec/asset_authorization_spec.rb
240
+ - spec/asset_slug_spec.rb
226
241
  - spec/dummy/README.rdoc
227
242
  - spec/dummy/Rakefile
228
243
  - spec/dummy/app/assets/javascripts/application.js
@@ -289,6 +304,7 @@ specification_version: 4
289
304
  summary: A Rails engine to get a UI for a Neo4j up and running quickly
290
305
  test_files:
291
306
  - spec/asset_authorization_spec.rb
307
+ - spec/asset_slug_spec.rb
292
308
  - spec/dummy/app/assets/javascripts/application.js
293
309
  - spec/dummy/app/assets/stylesheets/application.css
294
310
  - spec/dummy/app/controllers/application_controller.rb