1) Deface::DSL::Loader.extract_dsl_commands_from_erb should work with surround contains
Failure/Error: dsl_commands.should == "\nsurround 'erb[loud]:contains(\"render :partial => \'spree/admin/shared/configuration_menu\'\")'"
expected: "\nsurround 'erb[loud]:contains(\"render :partial => 'spree/admin/shared/configuration_menu'\")'"
got: "\nsurround 'erb[loud]:contains(\"render :partial => \\'\nspree/admin/shared/configuration_menu\\ '\")'" (using ==)
@@ -1,3 +1,4 @@
-surround 'erb[loud]:contains("render :partial => 'spree/admin/shared/configuration_menu'")'
+surround 'erb[loud]:contains("render :partial => \'
# ./spec/deface/dsl/loader_spec.rb:216:in `block (3 levels) in <top (required)>'
Added a test here: pusewicz@45d896b
The regexp for extracting parts does not work well with multiple ' and " in lib/deface/dsl/loader.rb:73
comment.gsub('<!--', '').gsub('-->', '').strip.scan(/[^\s"']+|"[^"]*"|'[^']*'/).each do |part|
@radar @BDQ I think this should be resolved before 1.0.0.
I ran into this exact problem with Spree 2.0.3 and spree_drop_ship in debug mode.
I upgraded to Spree 2.1.2 and see the same problem there.
@radar @BDQ Do you guys know of any workaround to this issue?
@mdundas If we did, we would probably have posted about it here.
Is there a way that I can reproduce this issue on my machine?
If you have a version of Spree that includes Deface 1.0.0 ( like 2.1.x ), then add this to your Gemfile:
gem 'spree_drop_ship', github: 'jdutil/spree_drop_ship'
and then run this:
rails g spree_drop_ship:install
rails g spree_drop_ship:install
Looks like a regex parsing problem in Deface.
I would say this is certainly a regression in Deface, but there does appear to be upgrade notes:
I haven't tried updating spree_drop_ship for 2.1.x yet, but it is currently using the old 0.9. syntax of code[erb-loud] perhaps if you guys try to update the deface overrides to ensure they are using up to date syntax it might fix the installation process.
It looks like the output in the description @pusewicz has already made the change though so I'm not sure it will actually solve anything.
This is the override causing the error: https://github.com/jdutil/spree_drop_ship/blob/master/app/overrides/spree/admin/stock_locations/index/remove_configuration_menu.html.erb.deface
Nice idea @BDQ thanks.
@pusewicz @mdundas I'll give it a shot to see if I can fix the installation issue for you guys, but please note there are still all the other Rails 4 & Spree 2.1.x changes that will need to be reviewed & fixed as well which I don't have time to work on at the moment. Pull Requests are welcome though!
Thanks so much lovely people, i'll try out this workaround today
Okay guys so I've just pushed an update to spree_drop_ship which just bumps the spree version to 2.1.x and fixes the override by simplifying the contents as @BDQ suggested.
This gets you past the Deface error!
However your now met with the Rails 4 upgrade issues, but I think some of you have already started working on that so please send me some PRs if you get things running for Rails 4.
Thanks @jdutil @BDQ, all good on that workaround ( in Spree 2.1.2, Deface 1.0.0 ) I see a few other spree_drop_issues i'll fork and investigate.