refinerycms-pages 0.9.9.22 → 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.
@@ -12,7 +12,7 @@ module Admin
12
12
  after_filter lambda{::Page.expire_page_caching}, :only => [:update_positions]
13
13
 
14
14
  before_filter :restrict_access, :only => [:create, :update, :update_positions, :destroy], :if => proc {|c|
15
- defined?(::Refinery::I18n) && ::Refinery::I18n.enabled?
15
+ ::Refinery.i18n_enabled?
16
16
  }
17
17
 
18
18
  def new
@@ -20,7 +20,7 @@ class PagesController < ApplicationController
20
20
 
21
21
  if @page.try(:live?) || (refinery_user? && current_user.authorized_plugins.include?("refinery_pages"))
22
22
  # if the admin wants this to be a "placeholder" page which goes to its first child, go to that instead.
23
- if @page.skip_to_first_child# && (first_live_child = @page.children.order('lft ASC').live.first).present?
23
+ if @page.skip_to_first_child && (first_live_child = @page.children.order('lft ASC').live.first).present?
24
24
  redirect_to first_live_child.url
25
25
  elsif @page.link_url.present?
26
26
  redirect_to @page.link_url and return
@@ -2,6 +2,15 @@ require 'globalize3'
2
2
 
3
3
  class Page < ActiveRecord::Base
4
4
 
5
+ # when a dialog pops up to link to a page, how many pages per page should there be
6
+ PAGES_PER_DIALOG = 14
7
+
8
+ # when listing pages out in the admin area, how many pages should show per page
9
+ PAGES_PER_ADMIN_INDEX = 20
10
+
11
+ # when collecting the pages path how is each of the pages seperated?
12
+ PATH_SEPARATOR = " - "
13
+
5
14
  if self.respond_to?(:translates)
6
15
  translates :title, :custom_title, :meta_keywords, :meta_description, :browser_title, :include => :seo_meta
7
16
 
@@ -34,7 +43,7 @@ class Page < ActiveRecord::Base
34
43
  end
35
44
 
36
45
  before_create :ensure_locale, :if => proc { |c|
37
- defined?(::Refinery::I18n) && ::Refinery::I18n.enabled?
46
+ ::Refinery.i18n_enabled?
38
47
  }
39
48
  end
40
49
 
@@ -71,18 +80,25 @@ class Page < ActiveRecord::Base
71
80
  :custom_title, :browser_title, :all_page_part_content]
72
81
 
73
82
  before_destroy :deletable?
74
- after_save :reposition_parts!, :invalidate_child_cached_url, :expire_page_caching
83
+ after_save :reposition_parts!, :invalidate_cached_urls, :expire_page_caching
75
84
  after_destroy :expire_page_caching
76
85
 
77
86
  # Wrap up the logic of finding the pages based on the translations table.
78
87
  if defined?(::Page::Translation)
79
88
  def self.with_globalize(conditions = {})
80
89
  conditions = {:locale => Globalize.locale}.merge(conditions)
81
- where(:id => ::Page::Translation.where(conditions).select('page_id AS id')).includes(:children, :slugs)
90
+ globalized_conditions = {}
91
+ conditions.keys.each do |key|
92
+ if (translated_attribute_names.map(&:to_s) | %w(locale)).include?(key.to_s)
93
+ globalized_conditions["#{self.translation_class.table_name}.#{key}"] = conditions.delete(key)
94
+ end
95
+ end
96
+ # A join implies readonly which we don't really want.
97
+ joins(:translations).where(globalized_conditions).where(conditions).readonly(false)
82
98
  end
83
99
  else
84
100
  def self.with_globalize(conditions = {})
85
- where(conditions).includes(:children, :slugs)
101
+ where(conditions)
86
102
  end
87
103
  end
88
104
 
@@ -95,15 +111,6 @@ class Page < ActiveRecord::Base
95
111
  # using all of the page_ids we further filter against this model's table.
96
112
  scope :in_menu, proc { where(:show_in_menu => true).with_globalize }
97
113
 
98
- # when a dialog pops up to link to a page, how many pages per page should there be
99
- PAGES_PER_DIALOG = 14
100
-
101
- # when listing pages out in the admin area, how many pages should show per page
102
- PAGES_PER_ADMIN_INDEX = 20
103
-
104
- # when collecting the pages path how is each of the pages seperated?
105
- PATH_SEPARATOR = " - "
106
-
107
114
  # Am I allowed to delete this page?
108
115
  # If a link_url is set we don't want to break the link so we don't allow them to delete
109
116
  # If deletable is set to false then we don't allow this page to be deleted. These are often Refinery system pages
@@ -122,19 +129,17 @@ class Page < ActiveRecord::Base
122
129
  # Before destroying a page we check to see if it's a deletable page or not
123
130
  # Refinery system pages are not deletable.
124
131
  def destroy
125
- if deletable?
126
- super
127
- else
128
- unless Rails.env.test?
129
- # give useful feedback when trying to delete from console
130
- puts "This page is not deletable. Please use .destroy! if you really want it deleted "
131
- puts "unset .link_url," if link_url.present?
132
- puts "unset .menu_match," if menu_match.present?
133
- puts "set .deletable to true" unless deletable
134
- end
135
-
136
- return false
132
+ return super if deletable?
133
+
134
+ unless Rails.env.test?
135
+ # give useful feedback when trying to delete from console
136
+ puts "This page is not deletable. Please use .destroy! if you really want it deleted "
137
+ puts "unset .link_url," if link_url.present?
138
+ puts "unset .menu_match," if menu_match.present?
139
+ puts "set .deletable to true" unless deletable
137
140
  end
141
+
142
+ return false
138
143
  end
139
144
 
140
145
  # If you want to destroy a page that is set to be not deletable this is the way to do it.
@@ -152,7 +157,7 @@ class Page < ActiveRecord::Base
152
157
  # Override default options with any supplied.
153
158
  options = {:reversed => true}.merge(options)
154
159
 
155
- unless parent.nil?
160
+ unless parent_id.nil?
156
161
  parts = [title, parent.path(options)]
157
162
  parts.reverse! if options[:reversed]
158
163
  parts.join(PATH_SEPARATOR)
@@ -179,7 +184,7 @@ class Page < ActiveRecord::Base
179
184
  end
180
185
 
181
186
  def link_url_localised?
182
- return link_url unless defined?(::Refinery::I18n)
187
+ return link_url unless ::Refinery.i18n_enabled?
183
188
 
184
189
  current_url = link_url
185
190
 
@@ -235,7 +240,7 @@ class Page < ActiveRecord::Base
235
240
  end
236
241
 
237
242
  def cache_key
238
- [Refinery.base_cache_key, ::I18n.locale, super].compact.join('/')
243
+ [Refinery.base_cache_key, ::I18n.locale, to_param].compact.join('/')
239
244
  end
240
245
 
241
246
  # Returns true if this page is "published"
@@ -255,7 +260,7 @@ class Page < ActiveRecord::Base
255
260
 
256
261
  # Returns true if this page is the home page or links to it.
257
262
  def home?
258
- link_url == "/"
263
+ link_url == '/'
259
264
  end
260
265
 
261
266
  # Returns all visible sibling pages that can be rendered for the menu
@@ -263,6 +268,19 @@ class Page < ActiveRecord::Base
263
268
  siblings.reject(&:not_in_menu?)
264
269
  end
265
270
 
271
+ def to_refinery_menu_item
272
+ {
273
+ :id => id,
274
+ :lft => lft,
275
+ :menu_match => menu_match,
276
+ :parent_id => parent_id,
277
+ :rgt => rgt,
278
+ :title => (page_title if respond_to?(:page_title)) || title,
279
+ :type => self.class.name,
280
+ :url => url
281
+ }
282
+ end
283
+
266
284
  class << self
267
285
  # Accessor to find out the default page parts created for each new page
268
286
  def default_parts
@@ -273,9 +291,7 @@ class Page < ActiveRecord::Base
273
291
  # the current frontend locale is different to the current one set by ::I18n.locale.
274
292
  # This terminates in a false if i18n engine is not defined or enabled.
275
293
  def different_frontend_locale?
276
- defined?(::Refinery::I18n) &&
277
- ::Refinery::I18n.enabled? &&
278
- ::Refinery::I18n.current_frontend_locale != ::I18n.locale
294
+ ::Refinery.i18n_enabled? && ::Refinery::I18n.current_frontend_locale != ::I18n.locale
279
295
  end
280
296
 
281
297
  # Returns how many pages per page should there be when paginating pages
@@ -300,15 +316,10 @@ class Page < ActiveRecord::Base
300
316
  # Accessor method to get a page part from a page.
301
317
  # Example:
302
318
  #
303
- # Page.first[:body]
319
+ # Page.first.content_for(:body)
304
320
  #
305
321
  # Will return the body page part of the first page.
306
- def [](part_title)
307
- # Allow for calling attributes with [] shorthand (eg page[:parent_id])
308
- return super if self.attributes.has_key?(part_title.to_s)
309
-
310
- # the way that we call page parts seems flawed, will probably revert to page.parts[:title] in a future release.
311
- # self.parts is already eager loaded so we can now just grab the first element matching the title we specified.
322
+ def content_for(part_title)
312
323
  part = self.parts.detect do |part|
313
324
  part.title.present? and #protecting against the problem that occurs when have nil title
314
325
  part.title == part_title.to_s or
@@ -318,6 +329,20 @@ class Page < ActiveRecord::Base
318
329
  part.try(:body)
319
330
  end
320
331
 
332
+ def [](part_title)
333
+ # Allow for calling attributes with [] shorthand (eg page[:parent_id])
334
+ return super if self.respond_to?(part_title.to_s.to_sym) or self.attributes.has_key?(part_title.to_s)
335
+
336
+ Refinery.deprecate({
337
+ :what => "page[#{part_title.inspect}]",
338
+ :when => '1.1',
339
+ :replacement => "content_for(#{part_title.inspect})",
340
+ :caller => caller
341
+ })
342
+
343
+ content_for(part_title)
344
+ end
345
+
321
346
  # In the admin area we use a slightly different title to inform the which pages are draft or hidden pages
322
347
  def title_with_meta
323
348
  title = if self.title.nil?
@@ -353,14 +378,15 @@ class Page < ActiveRecord::Base
353
378
 
354
379
  private
355
380
 
356
- def invalidate_child_cached_url
381
+ def invalidate_cached_urls
357
382
  return true unless self.class.use_marketable_urls?
358
383
 
359
- children.each do |child|
360
- Rails.cache.delete(child.url_cache_key)
361
- Rails.cache.delete(child.path_cache_key)
384
+ [self, children].flatten.each do |page|
385
+ Rails.cache.delete(page.url_cache_key)
386
+ Rails.cache.delete(page.path_cache_key)
362
387
  end
363
388
  end
389
+ alias_method :invalidate_child_cached_url, :invalidate_cached_urls
364
390
 
365
391
  def ensure_locale
366
392
  unless self.translations.present?
@@ -10,7 +10,7 @@
10
10
  <%= render :partial => "locale_picker",
11
11
  :locals => {
12
12
  :current_locale => Thread.current[:globalize_locale]
13
- } if defined?(::Refinery::I18n) %>
13
+ } if ::Refinery.i18n_enabled? %>
14
14
 
15
15
  <div class="field">
16
16
  <%= f.label :title %>
@@ -2,7 +2,7 @@
2
2
  <div class='clearfix'>
3
3
  <span class='title'>
4
4
  <%= page.title_with_meta.html_safe %>
5
- <% if defined?(::Refinery::I18n) and ::Refinery::I18n.frontend_locales.many? and
5
+ <% if ::Refinery.i18n_enabled? and ::Refinery::I18n.frontend_locales.many? and
6
6
  (locales = page.translations.map(&:locale)).present? %>
7
7
  <span class='preview'>
8
8
  <% ([page.translation.try(:locale)] | locales).each do |locale| %>
@@ -41,6 +41,9 @@ class CreateSeoMeta < ActiveRecord::Migration
41
41
  }
42
42
  )
43
43
  end
44
+
45
+ # Reset column information again because otherwise the old columns will still exist.
46
+ ::Page.reset_column_information
44
47
  end
45
48
 
46
49
  def self.down
@@ -59,13 +62,26 @@ class CreateSeoMeta < ActiveRecord::Migration
59
62
 
60
63
  # Migrate data
61
64
  existing_translations.each do |translation|
62
- ::Page::Translation.find(translation['id']).update_attributes(
65
+ ::Page::Translation.update_all(
63
66
  ::SeoMeta.attributes.keys.inject({}) {|attributes, name|
64
67
  attributes.merge(name => translation[name.to_s])
65
- }
68
+ }, :id => translation['id']
66
69
  )
67
70
  end
68
71
 
72
+ ::SeoMeta.attributes.keys.each do |k|
73
+ ::Page::Translation.module_eval %{
74
+ def #{k}
75
+ end
76
+
77
+ def #{k}=(*args)
78
+ end
79
+ }
80
+ end
81
+
82
+ # Reset column information again because otherwise the old columns will still exist.
83
+ ::Page.reset_column_information
84
+
69
85
  drop_table :seo_meta
70
86
  end
71
87
 
@@ -3,7 +3,6 @@ page_position = -1
3
3
  home_page = Page.create(:title => "Home",
4
4
  :deletable => false,
5
5
  :link_url => "/",
6
- :menu_match => "^/$",
7
6
  :position => (page_position += 1))
8
7
  home_page.parts.create({
9
8
  :title => "Body",
@@ -8,6 +8,10 @@ Given /^the page titled "?([^\"]*)"? has a menu match "?([^\"]*)"?$/ do |title,
8
8
  Page.by_title(title).first.update_attribute(:menu_match, menu_match)
9
9
  end
10
10
 
11
+ Given /^the page titled "?([^\"]*)"? is set to skip to first child$/ do |title|
12
+ Page.by_title(title).first.update_attribute(:skip_to_first_child, true)
13
+ end
14
+
11
15
  Given /^I (only )?have pages titled "?([^\"]*)"?$/ do |only, titles|
12
16
  Page.delete_all if only
13
17
  titles.split(', ').each do |title|
@@ -28,7 +32,8 @@ Given /^I (only )?have a page titled "?([^\"]*)"?$/ do |only, title|
28
32
  end
29
33
 
30
34
  Given /^the page titled "?([^\"]*)"? is a child of "?([^\"]*)"?$/ do |title, parent_title|
31
- Page.by_title(title).first.update_attribute(:parent, Page.by_title(parent_title).first)
35
+ parent_page = Page.by_title(parent_title).first
36
+ Page.by_title(title).first.update_attribute(:parent_id, parent_page.id)
32
37
  end
33
38
 
34
39
  Given /^the page titled "?([^\"]*)"? is not shown in the menu$/ do |title|
@@ -13,18 +13,21 @@ Feature: Visit Pages
13
13
  And the page titled "Hidden" is a child of Home
14
14
  And the page titled "Hidden" is not shown in the menu
15
15
 
16
+ @pages-visit-home
16
17
  Scenario: Home Page
17
18
  When I go to the home page
18
19
  Then I should see "Home"
19
20
  And I should see "About"
20
21
  And I should see "Home" within ".selected"
21
22
 
23
+ @pages-visit-show
22
24
  Scenario: Content Page
23
25
  When I go to the page titled "About"
24
26
  Then I should see "Home"
25
27
  And I should see "About"
26
28
  And I should see "About" within ".selected > a"
27
29
 
30
+ @pages-visit-special
28
31
  Scenario: Special Characters Title
29
32
  When I go to the page titled "ä ö ü spéciål chåråctÉrs"
30
33
  Then I should see "Home"
@@ -32,6 +35,7 @@ Feature: Visit Pages
32
35
  And I should see "ä ö ü spéciål chåråctÉrs"
33
36
  And I should see "ä ö ü spéciål chåråctÉrs" within ".selected > a"
34
37
 
38
+ @pages-visit-special
35
39
  Scenario: Special Characters Title as submenu page
36
40
  Given the page titled "ä ö ü spéciål chåråctÉrs" is a child of About
37
41
  When I go to the page titled "ä ö ü spéciål chåråctÉrs"
@@ -40,8 +44,18 @@ Feature: Visit Pages
40
44
  And I should see "ä ö ü spéciål chåråctÉrs"
41
45
  And I should see "ä ö ü spéciål chåråctÉrs" within ".selected * > .selected a"
42
46
 
47
+ @pages-visit-hidden
43
48
  Scenario: Hidden Page
44
49
  When I go to the page titled "Hidden"
45
50
  Then I should see "Home"
46
51
  And I should see "About"
47
- And I should see "Home" within ".selected > a"
52
+ And I should see "Hidden"
53
+ And I should not see "Hidden" within "nav"
54
+
55
+ @pages-visit-skip
56
+ Scenario: Skip to first child
57
+ Given I have a page titled "Child Page"
58
+ And the page titled "Child Page" is a child of About
59
+ And the page titled "About" is set to skip to first child
60
+ When I go to the page titled "About"
61
+ Then I should see "Child Page" within ".selected * > .selected a"
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
27
27
 
28
28
  s.add_dependency 'refinerycms-core', '= #{::Refinery::Version}'
29
29
  s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
30
- s.add_dependency 'globalize3', '>= 0.1.0.beta2'
30
+ s.add_dependency 'globalize3', '~> 0.1'
31
31
  s.add_dependency 'awesome_nested_set', '~> 2.0'
32
32
  s.add_dependency 'seo_meta', '~> 1.1'
33
33
  end
@@ -4,7 +4,8 @@ end
4
4
 
5
5
  # Add any parts of routes as reserved words.
6
6
  if Page.use_marketable_urls?
7
- Page.friendly_id_config.reserved_words |= ::Refinery::Application.routes.named_routes.map { |name, route|
8
- route.path.gsub(/^\//, '').to_s.split('(').first.to_s.split(':').first.to_s.split('/')
7
+ route_paths = ::Refinery::Application.routes.named_routes.routes.map{|name, route| route.path}
8
+ Page.friendly_id_config.reserved_words |= route_paths.map { |path|
9
+ path.to_s.gsub(/^\//, '').to_s.split('(').first.to_s.split(':').first.to_s.split('/')
9
10
  }.flatten.reject{|w| w =~ /\_/}.uniq
10
11
  end
@@ -3,9 +3,9 @@ module Refinery
3
3
  module InstanceMethods
4
4
 
5
5
  def error_404(exception=nil)
6
- if (@page = ::Page.where(:menu_match => "^/404$").includes(:parts, :slugs).first).present?
6
+ if (@page = ::Page.where(:menu_match => '^/404$').includes(:parts, :slugs).first).present?
7
7
  # render the application's custom 404 page with layout and meta.
8
- render :template => "/pages/show",
8
+ render :template => '/pages/show',
9
9
  :format => 'html',
10
10
  :status => 404
11
11
  else
@@ -15,7 +15,25 @@ module Refinery
15
15
 
16
16
  protected
17
17
  def find_pages_for_menu
18
- @menu_pages = ::Page.roots.live.in_menu.order('lft ASC').includes(:children)
18
+ # First, apply a filter to determine which pages to show.
19
+ # We need to join to the page's slug to avoid multiple queries.
20
+ pages = ::Page.live.in_menu.includes(:slug).order('lft ASC')
21
+
22
+ # Now we only want to select particular columns to avoid any further queries.
23
+ # Title is retrieved in the next block below so it's not here.
24
+ %w(id depth parent_id lft rgt link_url menu_match).each do |column|
25
+ pages = pages.select(::Page.arel_table[column.to_sym])
26
+ end
27
+
28
+ # If we have translations then we get the title from that table.
29
+ if ::Page.respond_to?(:translation_class)
30
+ pages = pages.joins(:translations).select("#{::Page.translation_class.table_name}.title as page_title")
31
+ else
32
+ pages = pages.select('title as page_title')
33
+ end
34
+
35
+ # Compile the menu
36
+ @menu_pages = ::Refinery::Menu.new(pages)
19
37
  end
20
38
 
21
39
  def render(*args)
@@ -37,7 +37,7 @@ module Refinery
37
37
  ::Refinery::Plugin.register do |plugin|
38
38
  plugin.name = 'refinery_pages'
39
39
  plugin.directory = 'pages'
40
- plugin.version = %q{0.9.9.21}
40
+ plugin.version = %q{1.0.0}
41
41
  plugin.menu_match = /(refinery|admin)\/page(_part)?s(_dialogs)?$/
42
42
  plugin.activity = {
43
43
  :class => Page,
@@ -2,10 +2,10 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{refinerycms-pages}
5
- s.version = %q{0.9.9.22}
5
+ s.version = %q{1.0.0}
6
6
  s.summary = %q{Pages engine for Refinery CMS}
7
7
  s.description = %q{The default content engine of Refinery CMS. This engine handles the administration and display of user-editable pages.}
8
- s.date = %q{2011-05-22}
8
+ s.date = %q{2011-05-28}
9
9
  s.email = %q{info@refinerycms.com}
10
10
  s.homepage = %q{http://refinerycms.com}
11
11
  s.rubyforge_project = %q{refinerycms}
@@ -119,9 +119,9 @@ Gem::Specification.new do |s|
119
119
  'spec/models/page_spec.rb'
120
120
  ]
121
121
 
122
- s.add_dependency 'refinerycms-core', '= 0.9.9.22'
122
+ s.add_dependency 'refinerycms-core', '= 1.0.0'
123
123
  s.add_dependency 'friendly_id_globalize3', '~> 3.2.1'
124
- s.add_dependency 'globalize3', '>= 0.1.0.beta2'
124
+ s.add_dependency 'globalize3', '~> 0.1'
125
125
  s.add_dependency 'awesome_nested_set', '~> 2.0'
126
126
  s.add_dependency 'seo_meta', '~> 1.1'
127
127
  end
@@ -107,9 +107,14 @@ describe Page do
107
107
  context "content sections (page parts)" do
108
108
  before { create_page_parts }
109
109
 
110
- it "return the content when using []" do
111
- page[:body].should == "<p>I'm the first page part for this page.</p>"
112
- page["BoDY"].should == "<p>I'm the first page part for this page.</p>"
110
+ it "return the content when using [] and moan about it" do
111
+ capture_stdout { page[:body].should == "<p>I'm the first page part for this page.</p>" }[:stderr].should =~ /DEPRECATION\ WARNING/
112
+ capture_stdout { page["BoDY"].should == "<p>I'm the first page part for this page.</p>" }[:stderr].should =~ /DEPRECATION\ WARNING/
113
+ end
114
+
115
+ it "return the content when using content_for" do
116
+ page.content_for(:body).should == "<p>I'm the first page part for this page.</p>"
117
+ page.content_for("BoDY").should == "<p>I'm the first page part for this page.</p>"
113
118
  end
114
119
 
115
120
  it "return all page part content" do
@@ -150,6 +155,9 @@ describe Page do
150
155
  :deletable => true
151
156
  })
152
157
  end
158
+ let(:child_with_reserved_title_parent) do
159
+ page_with_reserved_title.children.create(:title => 'reserved title child page')
160
+ end
153
161
 
154
162
  before { turn_on_marketable_urls }
155
163
 
@@ -158,8 +166,7 @@ describe Page do
158
166
  end
159
167
 
160
168
  it "when parent page title is set to a reserved word" do
161
- child = page_with_reserved_title.children.create(:title => 'The child page')
162
- child.url[:path].should == ["#{reserved_word}-page", 'the-child-page']
169
+ child_with_reserved_title_parent.url[:path].should == ["#{reserved_word}-page", 'reserved-title-child-page']
163
170
  end
164
171
  end
165
172
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: refinerycms-pages
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.9.9.22
5
+ version: 1.0.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Resolve Digital
@@ -13,7 +13,7 @@ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
15
 
16
- date: 2011-05-22 00:00:00 +12:00
16
+ date: 2011-05-28 00:00:00 +12:00
17
17
  default_executable:
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
@@ -24,7 +24,7 @@ dependencies:
24
24
  requirements:
25
25
  - - "="
26
26
  - !ruby/object:Gem::Version
27
- version: 0.9.9.22
27
+ version: 1.0.0
28
28
  type: :runtime
29
29
  version_requirements: *id001
30
30
  - !ruby/object:Gem::Dependency
@@ -44,9 +44,9 @@ dependencies:
44
44
  requirement: &id003 !ruby/object:Gem::Requirement
45
45
  none: false
46
46
  requirements:
47
- - - ">="
47
+ - - ~>
48
48
  - !ruby/object:Gem::Version
49
- version: 0.1.0.beta2
49
+ version: "0.1"
50
50
  type: :runtime
51
51
  version_requirements: *id003
52
52
  - !ruby/object:Gem::Dependency